Date: Tue, 20 Mar 2007 09:33:54 -0700
From: "Chuck Guzis" <cclist at sydex.com>
Subject: Re: John Backus passes away...
Considering FORTRAN for what it was when it came out, it was pretty
remarkable. I recall an old ACM (was it SIGPLAN?) recollection of
one of the first users of 704(?) FORTRAN. What impressed me was that
this compiler-on-cards pointed out a syntax error with message of the
form:
A COMPUTED GOTO REQUIRES A COMMA BETWEEN THE STATEMENT LIST AND
VARIABLE. E.G. GOTO (100,200,300),J
I used Fortran 4 on the IBM 7094 at Imperial College London. I
remember one day the
compiler reported:
FORMAT MISSPELLED ON LINE xxx FORMAT ASSUMED.
I was used to syntax error messages by the dozen but this was the
first time I had
seen the compiler correct an error and run the job. Of course we are
used to
warnings now, but I think it was that one which got me interested
enough in
compilers to eventually get a job writing them.
At one point in time, given machines with different
character sets
and word- and character sizes, FORTRAN was about the only way to
write a portable program. If the program involved, for instance,
text manipulation, one included as the first card of the data file
one punched with all of the characters of the alphabet to be used and
read it into an integer array using 80A1 format.
If you stuck to floating point and small numbers but there were big
problems
with word length variations when using integers.
Did any computer built after 1960 NOT have a FORTRAN implementation?
Yes, my ICT1301 (155+ built from 1962 to 1965) had no Fortran compiler.
But then the line printer did not have any sort of parentheses. Not ()
[] or {}.
It had 1/4,1/2 and 3/4 though. I have a replacement print barrel with
round brackets instead if the 1/4 and 3/4 symbols but I have not
fitted it
yet, and most 1300 series machines had the standard barrel.
I seem to remember that some of the people who taught me to program
considered Fortran to be too close to the 7094 instruction set, in
particular
they said the computed goto mapped directly onto a 7094 instruction and
hence considered it to be not very universal, and to support it would
be to
assist IBM in its domination of the computer market.
Not that I think that way, and of course it is Microsoft which now
dominates
the computer market, I haven't seen a new IBM machine in years.
IIRC, that was a big selling point for the PDP-8.
There was a period in time where just about any serious programmer
had a copy of McCracken on their bookshelves.
Maybe before my time (BSc Computer Science graduated 1974), but I
think most serious programmers had a copy of Knuth vol 1. (not to open
a thread on what defines a "real programmer", I expect that has been
done to death on this list long before I joined it).
Didn't Backus also participate in the Algol-60 effort?
I don't know, but Algol 60 was defined using BNF.
There were big sections of the CDC FTN compiler (prior to the
introduction of SYMPL) that were written in FORTRAN. One of the
biggest nightmares was the processor for allocating storage in COMMON
and EQUIVALENCE statements--a big mass of assigned GOTOs. Even after
I understood how it worked, I was afraid to touch it.
On the subject of being afraid to touch code, I worked on a compiler
written
in a non recursive language (Coral 66, a real time language derived from
Algol 60). It had a large data table which defined how to parse the
language.
The compiler had an array of integers which was really a stack, but
instead
of return addresses it had integers which referred to cases in a huge
switch
list. I was happy to change any of the code, but fortunately did not
need to
change the data table for a long long time, and when I did it was with
EXTREME care and trepidation.