Return to home page
Table of Contents - most recent on top
- From Van Snyder A Tale of Fortran committees Feb 19, 2022
- From: Alan Kay Practical Experience Nov 07, 2016 11:37 am
- Garner to Macklin & Mokotoff - Nov 06, 2016 3:01 pm
- David Macklin wrote on Nov 6, 2016, at 8:56 AM
- Gary Mokotoff wrote on Nov 5, 2016, at 9:50 PM
- Van Snyder replying to Bill Worthington here Nov 5, 2016
- Miscellaneous Date: 2016
- From Robert Garner to Guy Fedorkow Date: April 16, 2011 9:39 PM
- From Ron Mak to Van Snyder, Date: March 5, 2011 at 12:34:11 PM PST
- From Van Snyder to Alan Kay Date: March 2, 2011 at 2011 6:09 PM
- From Dick Weaver to Ed Thelen, Date: August 5, 2008 at 9:14:03 AM PDT
From Van Snyder - A Tale of Fortran committees Feb 19, 2022
From: Van Snyder
Subject: Dick Weaver and the Fortran committees
Date: February 19, 2022 at 2:24:30 PM PST
To: Robert B Garner
Dick Weaver was IBM's representative to the Fortran committees X3J3 (USA) and WG5 (ISO) during the development of Fortran 90. IBM's position was firmly against almost everything new. When IBM relented, and Dick stopped opposing things, he was asked how he was suddenly able to do it. He said"I put one arm behind my back. Then I reach around with my other arm and pull it until I say "Yes!"The current Fortran committee members still quote the "Weaver Rule," frequently without attribution because there aren't many members left who remember him:"Say anything twice [in the Fortran standard] and it's wrong at least once."At one time there were three guys named Dick on the committee. Dick Weaver, Dick Hendrickson, and one other whose name I don't remember (not Richard Maine, not Rich Bleikamp). Dick's alternate Janice Shepard, who later became IBM primary representative, remarking that several people simultaneously spoke up when the chair (Jeanne Adams) acknowledged that it was Dick's turn to speak, said
"The problem with this committee is that we have too many Dicks."
She blushed when she realized what she'd said. Janice was a brilliant contributor to Fortran committee work. We were quite sorry when she left the committees. I don't remember whether she had left IBM, or just been reassigned.
From: Alan Kay Practical Experience Nov 07, 2016 11:37 am
Date: Mon, Nov 07, 2016 11:37 am
For what it's worth
I used it for some programs in the Air Force certainly in 1963, and maybe '62? (not sure). This on an 8KB 1401 with 6 tape drives.
An interesting contrast was to be found on our other computer -- a Burroughs 220 -- and the Balgol language (a version of Algol 58). The two main "noticeables" were (a) that Algol 58 (especially this version) was a much more carefully designed language with regard to both form and content, and (b) the compiler was lightning quick -- in fact, it was the first "pass and one half" compiler (it back-chained forward references until it had resolved them and then filled them in by tracing the back-chain). So it compiled roughly as fast as it could read the program.
The main parts of this wonderful compiler -- including the "pass and one half fixup" idea -- were designed/invented by Bob Barton (whose next project was the design of the B-5000), and a fair amount of the coding was done by Don Knuth (who I think was still a grad student at CalTech during this project).
For "many many passes" it's worth looking at an Algol-60 compiler (done I think by Woodger) for a really tiny drum computer (maybe ~ 200 words of memory on a drum) with tapes. IIRC this one required over 100 passes. The paper he wrote (I think for the Annual Review of Automatic Coding) was a classic of explaining the design and why it was done the way it was).
Garner to Macklin & Mokotoff - Nov 06, 2016 3:01 pm
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(!),
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)?
David Macklin wrote on Nov 6, 2016, at 8:56 AM
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.
Gary Mokotoff wrote on Nov 5, 2016, at 9:50 PM
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.
Van Snyder replying to Bill Worthington Nov 5, 2016
From: Van Snyder [mailto:firstname.lastname@example.org]
Sent: Saturday, November 05, 2016 6:15 PM
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.
From Robert Garner to Guy Fedorkow, Date: 11/4/16 9:39 PM
-------- Original message --------
From: Robert Garner
Date: 11/4/16 9:39 PM (GMT-08:00)
To: Guy Fedorkow
Subject: Re: 1401 Fortran Compiler (was Re: 1401 software in the back room...
> 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)
> WRITE (to printer) C
> 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
From Dick Weaver to Ed Thelen, Date: August 5, 2008 at 9:14:03 AM PDT
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)
From Ron Mak to Van Snyder, Date: March 5, 2011 at 12:34:11 PM PST
From: Ronald Mak
Subject: RE: [1401_software] Re: 4K for 1401 FORTRAN compiler testing
Date: March 5, 2011 at 12:34:11 PM PST
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.
From Van Snyder to Alan Kay Date: March 2, 2011 at 2011 6:09 PM
From: Van Snyder
Sent: Wednesday, March 02, 2011 6:09 PM
To: Alan Kay
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.
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!)
From Robert B Garner to David Macklin Date: March 2, 2011 at 4:04:22 PM
From: Robert B Garner
To: David Macklin
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
> During development and testing [of 63-pass 1401 FORTRAN compiler], during which source programs were small, we were running on a 4k byte machine
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?
Miscellaneous Date: 2016
-------- Original Message --------
Subject: software in the back room...
From: Guy Fedorkow
Date: Thu, November 03, 2016 4:48 am
Cc: Carl Claunch
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!
On Nov 3, 2016, at 12:25 PM, email@example.com wrote:
Is this the sort of thing you are looking for ??
Card decks & Tape files -
On Nov 4, 2016, at 1:25 PM, firstname.lastname@example.org wrote:
I dream that the Card FORTRAN is easy to run
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,
Subject: Re: 1401 software in the back room...
From: Marc Verdiell
Date: Fri, November 04, 2016 12:31 pm
To: Guy Fedorkow
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....
On Nov 4, 2016, at 5:42 AM, Guy Fedorkow wrote:
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!
Thanks for all the tips!
On 11/4/2016 2:07 AM, Robert Garner wrote:
Buzz, CT 1401 owner, had saved/donated a couple dozen software tapes.*
The key tapes were read by Paul Pierce and inventoried here:
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.
* This was the biggest discovery of significant 1401system 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.