eli@houxq.UUCP (08/31/83)
Michael Condict (...!cmcl2!csd1!condict) posted a news article arguing that, in spite of any language definitions or what others may say, the C language does in fact have I/O. So far I have seen 3 replies telling Mr. Condict what he obviously already knows: the C language definition does not make any reference to I/O, and that I/O is done using function calls to a support library. Those people replying to the article with statements to the effect indicated above seem to have missed a major point of the discussion: How does the inclusion of I/O affects the "goodness" of the language, and specifically, how does it affect portability of programs written in the language? In any case, I think the basic problem with these replies is that the word "language" is being used to mean the specification of what the compiler must parse, while Mr. Condict is using it to mean what you must code in your program to tell the computer to produce useful results. If we can get our terminology straight, we may find more interesting things to disagree on. Eli Mantel (houxq!eli) AT&T Information Systems Laboratory Holmdel, New Jersey
smh@mit-eddie.UUCP (Steven M. Haflich) (08/31/83)
An important side issue to the desirability of excluding or including
the notion of I/O in a language is ease of portability of the compiler
itself. There is some correlation between the "size" of a language,
the size of its compilers, and ease of porting the compiler to a new
machine. (Of course, the effects of machine architecture on the code
generator may swamp this connection!) As silicon foundries get more
versatile, the frequency with which new machines appear and require
compiler ports may increase. The smaller the language, all else being
equal, the easier the port. Compare the size of your favorite C,
FORTRAN, and Pascal grammars. I remember once being unable to yacc and
compile the V7 F77 grammar on an 11/34, but you can count the reserved
keywords in C on the fingers and toes of one "real programmer" with
some left over.
Please, no flames! I know modern compiler writing techniques have made
porting much easier, but it is still an issue. Remember that much of
the stdio library is in C and survives OS ports with at least some
useful code intact (e.g. printf).
Steve Haflich, {genrad,mit-vax}!mit-ems!smh