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