[net.micro] an old idea whose time has come

jbn@wdl1.UUCP (01/18/85)

     The FORTRAN compiler for the IBM 1401 had 63 passes, including three
offline card sorts.  This was for a machine with 4K characters of memory.
So there.

jph@whuxlm.UUCP (Holtman Jim) (01/21/85)

> 
>      The FORTRAN compiler for the IBM 1401 had 63 passes, including three
> offline card sorts.  This was for a machine with 4K characters of memory.
> So there.

The ALGO (a derivative of ALGOL 58) compiler for the Bendix G-15D
had 3 passes. The machine itself was a 2K word drum (each word was
29 bits; 28 sexidecimal+sign). The sexidemical (now called hex..)
used 0-9,u,v,w,x,y,z. The machine was first available in 1960 and
was probably one of the first personal computer. It was the size
of a file cabinet and we had two tape drives (write once; you could
not erase old data on the tape - had to keep adding to the end of the
tape), card reader/punch, and a plotter. Took about 30 minutes to
compile a 100 statement program. It even had a door bell that you
could ring in the critical parts of the program loop so that you
would know that it was running. The door bell had to be programmed
carefully; you could ring it once every 6 drum revolutions - had
to allow time for the clapper to swing back. Program optimization
on a drum-based machine was a real art. As your track got full, you
no longer had an optimal location for the next instruction. Each
instruction told where to fetch the next one from.

Those were the `good old days'!

Dave Farber <farber@UDEL-HUEY> (01/22/85)

That brings back very fond memories. In fact the 1401 Fortran compiler
with all its 63ish passes many times compiled faster than the 7090
Fortran on small programs. That was the first case I have seen of the
notion that the program stayed in memory and the compiler was passed
over the program mapping it with each pass. Some wags said that the
reason there was 63 passes is there were 32 written by 32 different
people and the other 30 ish did nothing but map the output of one pass
into that of the next one. Must be wrong. IBM would never do that..
would they?