PROGRAMING

Although the Ballistic Research Laboratory was the sponsor of ENIAC, one year into this three year project John von Neumann, a mathematician working on the hydrogen bomb at Los Alamos, became aware of this computer.[11] Los Alamos subsequently became so involved with ENIAC that the first test problem run was computations for the hydrogen bomb, not artillery tables.[12] The input/output for this test was one million cards.[13]

The ENIAC could be programmed to perform complex sequences of operations, which could include loops, branches, and subroutines. The task of taking a problem and mapping it onto the machine was quite complex, and usually took weeks. After the program was figured out on paper, the process of getting the program "into" the ENIAC by manipulating its switches and cables took additional days. This was followed by a period of verification and debugging, aided by the ability to "single step" the machine.

The six women who did most of the programming of ENIAC were inducted in 1997 into the Women in Technology International Hall of Fame.[14][15] As they were called by each other in 1946, they were Kay McNulty, Betty Jennings, Betty Snyder, Marlyn Wescoff, Fran Bilas and Ruth Lichterman.[16][17]

ENIAC was a one-of-a-kind design and was never repeated. The freeze on design in 1943 meant that the computer had a number of shortcomings which were not included in the design, notably the inability to store a program. Eckert and Mauchly started work on a new design, to be later called the EDVAC, which would be both simpler and more powerful. In particular, in 1944 Eckert wrote his description of a memory unit (the mercury delay line) which would hold both the data and the program. John von Neumann, who was consulting for the Moore School on the EDVAC sat in on the Moore School meetings at which the stored program concept was elaborated, wrote up an incomplete set of notes (First Draft of a Report on the EDVAC) intended to be used as an internal memorandum describing, elaborating, and couching in formal logical language the ideas developed in the meetings. Herman Goldstine distributed copies of the First Draft to a number of government and educational institutions, spurring widespread interest in the construction of a new generation of electronic computing machines, including EDSAC and SEAC.

A number of improvements were also made to ENIAC from 1948, including a primitive read-only stored programming mechanism[18] using the Function Tables as program ROM, an idea included in the ENIAC patent and proposed independently by Dr. Richard Clippinger of the BRL. Dick Clippinger consulted with John von Neumann on what instruction set to implement. Clippinger had thought of a 3-address architecture while von Neumann proposed a 1-address architecture because it was simpler to implement. Three digits of one accumulator (6) were used as the program counter, another accumulator (15) was used as the main accumulator, a third accumulator (8) was used as the address pointer for reading data from the function tables, and most of the other accumulators (1–5, 7, 9–14, 17–19) were used for data memory. The programming of the stored program for ENIAC was done by Betty Jennings, Dick Clippinger and Adele Goldstine. It was first demonstrated as a stored-program computer on September 16, 1948, running a program by Adele Goldstine for John von Neumann. This modification reduced the speed of ENIAC by a factor of six and eliminated the ability of parallel computation, but as it also reduced the reprogramming time to hours instead of days, it was considered well worth the loss of performance. Also analysis had shown that due to differences between the electronic speed of computation and the electromechanical speed of input/output, almost any practical real world problem was completely I/O bound even without making use of the original machine's parallelism and most would still be I/O bound even after the speed reduction from this modification. Early in 1952, a high speed shifter was added, which improved the speed for shifting by a factor of five. In July 1953, a 100-word expansion core memory was added to the system, using binary coded decimal, excess-3 number representation. To support this expansion memory, the ENIAC was equipped with a new Function Table selector, a memory address selector, pulse-shaping circuits, and three new orders were added to the programming mechanism.

0 comments: