HOME

TheInfoList



OR:

The Laning and Zierler system (sometimes called "George" by its users) was the first operating algebraic
compiler In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs th ...
, that is, a system capable of accepting mathematical formulas in algebraic notation and producing equivalent
machine code In computer programming, machine code is any low-level programming language, consisting of machine language instructions, which are used to control a computer's central processing unit (CPU). Each instruction causes the CPU to perform a ve ...
(the term compiler had not yet been invented and the system was referred to as "an interpretive program"). It was implemented in 1952 for the
MIT The Massachusetts Institute of Technology (MIT) is a private land-grant research university in Cambridge, Massachusetts. Established in 1861, MIT has played a key role in the development of modern technology and science, and is one of the m ...
WHIRLWIND A whirlwind is a weather phenomenon in which a vortex of wind (a vertically oriented rotating column of air) forms due to instabilities and turbulence created by heating and flow (current) gradients. Whirlwinds occur all over the world and ...
by J. Halcombe Laning and Neal Zierler. It is preceded by non-algebraic compilers such as the
UNIVAC UNIVAC (Universal Automatic Computer) was a line of electronic digital stored-program computers starting with the products of the Eckert–Mauchly Computer Corporation. Later the name was applied to a division of the Remington Rand company an ...
A-0.


Description

The system accepted formulas in a more or less algebraic notation. It respected the standard rules for
operator precedence In mathematics and computer programming, the order of operations (or operator precedence) is a collection of rules that reflect conventions about which procedures to perform first in order to evaluate a given mathematical expression. For exam ...
, allowed nested parentheses, and used superscripts to indicate exponents. It was among the first programming systems to allow symbolic variable names and allocate storage automatically. The system also automated the following tasks:
floating point In computing, floating-point arithmetic (FP) is arithmetic that represents real numbers approximately, using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base. For example, 12.345 can be r ...
computation, linkage to subroutines for the basic functions of analysis (sine, etc.) and printing, and arrays and indexing. The system accepted input on punched tape produced by a Friden Flexowriter. The
character set Character encoding is the process of assigning numbers to graphical characters, especially the written characters of human language, allowing them to be stored, transmitted, and transformed using digital computers. The numerical values that ...
in use at the Whirlwind installation included " upper-case" (superscript) digits and a hyphen, which were used to indicate array indices, function codes, and (integer) exponents. Like other programming notations of its time, the system accepted only single-letter variable names and multiplication was indicated by juxtaposition of operands. A raised dot was available to indicate multiplication explicitly (the character was created by filing off the lower half of a colon!) The system also included support for solution of linear differential equations via the Runge–Kutta method. The system was described in an 18-page typewritten manual written for people familiar with mathematics but perhaps unfamiliar with computers. It contains almost nothing in the way of an introduction to computer hardware.


Sample program

The following example, taken from page 11 of the system's manual, evaluates \cos x for x = 0, 0.1, ..., 1 using the Taylor series expansion. The implementation is not terribly efficient, and the system already includes \cos x in its subroutine library, but the example serves to give a flavor of the system's syntax. Note that division in the system is evaluated after multiplication: 1 ''x'' = 0, ''z'' = 1 - ''x''2/2 + ''x''4/2·3·4 - ''x''6/2·3·4·5·6 + ''x''8/2·3·4·5·6·7·8 - ''x''10/2·3·4·5·6·7·8·9·10, PRINT ''x'', ''z''. ''e'' = ''x'' - 1.05, CP 1, STOP


Applications

Few applications were written for the system. One documented application, authored by Laning and Zierler themselves, involved a problem in aeronautics. The problem required seven systems of differential equations to express, and had been given to the Whirlwind because it was too large for MIT's Differential Analyzer to handle. The authors, exploiting the Runge-Kutta feature of their programming system, produced a 97-statement program in two and half hours. The program ran successfully the first time.


Influence on FORTRAN

Some sources have said that the Laning and Zierler system was the inspiration for FORTRAN. John W. Backus himself admitted to having contributed to this misconception:
The effect of the Laning and Zierler system on the development of FORTRAN is a question which has been muddled by many misstatements on my part. For many years I believed that we had gotten the idea for using algebraic notation in FORTRAN from seeing a demonstration of the Laning and Zierler system at MIT. (Backus)
After reviewing documentation from the time, Backus learned that the FORTRAN project was "well underway" when he and his team got a chance to see Laning and Zierler's work:
were already considering algebraic input considerably more sophisticated than that of Laning and Zierler's system when we first heard of their pioneering work ... is difficult to know what, if any, new ideas we got from seeing the demonstration of their system. (Backus)


See also

*
History of programming languages The history of programming languages spans from documentation of early mechanical computers to modern tools for software development. Early programming languages were highly specialized, relying on mathematical notation and similarly obscure ...
*
Timeline of programming languages This is a record of notable programming languages, by decade. Prior to 1950 there were 8 unique programming languages, where 6 were unique languages and 2 were combinations of unique languages. By 1960 there were around 45-50 unique programming ...


References


Further reading

* (28 pages) * * {{cite book , chapter=The Early Development of Programming Languages , title=A History of Computing in the Twentieth Century , location=New York , publisher=
Academic Press Academic Press (AP) is an academic book publisher founded in 1941. It was acquired by Harcourt, Brace & World in 1969. Reed Elsevier bought Harcourt in 2000, and Academic Press is now an imprint of Elsevier. Academic Press publishes referen ...
, date=1980 , isbn=0-12-491650-3 Compilers 1952 in computing Science and technology in Massachusetts 1952 establishments in Massachusetts