DEVELOPING SOFTWARE PROGRAMMING

by R. J. Reiman, Historian

All early computers. ENIAC. the IAS machine, Manchester University's Mark 1, the IBM 701, and Whirlwind were very difficult to program. In general, the first computers were programmed in machine code of binary numbers, or in codes known as ASSEMBLY LANGUAGES. These used letters, numbers, symbols, and short words such as ADD. After entry into the computer, it translated these languages into machine code by means of internal programs called ASSEMBLERS, and the resulting machine code was punched out on cards or tape and was then re-entered into the computer by the operator. Later, high-level programming languages which used ordinary English phrases and mathematical expressions were developed. IBM and Remington Rand then researched advancing these techniques.

An ENIAC program was a wiring diagram with instructions on connecting the machine's switches and plug-boards to solve a given problem. Numerical circuits and programming circuits had to be connected in detail, a 2 or 3 day operation, to solve a complicated problem. ENIAC's team, Herman Goldstine and John W. Mauchly, with help from John von Neumann, developed FLOW CHARTING, a pictorial representation of the computer's operation.

By late 1940's, ENIAC was superseded by stored-program computers which enabled avoidance of the computer

wiring step, and allowed instructions to be fed directly by punch cards or magnetic tape decks. This, however, still required the use of binary numbers which was awkward for people. UNIVAC. at Mauchly's suggestion, developed a SHORT CODE with letters like SO and numbers like 03 to simplify an equation such as A=B + C.

In the early 1950's, FLOATING POINT system enabled large numbers to become manageable. For example, 2,500 became .25 X 10 to the 4th power. This system was not done automatically. In addition, the programmer had to assign memory address i.e. INDEXING, and also handle input/output operations.

In 1951, Grace Murray Hopper, a mathematician at Remington Rand, conceived of an internal program for automatic floating-point operation, called a COMPILER. The compiler generated an organized program and carried it out. The idea spread to programmers at MIT, J. Halcome Lanin, and Niel Zierler, invented the first practical compiler for WHIRLWIND, which could use words like PRINT and STOP, as well as do equations like A + B = C in their natural form. Their compiler required excessive machine time to operate.

In 1953 John Baccus of IBM began on a compiler and higher language program called FORTRAN, FORmula TRANslation, project. The effort proved difficult to complete, and it took until 1956 before debugging could begin and be concluded in 1957. The program manual for the IBM 704 was 51 pages long, described the high level language, and explained about PUNCH, READ, and DRUM. There were many field problems with FORTRAN, but it was a landmark in the history of computers. You could make the computer do your bidding, with the computer automatically and rapidly translating your instructions into machine code. IBM licensed FORTRAN to competing manufacturers, and now computers could speak the same language! FORTRAN was not, however, suited for business and other applications. These would be filled by COBOL, ALGOL, AND BASIC.