Languages Standardization / Re: ANSI C

Clay Phipps phipps at fortune.UUCP
Wed Jul 11 12:30:08 AEST 1984


>From Steve Glaser ("tektronix!steveg"):

    The ISO Pascal standard is a good example of a standard 
    that got so "purified" by the language theorists 
    that they didn't leave in enough to be usable.  

In the case of Pascal, the situation was exactly the opposite.
The committees refused to *add* goodies to Pascal as defined by its creator,
Niklaus Wirth;  the committees did not take features away.
Pascal was never intended to be used to write operating systems,
banking funds transfer programs, or other heavy-duty applications,
although it was something of an experiment in software engineering.
Many (most ?) Pascal compilers are written in Pascal.
It was intended primarily for teaching "systematic programming";
it is eminently usable for that intended purpose.
There were other goals for Pascal, but different Wirth papers on Pascal
stated different goals.

    Granted, C is nowhere near that situation (yet) it's obvious that 
    if any language standard isn't complete enough to program in, 
    it will be extended (usually in incompatable ways).

Yes, Pascal does get extended heavily at times, if people are determined
to use it as a base for a project for which it was not intended,
such as operating system bit-twiddling interfaces to microcode.
I was heavily involved in just such a project at ELXSI.
I take issue with the phrase "isn't complete enough to program in";
a more accurate phrase is probably "doesn't have the features that I want
for *my* application".  Again, consider the language design goals.

>From Henry Spencer ("{allegra,ihnp4,linus,decvax}!utzoo!henry"):

    There is a fundamental question of standards politics here:  
    should the standard attempt to tidy up and codify existing stuff, or
    should it try to change the world by inventing all kinds of new goodies?  
    The problem with the latter approach is that it's hard 
    to stop the standards group once they've got the bit between their teeth, 
    and the result is often nearly unrecognizable.  

I agree.  I have a strong sense of deja vu here.  
For years, Pascal partisans claimed that "Jensen & Wirth" (J&W) 
was the standard for Pascal, and no ANSI/ISO standard was needed.  
Yet people continued to uncover ambiguities in its definition.  
When these finally accumulated to the point where
the need for a *real* standard could no longer be ignored,
an effort was begun with the charter to tidy up and codify.
The committee refused to add *most* easy-to-implement common extensions,
e.g., "otherwise" in "case" statements, and variable "for" loop increments.
Despite the remaining flaws of the language, Standard Pascal 
(ANSI/IEEE 770X3.97-1983) is easily recognizable as Pascal.

Today, we have many people referring to K&R as biblical authors,
but anyone who reads "net.lang.c" for long sees the need
for a genuine rigorous ANSI C standard.  Or I hope they see the need.
K&R seems about as rigorous as J&W, with much prior argument
over each based on the tutorial, rather than reference, parts of each book.

And speaking of unrecognizable ...
The ANSI BASIC (not just "Minimal BASIC", but "Full BASIC") Committee,
X3J2, has embarked on a path to dramatically expand BASIC
from the mostly ignored (as a *limit*) "Minimal BASIC" (ANSI X3.60-1978)
to a language that would embrace all (or so it seems) of the extensions
to BASIC currently in use.  The language has balooned into a PL/I-ish
monstrosity that has only an ethnic resemblance to BASIC.
The most recent (but outdated) draft I have is 252 pages long.
How can any language with a >250 page standard be called "basic" ?
I wonder how big a micro is required to run it; I suspect that compilers
for this proposed language will be bigger than those for C and Pascal.
Particularly amusing is the way that votes on various language features 
would be reversed by committee members in successive meetings.

    Many people, including me, breathed a sigh of relief when it became clear 
    that the ANSI C people were taking the conservative but safe path 
    of deferring to reality rather than defying it.
    These things are always compromises.  

There are lots of things that I would love to change about Pascal and C,
but after many of those changes, the languages would no longer be Pascal and C.
Both have their places in the world (did I really say *that* ?).
The C fanatics in the world have more in common with Pascal partisans
than many of them would like to admit.

-- Clay Phipps

-- 
            { amd  hplabs!hpda  sri-unix  ucbvax!amd }          
                                                      !fortune!phipps
   { ihnp4  cbosgd  decvax!decwrl!amd  harpo  allegra}



More information about the Comp.lang.c mailing list