NOT Educating FORTRAN programmers to use C
Bob Goudreau
goudreau at dg-rtp.dg.com
Fri Jan 19 10:24:45 AEST 1990
In article <14195 at lambda.UUCP> jlg at lambda.UUCP (Jim Giles) writes:
>>>> The standard allows str*() to be built-in.
>>>Most ANSI standards allow additional features to be implemented in
>>>a conforming processor. I don't consider these extensions to be
>>>an inherent part of the language.
>>
>> So, you don't consider PRINT, READ, WRITE, COS, SIN, etc., to be parts of
>> FORTRAN? [...]
>
>Yes, I _do_ consider all the above features to be part of Fortran. They
>are all _required_ by the existing standard. The _proposed_ ANSI C
>standard on the other hand does not contain any such requirement for
>'str*()'. Therefore, it is not an inherent part of the language. Many
>Fortran implementations provide pointers - the standard allows such
>extensions - but I don't consider pointers to be part of Fortran. Just
>because the language standard _allows_ a feature, doesn't make that
>feature a part of the language.
Jim, I think you misunderstand the distinction between the standard
library functions defined in the ANSI C Standard (which is no longer
*proposed*, but *approved*) and "additional features". See section
1.7 of the Standard for details.
The upshot is that the C Standard really defines two language
translation standards: hosted and freestanding (think of them as
along the same lines as full FORTRAN 77 and its standard subset (G?)).
The former (hosted) is a superset of the latter and is of course by
far the most popular -- most C users *want* the use of the standard
library functions (unless they're writing a device driver or something
at a similar low level) and most compilers provide them. And the ANSI
Standard cleary states that a conforming hosted implementation is
*required* to accept any strictly conforming program -- i.e., a
program using "only those features of the language and library
specified in this standard".
So as far as hosted implentation go, the Standard goes far beyond just
*allowing* the standard library functions to be available; it *requires*
them to be there, and implementors are free to "build them in" to the
compiler. In that respect, the str*() functions are as much an
"inherent part of the language" of (hosted) ANSI C as PRINT, SIN, etc.
are part of FORTRAN.
--------------
Bob Goudreau +1 919 248 6231
Data General Corporation ...!mcnc!rti!xyzzy!goudreau
62 Alexander Drive goudreau at dg-rtp.dg.com
Research Triangle Park, NC 27709, USA
More information about the Comp.lang.c
mailing list