Iterations – Norberg –
Software Development at EMCC
18
The structure of this compiler resembled the earlier compilers with the
added feature of the Pseudo-code.
50
The set of easily accessible
subroutines was contained in a library in alphabetical order. Information
from tape was read in the same sixty word units, called blocks. Arithmetic
was done in floating point. Data was expressed in “two-word” form,
which represented the complete numeric quantity to be expressed. The
first word contained a numeric quantity without the decimal point and the
second word gave the information for the placement of the decimal point.
The data and instructions occupied the same block locations as in the
previous compilers.
In solving a problem such as
Y = e
-x2
sin cx
Where x ranged between –0.99 and +0.99 in increments of
∆
x = 0.01, y
needed to be determined for each of 199 values of x throughout the range.
Consider only one such calculation in the set to appreciate the flavor of the
Pseudo-code. One operation was to increase x by the increment
∆
x and
test to determine if all the values of x throughout the range have been used
to calculate the y result required. The description of this operation is
“ADD to A LIMIT.” Three lines were needed, expressed in a three-
address code.
1 2 3 4 5 6 7 8 9 10 11 12
AAL
(x
i
) (
∆
x) (Lx)
1CN 0 0 0 0 (
≠
OPN #)
2CN 0 0 0 0 ( = OPN #)
The first line required 3 relative working storage addresses. The values
needed were x,
∆
x, and Lx, the last being the limit of the range of x. X for
this problem was known to be in 000,
∆
x was in 002, and Lx was in 004.
Thus,
the first line was expressed
AAL 000 002 004
On the basis of this instruction, the routine would add x (in 000) to
∆
x (in
002) and place the sum (the new x) back in 000. This new x would then be
tested against the limit of x (LX in 004) to determine whether or not the
limit had been reached. All the coder was required to do was send
“control” back to the beginning and calculate the next y with the new
value of x. This was the purpose of the 1CN line. The symbols
≠
OPN #
meant that if the new
x was not equal to the limit, control would be
transferred to the operation number (OPN #) placed here. Since actual
calculation began with Operation 1, this line would read
1CN 000 0 00001
Iterations – Norberg – Software Development at EMCC
19
Five digits were allocated to the operation number because the compiler
could handle up to 99,999 operations. When the limit for this problem was
reached, control went to the next operation, in this case Operation 11.
2CN 000 0 00011
In all, there were 35 Pseudo-code instructions, including an end coding
instruction. Figure 4. Later compilers for business program compilation
received names, Math-Matic (a form of A-3) and Flow-Matic, in response
to requests of the sales staff. Flow-Matic allowed the user to write
instructions in English pseudo-code, which UNIVAC I could translate and
use to generate the program. Figure 5 shows the set of instructions for
Flow-Matic, a compiler that became an important input to the design of
the later higher-level programming language COBOL.
Dupont was the first company to use A-0. From there, it spread to the
David Taylor Model Basin, where Betty Snyder now resided, to the Army
Map Service, and the Census Bureau, all purchasers of UNIVAC I
computer systems.
51
The Mauchly group determinedly tried to convince the community to use
these techniques. There was the Philadelphia meeting mentioned above
where Hopper spoke on A-0. Mauchly repeatedly addressed groups in
various professional settings. Not surprisingly, he participated in the
symposium on large-scale digital calculating machinery at Harvard in
1947, where he spoke about “Preparation of Problems for Edvac-type
Machines.”
52
In September 1949, he presented details about the UNIVAC
system to the American Chemical Society. Mauchly was
invited to address
the Chesapeake Section of the Society of Naval Architects and Marine
Engineers in January 1951 on the subject of the computer’s value in
various engineering problems of interest to the society. Before the
American Gas Association-Edison Electric Institute Joint Accounting
Conference in April 1953, Mauchly focused on the system’s usefulness to
business and noted a new training program offered by Remington Rand.
53
Hopper was on the lecture circuit at least as much as Mauchly. In May
1952, she spoke to the Association for Computing Machinery (ACM) on
“The Education of a Computer,” a title she used often but with slightly
revised text each time to keep up with developments in EMCC. For
example, as we noted above, one talk was to the Symposium on Industrial
Application for Automatic Computing Equipment held in Kansas City,
MO, by the Midwest Research Institute in January 1953. Richard
Ridgeway delivered a paper on “Compiling Routines” to a meeting of the
ACM in September 1952 in which he did a detailed analysis of EMCC
compilers. The Census Bureau organized a workshop on coding and
programming for July 1953, attended by several Remington Rand