Return to home page

FORTRAN-e-mails

Subject: Re: 1401 Fortran Compiler (was Re: 1401 software in the back room...
From: Robert Garner
Date: Sun, Nov 06, 2016 3:01 pm
To: David Macklin , Gary Mokotoff
Cc: Robert Garner , Van Snyder , Bill Worthington , Guy Fedorkow , Marc Verdiell , Stan Paddock , Carl Claunch , Ken Shirriff , Ron Mak , Ed Thelen , 1401 Software Team <1401_software atsign computerhistory period org>, gnu atsign toad period com, Dick Weaver , Jay Jaeger , Bob & Carol Feretich , Robert B Garner , Paul McJones , Maurice Papo , Jack Palmer , Fred Brooks

David [Macklin], Gary [Mokotoff],

It’s so good to hear from both of you again!
Thank you for sharing your history/memories of your design, coding and delivery of 1401’s SPS, Autocoder, and inimitable 63-pass FORTRAN compiler!

While the 1401 design was tuned to be affordable business application computer (beginning with its WWAM data-path predecessor in mid 19050s), it was also the first widely available stored-program computer following half a century of unit-record equipment: One out of every two computers in the world by the mid 1960s was a 1401; it was many people’s first exposure to stored-program computing; the 1401 team predicted that it would become the world’s most popular stored-program computer; and just three weeks after announcement more 1401 were on order than all existing computers in the world. By all counts, it was an astonishingly successful and game changing computer.

Based on its popularity, it would make perfect sense to offer a FORTRAN compiler. Not all FORTRAN applications require a massive number of floating-point calculations. Some applications would — such as large-scale linear programming optimization — but even there, given how inaccessible/expensive the higher-performance/higher-cost 7000-class computers were — the 7090 population peaked at about 300 units, as did the 7070, both ~10x more expensive that a tape-based 1401 — it would also make economic sense to debug/try out a FORTRAN application on a 1401 first, then run lease time on a 7000 series for faster results on larger data sets.

As I forwarded from his 2008 email below, Dick Weaver felt that the 1401 FORTRAN tape "compiler became common:" "So June 1960, its all there. Punched card mindset, Fortran huge success, Fortran already running on a small punched card machine. It would have been automatic to ask for a Fortran implementation on a card 1401 - no matter how weird it might seem when viewed from 2008. That tape became common, that the mindset changed, probably happened only after 7330s began shipping (I couldn't find their announce/ship dates)”.

David, Gary —> Do you have any memories of how popular the 1401 Fortran compiler became? What type of FORTRAN programming it was employed for? (Educational, instructional, early debugging, small data sets, high-precision engineering calculations, etc.)?

Thanks for your insights(!),

- Robert

p.s. There is another nonagenarian from the 1401 era I’ve cc’d, Maurice Papo, who co-designed the WWAM in Paris in the mid 1950s, whose data paths were later straight-out borrowed by Fran Underwood to become the 1401/SPACE.

p.p.s. I understand your reaction to the adjective “glacial.” Alan noted that he was referring to 1401 FORTRAN compilation speed (not program execution speed), but I’m not sure what other computer(s)/compiler(s) he was comparing against or the size/complexity of those applications(s)?


> On Nov 6, 2016, at 8:56 AM, David Macklin wrote:
>
> As to the question of how and why we started to produce FORTRAN
> for the 1401, I will gently prod my 98 year-old memories
> My vision is poor too.
>
> I had been a an IBM customer where I wired the Card-Programmed -Calculator in support of 2000 engineers who were designing a supersonic
> fighter-bomber. Floating point and numerous built-in functions
> employing power series expansions. This work came to the attention of Arnie
> Wolf. I developed complete card-oriented systems for production and
> inventory control and a 650 payroll system with Ray Ragonesi.
>
> I joined IBM in 1957 to work somewhere under Arnie Wolf, where
> I assembled a small group of the best young programmers, including
> Gary Mokotoff, John Wertheim, and Stan Smillie, whom i had
> discovered at the Bronx High School of science.
>
> We wrote the fixed-form assembler, 1401 SPS,
> and the free-form Autocoder.
>
> Arnie Wolf , amusedly, asked whether we cold do a FORTRAN
> compiler. At first I thought the 1401 would be too small,
> but after discussing the space requirements with Len Haines,
> who had read a German? paper on serial compilation,
> we went ahead.
>
> BTW Its performance was certainly not glacial.That remark was insulting.
>
> David Macklin
>
>
> On Sat, Nov 5, 2016 at 9:50 PM, Gary Mokotoff wrote:
>
> My statement in 2008 (below) says it all. Perhaps Jack Palmer knows what motivated IBM to develop a FORTRAN compiler for a computer IBM was selling to businesses for commercial applications.
>
> The compiler was lightning fast for those days because of its unusual design. The execution of programs was slow because of the lack of floating point hardware and the 1401 was not designed for speed.
>
> Gary Mokotoff
>
> -----Original Message-----
> From: Van Snyder [mailto:van.snyder@sbcglobal.net]
> Sent: Saturday, November 05, 2016 6:15 PM
> To: billworthington
> Cc: ...
> Subject: Re: 1401 Fortran Compiler (was Re: 1401 software in the back room...
>
> On Sat, 2016-11-05 at 10:27 -0700, billworthington wrote:
> > Robert , et al,
> > As Stan said, the 1401 was a slug running FORTRAN. The 1400 customers
> > we supported in the Providence branch office were about 50% Autocoder
> > (minimal SPS), 30% COBOL, and 20% RPG/FARGO. I don't recall any
> > FORTRAN usage - except for a junior college which became frustrated
> > with the performance.
>
> It was slow because floating-point was done in software, but the arithmetic was quite good. You could ask for up to twenty decimal digits of precision in floating point. The routines used two guard digits. The only defect, by modern standards, was that the rounding was not symmetric.
>
> If you run Example 2 from the manual, you will be happy with the results.
>
> > Sent from my Verizon 4G LTE smartphone
> > > >
> > -------- Original message --------
> > From: Robert Garner
> > Date: 11/4/16 9:39 PM (GMT-08:00)
> > To: Guy Fedorkow
> > Cc: ...
> > Subject: Re: 1401 Fortran Compiler (was Re: 1401 software in the back
> > room...
> >
> > Guy,
> >
> >
> > > I've heard of this Fortran compiler... was it actually practical on
> > a machine with no disks?
> > > I think someone along the way said something about dozens of passes
> > required to compile something…
> >
> >
> > 63 phases! Checkout the IBM Systems Journal paper on our 1401 site
> > (pointer in Ed’s msg below).
> >
> >
> > > Does anyone know if Fortran was actually used much on the 1401, or
> > was the bulk of the work done with Autocoder?
> >
> >
> > It was uncommonly used, but I’ve cc’d the 1401 software distribution
> > list, where two of the compiler's authors (!), Gary Mokotoff and David
> > Macklin, may comment on that.
> >
> >
> > In the email conversation below, Alan Kay had noted: "I remember the
> > FORTRAN compiler well .... it was .... somewhere between "glacial" and
> > "majestic" [in compilation speed] (history should bestow the latter
> > pace to it!)” .
> >
> >
> > Alan also shared his appreciation of Val Shorre's Meta II compiler
> > writing language and his 1401 experiences. (I can forward those
> > messages separately. To Ron: "Attached is a suggestion for your
> > students who are interested in bringing languages to life. It is the
> > niftiest 1401 program that I know about, and one of the smallest with
> > the most bang per buck. Done by Val Shorre at UCLA in 1963 on an 8K
> > 1401. It is also philosophically interesting still today, and there
> > is enough perspective to make one of similar size even more powerful,
> > expressive and clean."
> >
> >
> > Here’s Gary’s 2008 1401 Fortran compiler story:
> >
> >
> > > Begin forwarded message:
> > >
> > > From: "Gary Mokotoff:"
> > >
> > > Subject: RE: [1401_software] Re: 1401 compiler paper (was
> > > Re:pre-FORTRAN-II1401 compiler listing
> > >
> > > Date: August 4, 2008 at 7:05:43 PM PDT
> > >
> > > To: 'Ed Thelen' , 'Robert B Garner'
> > > , 'Dick Weaver'
> > >
> > > Cc: ...
> > >
> > >
> > > History of the FORTRAN II compiler.
> > >
> > > I haven’t the vaguest idea why IBM chose to develop a FORATRAN
> > > compiler for an IBM 1401 Card-only computer.
> > >
> > > The fact that it was doable was the brainchild of Leonard Haines who
> > > worked in the Applied Programming Department for only one summer
> > > (1960?). A predecessor program was the FORTRAN compiler for the IBM
> > > 1620 which only had paper tape input/output. The classical design
> > > for compilers of that day was to create Assembly Language output
> > > from the compiler and then assemble the results into machine
> > > language. This involved multiple passes to achieve the end product,
> > > something impractical for a paper tape-only machine.
> > >
> > > All previous compilers passed the source program against the
> > > compiler. Haines proposed passing the compiler against the source
> > > program slowly transforming it into machine language.
> > >
> > > Haines stated that FORTRAN was a more concise language than machine
> > > language and therefore it would be possible to read an entire
> > > FORTRAN program into memory and pass bits of the compiler against
> > > the program and slowly transform it into machine language. That is
> > > how the FORTRAN II compiler was created. It was a huge deck of cards
> > > consisting of 62 mini-programs that converted FORTRAN into machine
> > > language. I recall the final phase was executed in the fixed printer
> > > area of memory so that it would destruct once the object program
> > > wanted to print something. After the system was debugged, we created
> > > a version which executed the compiler from tape which was far more
> > > practical.
> > >
> > > I recall the final testing of the compiler was done in Endicott, New
> > > York. After all 62 phases were programmed and appeared to work, I
> > > asked the group “What should be the first program we should try to
> > > execute.” I proposed the following (my apologies if the code is not
> > > perfect)
> > >
> > > A=1
> > > B=1
> > > C=A+B
> > > WRITE (to printer) C
> > > STOP
> > > END
> > >
> > > We ran the program against the compiler and it hung up in one of the
> > > Arith phases. I quickly found the bug, reassembled the phase and we
> > > reran the job. It hung up again further down in the compiler. Once
> > > again I found the problem, reassembled the phase and reran the job.
> > > The job got to the final phase Geaux II and the compiler indicated
> > > to press Start to execute the program. I pressed the Start button
> > > and shortly therefore there was a tiny sound from the printer. We
> > > all huddled over the printer. I pressed Stop and the Carriage
> > > Restore buttons on the printer, and there before us was a “2”!!!! We
> > > all went crazy with joy. We had been working on the project for
> > > nearly a year. :>)
> > >
> > > Gary Mokotoff
> >
> >
> > Dick Weaver’s thoughts on why the 1401 had a Fortran compiler:
> >
> >
> > > Begin forwarded message:
> > >
> > > From: Dick Weaver
> > >
> > > Subject: Re: [1401_software] Re: 1401 compiler paper (was
> > > Re:pre-FORTRAN-II1401 compiler listing
> > >
> > > Date: August 5, 2008 at 9:14:03 AM PDT
> > >
> > > To: Ed Thelen
> > >...
> > >
> > >
> > > Here's a vague idea to try. First, set your mind back to June 1960,
> > > the beginning of summer. The 1401 was announced only a few months
> > > ago, October 1959. Deliveries have just begun. The 1401 was
> > > designed as a punched-card machine - THE MINDSET IS PUNCHED CARD.
> > > There were problems with high end machines, 7070, 7090, and tape was
> > > added to the 1401 only a few months before announcement (delaying
> > > the announcement one month) [all this from Bashe] so that slow
> > > printing/punching could be off loaded from those machines to 1401s.
> > > The tape drives attached were expensive 729s.
> > >
> > > Fortran was an instant success, shipped as I recall in 1958. The
> > > SECOND implementation of Fortran, only a few months after the 704
> > > version, was for a PUNCHED CARD machine, the IBM 650 with only 2000
> > > words of storage (the implementation was FORTRANSIT - the Fortran
> > > program was translated the IT language).
> > >
> > > So June 1960, its all there. Punched card mindset, Fortran huge
> > > success, Fortran already running on a small punched card machine.
> > > It would have been automatic to ask for a Fortran implementation on
> > > a card 1401 - no matter how weird it might seem when viewed from
> > > 2008. That tape became common, that the mindset changed, probably
> > > happened only after 7330s began shipping (I couldn't find their
> > > announce/ship dates)
> > >
> > > dick w (apologies for the capitalizations, but I really wanted those
> > > items to stand out)
> >
> >
> > Here were John Gilmore’s memories of the 1401 Fortran compiler:
> >
> >
> > > From: John Gilmore
> > > To: Robert B Garner/Almaden/IBM@IBMUS, gnu@toad.com
> > > Date: 12/02/2014 06:41 PM
> > > Subject: Re: Fortran-II 8K compiler typos
> > >
> > > ____________________________________________________________________
> > > I found a few OCR typos in the HTML version. Can you get them to
> > > the webmaster to fix the published version?
> > >
> > > John
> > >
> > > PS: I used this compiler as a teenager. We were taught to write
> > > FORTRAN programs at my high school, and this compiler (patched to
> > > run from a disk drive rather than cards or magtape) compiled them.
> > > The most amazing bit for me is that each phase is only 150 to 300
> > > instructions long! Imagine a compiler today that only had 63x300
> > > instructions in it!
> >
> >
> > And here’s a 2011 conversation between Alan Kay, David Macklin, Van
> > Synder, Ron Mak:
> >
> > > Begin forwarded message:
> > >
> > > From: Ronald Mak
> > >
> > > Subject: RE: [1401_software] Re: 4K for 1401 FORTRAN compiler
> > > testing
> > >
> > > Date: March 5, 2011 at 12:34:11 PM PST
> > >
> > > To: Van.Snyder@jpl.nasa.gov
> > >
> > > Cc: 1401_software@computerhistory.org
> > >
> > >
> > > Hi, Van.
> > >
> > > This would make a wonderful demonstration for my compiler class!
> > > ( http://www.cs.sjsu.edu/~mak/ )
> > >
> > > Can you package up what you did to make the FORTRAN compiler run
> > > under SIMH and include some shell scripts that will compile and run
> > > some sample FORTRAN programs?
> > >
> > > My class is about to start writing compilers that compile source
> > > programs down to Jasmin, the assembly language for the Java Virtual
> > > Machine.
> > > So after
> > > running the Jasmin assembler, they'll be able to execute their
> > > programs on the JVM. Of course, nowadays, they get to use high-level
> > > Java-based compiler-compiler tools such as JavaCC and ANTLR and
> > > wallow in 2 GB of RAM on a 3 GHz machine. It will make my students
> > > really appreciate what they currently have when I show them the
> > > Autocoder code!
> > >
> > > FORTRAN IV was my first programming language back in 1968 on a 16K
> > > 1401. I still have the very first program I ever wrote. Because we
> > > had a disk drive, the compilations were pretty quick even for
> > > medium-sized programs.
> > > The 1401
> > > COBOL compiler, though, would take nearly an hour to compile a
> > > simple program. Needless to say, I didn't attempt too many COBOL
> > > programs on the 1401.
> > >
> > > Ah, another project idea for my History of Computing class next fall
> > > semester is to study the history of compiler writing technology and
> > > tools.
> > >
> > > -- Ron
> > >
> > > > -----Original Message-----
> > > > From: 1401_software-bounces@computerhistory.org
> > > > [mailto:1401_software-bounces@computerhistory.org] On Behalf Of
> > > > Van Snyder
> > > > Sent: Wednesday, March 02, 2011 6:09 PM
> > > > To: Alan Kay
> > > > Cc: 1401_software@computerhistory.org
> > > > Subject: Re: [1401_software] Re: 4K for 1401 FORTRAN compiler
> > > > testing (wasRe: [1401_founders] History of Computing class at San
> > > > Jose State
> > > >
> > > > I have source code for the compiler.
> > > >
> > > > At first, Gary thought he had lost his listings when he retired,
> > > > so I reverse engineered it from operational tapes. Then Gary
> > > > found his listings, and I transcribed them.
> > > >
> > > > I'm happy to send the code to anybody who wants it.
> > > >
> > > > It runs in SimH, and the examples in C24-1455 get the right
> > > > answers now that Bob has repaired the divide instruction.
> > > >
> > > > I tried to compile one of the examples, running the compiler from
> > > > tape, when I visited CHM last year, but the tape drives weren't
> > > > cooperating on either machine. The compiler has records too big
> > > > to fit through the emulator, so I had written a program that
> > > > splits the records and re-assembles them. A reassembled "tape"
> > > > worked in SimH, but not at CHM.
> > > > So I ran the compiler in SimH and punched the deck it produced
> > > > through the emulator, then ran the deck. It got the answers
> > > > advertised in C24-1455.
> > > >
> > > > Van
> > > >
> > > > On Wed, 2011-03-02 at 18:00 -0800, Alan Kay wrote:
> > > > > I remember the FORTRAN compiler well .... it was .... somewhere
> > > > > between "glacial" and "majestic" (history should bestow the
> > > > > latter pace to it!)
> > > > >
> > > > > Cheers,
> > > > >
> > > > > Alan
> > > > >
> > > > __________________________________________________________________
> > > > ____
> > > > > From: Robert B Garner
> > > > > To: David Macklin
> > > > > Cc: 1401_software@computerhistory.org
> > > > > Sent: Wed, March 2, 2011 4:04:22 PM
> > > > > Subject: [1401_software] Re: 4K for 1401 FORTRAN compiler
> > > > testing (was
> > > > > Re: [1401_founders] History of Computing class at San Jose State
> > > > >
> > > > > David,
> > > > >
> > > > > > During development and testing [of 63-pass 1401 FORTRAN
> > > > > > compiler],
> > > > > during
> > > > > > which source programs were small, we were running on a 4k byte
> > > > > machine
> > > > >
> > > > > Amazing!
> > > > >
> > > > > Do you recall any other interesting anecdotes about your
> > > > > minimal-footprint compiler?
> > > > > Funny bugs? Interesting problems you had to solve?
> > > > >
> > > > > What was the design process like? Fortran had just come out.
> > > > > Did you grumble about any language specification holes?
> > > > >
> > > > > Why 63 passes, and not 64, or 127 ? ;-)
> > > > >
> > > > > How did you respond to folks that say it was too slow?
> > > > >
> > > > > - Robert
> >
> >
> >
> >
> > ----------------------------------------------------------------------
> > ------------------------------------------
> > > On Nov 4, 2016, at 1:25 PM, ed@ed-thelen.org wrote:
> > >
> > > I dream that the Card FORTRAN is easy to run
> > > http://ibm-1401.info/1401-IBM-Systems-Journal-FORTRAN.html
> > >
> > > http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/1401/C24-1455-2
> > > _Fortran_Specifications_and_Operating_Procedures_Apr65.pdf
> > >
> > >
> > >
> > > Somewhere I got the idea that there was a card deck
> > > maybe a box (2000 cards) size -
> > > and you put the deck you want to compile
> > > into a definite place near the beginning of the FORTRAN
> > > compilation deck
> > > and pop the whole thing into the 1402 reader,
> > > hit the "start" button, stand back and admire.
> > >
> > >
> > > I think it would be a gas to try :-))
> > > Not sure if we have the Card Fortran anywhere, on anything.
> > > I'm adding Van Snyder to the CC list,
> > > 'cause he knows EVERYTHING :-))
> > >
> > >
> > >
> > > Good Luck to us all,
> > > -Ed Thelen
> > >
> > >
> > > -------- Original Message --------
> > > Subject: Re: 1401 software in the back room...
> > > From: Marc Verdiell
> > > Date: Fri, November 04, 2016 12:31 pm
> > > To: Guy Fedorkow
> > > Cc: ...
> > >
> > >
> > > I took a look at the procedure needed to compile a Fortran
> > > program and was rather put off by the sheer complexity of
> > > it. I remember vaguely you had to create a complex stack of
> > > cards with compiler directives, libraries, macros, drivers
> > > and what not, prepare an equally complex customized Fortran
> > > tape, and do many passes with quite a combo of intermediates
> > > tapes and decks generated. Doable, but I sort of gave up
> > > after realizing the sheer complexity of the thing, and we
> > > need all the tapes to work without errors at the same time.
> > > It would be a great project for a full time retired person.
> > > I have not made it to that level of enlightenment yet. Maybe
> > > start by running a tape Autocoder project, which is already
> > > challenging in its own right....
> > > Marc
> > >
> > > On Nov 4, 2016, at 5:42 AM, Guy Fedorkow
> > > wrote:
> > >
> > >
> > > > hi Robert,
> > > > I've heard of this Fortran compiler... was it actually
> > > > practical on a machine with no disks? I think someone
> > > > along the way said something about dozens of passes
> > > > required to compile something...
> > > > Does anyone know if Fortran was actually used much on
> > > > the 1401, or was the bulk of the work done with Autocoder?
> > > > Thanks for all the leads!
> > > > /guy
> > > >
> > > >
> > > > Thanks for all the tips!
> > > >
> > > >
> > > > On 11/4/2016 2:07 AM, Robert Garner wrote:
> > > >
> > > > > Guy,
> > > > >
> > > > >
> > > > > Buzz, CT 1401 owner, had saved/donated a couple dozen
> > > > > software tapes.*
> > > > > The key tapes were read by Paul Pierce and inventoried
> > > > > here:
> > > > > http://ibm-1401.info/CT-TapeInventory.html
> > > > > http://www.piercefuller.com/library/magtape7.html
> > > > >
> > > > >
> > > > > Ron Williams frequently uses (a copy of the) diagnostic
> > > > > tape.
> > > > > I’d really like to get the inimitable 8k Fortran
> > > > > compiler up and running on our 1401s!
> > > > > (stumbling block is one large record the TAU/729
> > > > > emulator can’t handle.)
> > > > >
> > > > >
> > > > > There’s also a drawer of card decks of Buzz's home
> > > > > business software (in the Liebert room cases).
> > > > > In addition to Ed's 1401 card deck inventory, we have
> > > > > several miscellaneous programs, like the AM radio deck.
> > > > >
> > > > >
> > > > > Have fun(!),
> > > > >
> > > > >
> > > > > - Robert
> > > > >
> > > > >
> > > > > * This was the biggest discovery of significant 1401
> > > > > system software!
> > > > > I believe Stan has stored Buzz’s tapes under the raised
> > > > > floor.
> > > > > My suggestion is that we move them into our new
> > > > > shop/storage room space.
> > > > >
> > > > > > On Nov 3, 2016, at 12:25 PM, ed@ed-thelen.org wrote:
> > > > > >
> > > > > > Is this the sort of thing you are looking for ??
> > > > > >
> > > > > > http://ibm-1401.info/1401Card2CD-LogSheetDate2.html
> > > > > >
> > > > > >
> > > > > > http://www.madscientistroom.org/ethelen/1401CardDecks/
> > > > > >
> > > > > > http://ibm-1401.info/LangProcTape.html#Utility
> > > > > >
> > > > > > found in
> > > > > > Card decks & Tape files -
> > > > > > in
> > > > > > http://ibm-1401.info/#1401-Software
> > > > > >
> > > > > >
> > > > > >
> > > > > > -Ed Thelen
> > > > > >
> > > > > >
> > > > > > -------- Original Message --------
> > > > > > Subject: software in the back room...
> > > > > > From: Guy Fedorkow
> > > > > > Date: Thu, November 03, 2016 4:48 am
> > > > > > To: "stpaddock@sbcglobal.net"
> > > > > >
> > > > > > Cc: Carl Claunch , Ed
> > > > > > Thelen
> > > > > >
> > > > > > hi Stan,
> > > > > > Carl mentioned that you or one of your
> > > > > > colleagues might have
> > > > > > inventoried the software for the 1401 at
> > > > > > CHM... Do you know if that's
> > > > > > the case?
> > > > > > I know there's a big cabinet of card decks,
> > > > > > and there might be tapes
> > > > > > too. Any guess what's on them?
> > > > > >
> > > > > > I'd assume that if there are any application
> > > > > > decks, they'd be pretty
> > > > > > hard to figure out. But are there usable
> > > > > > language assemblers / compilers?
> > > > > >
> > > > > > I've spent too much time chasing gates and
> > > > > > pins... I thought it might
> > > > > > be time to even out the balance and look at
> > > > > > what we know about the 1401
> > > > > > software world!
> > > > > >
> > > > > > Thanks!
> > > > > > /guy
> > > > > >