PRINT I -- The First Load-and-Go System

Computer History Vignettes

By Bob Bemer

This vignette is primarily about an interpretive program I created for IBM in 1956. In one of those "lessons lost" it has a lot to do with today's JAVA language, 40 years later.

How? Well, JAVA is an interpreter, too. A form of language processor that was supposed to have been obsoleted by compilers like FORTRAN and COBOL.

I had found, as the JAVA people did, that interpreters were slow, slow! And I created a preprocessor to modify the source so that every decision that would be made exactly the same would be made once and for all at the beginning, in the source program as modified. Hello, JIT compilers! The latest way to run those slow JAVA programs. I'll accept your thanks, Scott! [Note 1].

Leaving Lockheed Missiles and Space Division

In the summer of 1955 I was working at the Missile Systems Division of Lockheed Aircraft Corporation, where I had started their computing section from scratch. We had first a CPC, then 650's. And were looking forward to a 704. In fact, I was the Lockheed MSD representative to the first meeting of SHARE, in 1955 August.

But then a new research division was formed under a Dr. Ernst Krause. He had hired his own computer chief, Dr. Werner Leutert (it may be strange fate that, when I became Director of Systems Programming for UNIVAC some 6-plus years later, I replaced that same Dr. Werner Leutert).

My thought that PhDs were snobs was reinforced when all the new people with doctorates were given a wooden title bar for their desks. I complained to Bob Birdsall of personnel. He said he was sorry, but that was how it was. "Not for me!", I exclaimed modestly. "For Dr. Middleton of my department, who feels neglected". Name bar duly furnished. I stuck a wire in it, topped with a ping pong ball painted with nail polish as a bloodshot eyeball. Our Dr. Middleton's degree was in optometry! He had gotten it after leaving the RAND Corporation, where we shared the graveyard shift. But he wasn't that enamored with the profession. I talked him into being a programmer again.

Anyhow, perhaps to be different, or to show that THEY were now in charge, they preferred a UNIVAC 1103, and their influence won. I was left on the old limb. Don Pendery, that great IBM Applied Science Representative in the Los Angeles area (and later V.P. of Xerox) came to my rescue, arranging an interview with Dr. Charlie DeCarlo in New York.

IBM Hires Me

Usually IBM did not like to hire from their customers. I was hired because they eventually found out that one Dr. George Petrie had been receiving many letters that asked "What are you going to do about scientific calculation on the 705?", but had been stuffing them into the back recesses of his desk. Eventually a large enough number of prospective customers blew the whistle, and something had to be done for this group. I.e., many users, even then, did both scientific and commercial computing.

Charlie DeCarlo, then Director of Applied Science, knew of the work that Bob Bosak and I had done on FLAIR for the 650. It seemed to match his needs. So I went to New York to talk.

He took me to lunch at Reubens, where we had a few whiskey sours with the famous original sandwiches. Afterwards we passed Mr. Watson, Sr., on the street, and he was tottering a bit. Both omens (good in the view of this prehistoric hippie) settled any objections. I accepted employment. At a going-away celebration at the DCA (Digital Computer Association) meeting in Los Angeles, one Joe Sider said I would not last 6 weeks at IBM. It was 6.5 years.


The system I did to enable "scientific" computation on the IBM 705, an originally "commercial" machine, was PRINT I. The name came from "PRe-edited INTerpretive" Routine. DeCarlo was busier elsewhere, apparently trusting me, so I was left in the managerial hands of Vice President John McPherson. How the company handled my reporting line I have no idea, but he was my boss in practice. With a very light managerial touch, I should add.

I made two significant innovations with this system:

  1. Although an interpreter, like many systems of that era, the interpreted program was not the program the user had written. That program was processed and modified prior to its execution, such that all decisions invariant with execution were already made, so as not to be subject to any repetitive aspects of the usual interpreter. As a compiler does. This first pass, prior to actual execution, was a form of compilation.

  2. It was the first "LOAD-AND-GO" system in the world. Prior to this, particularly for compilers, one had to run two separate processes -- the first to convert the program to the form the computer would run from, and then a later submission of that form. This 2-step process pretty much had its origins in punch card limitations. I had the advantage of Austin Hoggatt and Richard Levitan being assigned to me to write a mag-tape-based operating system. This made it much easier to do the first process, write results to magnetic tape, and immediately read the tape back in again to do the actual program run. Thus "load-and-go", which was not to be done again until IBM's GOTRAN (FORTRAN) system was created.
PRINT I was done quite quickly. I arrived at IBM about mid-December of 1955, presented a paper on it at the Western Joint Computer Conference in February, and had it running quite well by late summer. It's understating that I worked long hours. Once that same Don Pendery went home late to Connecticut (on the last train out) and found me with printouts all over the floor of the train.

Gul Hira was assigned to me directly. Dorothy Walsh was borrowed from Computer Usage Corp. for documentation, and somewhere we found a New York type called Ellie Krasnow. I put her to work on floating point arithmetic.

Mrs. Krasnow was a bit opinionated, and did not know my bona fides, but she learned. One day she came in with a floating point divide that took 51 instructions. Being a near perfectionist, and wanting the system to run as fast as possible, I ventured that 51 was too many. She said "Oh yeah? How many can you do it in?" "Oh - about 39". That did it; she challenged me. Fortunately by the next day I was able to produce a new routine that did it in just 39 instructions. She checked it out, and from that day on it was a salute and "How many instructions should I use?"

She was a good sport. Once she lost some card decks in the trash. She borrowed a pair of coveralls from a janitor, dug into the pile, and found her decks.

PRINT I design and checkout got a lot of help from a Bob Brittenham and his employer A. O. Smith, from Dr. Jack Sherman at Texaco, and from Standard Oil of Indiana, another user to be. My records show three checkout sessions in Chicago, the only place we could get enough machine time. At the end of July, early August, and a final in early September.

In general PRINT I was a great success with IBM's commercial customers. Studies from a few firms that had both 704 FORTRAN and 705 PRINT I showed a remarkably good comparison in overall efficiency.

However, yours truly made a mistake he would never make again -- using some unused bit positions in the address to speed up the processing. You guessed it! As always happens, more storage or memory was needed and supplied. The unused positions were no longer unused! PRINT I collapsed for these larger systems. Fortunately I had already promoted a real FORTRAN processor for the 705.


The PRINT I system established me as a IBM Headquarters authority. I once received this "IBM-O-GRAM" (an internal telegram) saying:

"Dear Mr. Bemer:

  Please send me:

  1. The times to do commercial problems on the 704.
  2. The times to do scientific problems on the 705.
Dr. X, Applied Science Representative"

I was so stricken that I could not reply, so I just framed it, and hung it on the wall.

NOTE 1: My knowledge of JAVA and JIT first derived from a paper by Andy Johnson-Laird. See "Kewl Technologies: Hot Issues For The Law", because it's a great article about many legal issues!

Back to History Index        Back to Home Page