Subj : Re: Do all programming languages use files? To : comp.programming From : Chris Sonnack Date : Fri Sep 09 2005 07:06 pm Michael Wojcik writes: >>> The Standard defines the language; the Standard includes the standard >>> library (and no others); the standard library includes file I/O; thus >>> the language includes file I/O (for hosted implementations). Your >>> argument is utterly without merit. >> >> 0. Community begins with *trying* to see the other guy's point. > > I've seen it. It's wrong. In YOUR opinion using YOUR definition. As you say above, the standard defines the language and **includes** the standard **library**, so the standard **also** defines that library. Repeat: defines the **library**. It is separate--even in the standard--from the "language", per se. >> I do see a difference between the syntactical definition of a >> language and its, for lack of a better word, "semantic" definition. > > That's a valid argument. As I read Scott's argument, that was essentially his point. > "All libraries are equal in their degree of inclusion in the C > language" is not, and that's the argument I was referring to. I never got that sense from it. I just went back and read all of his posts in this thread, and I STILL don't get that sense from them. >> And if you good look at the reserved keywords for C, you won't find >> fprintf, printf, fputs or any other I/O family members. Nor will >> you find stdout or stdin. > > I'm well aware of that, since I have a copy of the standard right > by my desk. "fprintf" is not a keyword. It is, however, a reserved > identifier, if stdio.h is included, so I don't find the "not a > keyword" argument compelling. Fine, but--again--that's YOUR OPINION. Mine differs. > "main" is not a keyword, either; does that make it not part of the > C language? By *my* (and apparently Scott's) definition of "language", no. If you re-phrase the question to ask if that makes it part of the C standard, then yes. > "include" is not a keyword (C90 6.1.1); does that mean "#include" > is not part of C? The *language* or the *standard*? And in any event, no--it's a preprocessor instruction. Maybe another way to illustrate this is to point out that you can write a 100% standard-compliant C compiler that knows *nothing* about #include or fprintf. You cannot, however, produce a C *implementation* that is ignorant of them. Now, if I can write such a compiler, how can fprintf be a part of the language? -- |_ CJSonnack _____________| How's my programming? | |_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL | |_____________________________________________|_______________________| .