[net.lang] Does C have I/O, or doesn't it?

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