ALGOL 58
Encyclopedia
ALGOL 58, originally known as IAL, is one of the family of ALGOL
ALGOL
ALGOL is a family of imperative computer programming languages originally developed in the mid 1950s which greatly influenced many other languages and became the de facto way algorithms were described in textbooks and academic works for almost the next 30 years...

 computer programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

s. It was an early compromise design soon superseded by ALGOL 60
ALGOL 60
ALGOL 60 is a member of the ALGOL family of computer programming languages. It gave rise to many other programming languages, including BCPL, B, Pascal, Simula, C, and many others. ALGOL 58 introduced code blocks and the begin and end pairs for delimiting them...

. According to John Backus
John Backus
John Warner Backus was an American computer scientist. He directed the team that invented the first widely used high-level programming language and was the inventor of the Backus-Naur form , the almost universally used notation to define formal language syntax.He also did research in...



"The Zurich ACM-GAMM Conference had two principal motives in proposing the IAL: (a) To provide a means of communicating numerical methods and other procedures between people, and (b) To provide a means of realizing a stated process on a variety of machines..."

ALGOL 58 introduced the fundamental notion of the compound statement, but it was restricted to control flow only, and it was not tied to identifier scope in the way that Algol 60's blocks were.

Name

Bauer attributes the name to Bottenbruch: "He [Bottenbruch] was also the man who coined at that time [1957] the word 'algorithmic language' (algorithmische Sprache) at least in Germany."

History

There were proposals for a universal language by the Association for Computing Machinery
Association for Computing Machinery
The Association for Computing Machinery is a learned society for computing. It was founded in 1947 as the world's first scientific and educational computing society. Its membership is more than 92,000 as of 2009...

 (ACM) and also by the GAMM
Gesellschaft für Angewandte Mathematik und Mechanik
Gesellschaft für Angewandte Mathematik und Mechanik , often referred to by the acronym GAMM, is a German society for the promotion of science, founded in 1922 by the physicist Ludwig Prandtl and the mathematician Richard von Mises.In 1958 the GAMM and the ACM together worked out the "ALGOL 58...

. It was decided to organize a joint meeting to combine them. The meeting took place from May 27 to June 2, 1958, at ETH Zurich
ETH Zurich
The Swiss Federal Institute of Technology Zurich or ETH Zürich is an engineering, science, technology, mathematics and management university in the City of Zurich, Switzerland....

 and was attended by the following people:
  • Friedrich L. Bauer
    Friedrich L. Bauer
    Friedrich Ludwig Bauer is a German computer scientist and professor emeritus at Technical University of Munich.-Life:...

    , Hermann Bottenbruch, Heinz Rutishauser
    Heinz Rutishauser
    Heinz Rutishauser was a Swiss mathematician and a pioneer of modern numerical mathematics and computer science.- Life :...

    , and Klaus Samelson
    Klaus Samelson
    Klaus Samelson was a German mathematician, physicist, and computer pioneer in the area of programming language translation and push-pop stack algorithms for sequential formula translation on computers.- Early life :...

     (from the GaMM)
  • John Backus
    John Backus
    John Warner Backus was an American computer scientist. He directed the team that invented the first widely used high-level programming language and was the inventor of the Backus-Naur form , the almost universally used notation to define formal language syntax.He also did research in...

    , Charles Katz, Alan Perlis
    Alan Perlis
    Alan Jay Perlis was an American computer scientist known for his pioneering work in programming languages and the first recipient of the Turing Award.-Biography:...

    , and Joseph Henry Wegstein (from the ACM).

The language was originally proposed to be called IAL (International Algebraic Language) but according to Perlis
this was rejected as an "'unspeakable' and pompous acronym". ALGOL was suggested instead, though not officially adopted until a year later. The publication following the meeting still used the name IAL. Unresolved disagreements also led to a plan to define two dialects, ALGOL 58 and ALGOL 60 but the name ALGOL 60 was eventually used for a specific language
.

By the end of 1958 the ZMMD-group had built a working ALGOL 58 compiler for the Z22 computer. ZMMD was an abbreviation for Zürich (where Rutishauser worked), München (workplace of Bauer and Samelson), Mainz (location of the Z22 computer), Darmstadt (workplace of Bottenbruch).

ALGOL 58 saw some implementation effort at IBM
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...

, but the effort was in competition with FORTRAN
Fortran
Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...

, and soon abandoned. It was also implemented at Dartmouth College
Dartmouth College
Dartmouth College is a private, Ivy League university in Hanover, New Hampshire, United States. The institution comprises a liberal arts college, Dartmouth Medical School, Thayer School of Engineering, and the Tuck School of Business, as well as 19 graduate programs in the arts and sciences...

 on an LGP-30
LGP-30
The LGP-30, standing for Librascope General Purpose and then Librascope General Precision, was an early off-the-shelf computer. It was manufactured by the Librascope company of Glendale, California , and sold and serviced by the Royal Precision Electronic Computer Company, a joint venture with the...

, but that implementation soon evolved into Algol 60
ALGOL 60
ALGOL 60 is a member of the ALGOL family of computer programming languages. It gave rise to many other programming languages, including BCPL, B, Pascal, Simula, C, and many others. ALGOL 58 introduced code blocks and the begin and end pairs for delimiting them...

. An implementation for the Burroughs 220 called BALGOL evolved along its own lines as well, but retained much of ALGOL 58's original character.

ALGOL 58's primary contribution was to later languages; it was used as a basis for JOVIAL
JOVIAL
JOVIAL is a high-order computer programming language similar to ALGOL, but specialized for the development of embedded systems .JOVIAL is an acronym for "Jules Own Version of the International...

, MAD
MAD programming language
MAD is a programming language and compiler for the IBM 704 and later the IBM 709, IBM 7090, UNIVAC 1107, UNIVAC 1108, Philco 210-211, and eventually the IBM S/370 mainframe computers. Developed in 1959 at the University of Michigan by Bernard Galler, Bruce Arden and Robert M. Graham, MAD is a...

, NELIAC
NELIAC
The Navy Electronics Laboratory International ALGOL Compiler or NELIAC is a dialect and compiler implementation of the ALGOL 58 programming language developed by the Naval Electronics Laboratory in 1958....

 and ALGO
ALGO
ALGO is an algebraic programming language developed between 1959 and 1961 for the Bendix G-15 computer.ALGO was one of several programming languages inspired by the Preliminary Report on the International Algorithmic Language written in Zürich in 1958. This report underwent several modifications...

. It was also used during 1959 to publish algorithm
Algorithm
In mathematics and computer science, an algorithm is an effective method expressed as a finite list of well-defined instructions for calculating a function. Algorithms are used for calculation, data processing, and automated reasoning...

s in CACM
Communications of the ACM
Communications of the ACM is the flagship monthly journal of the Association for Computing Machinery . First published in 1957, CACM is sent to all ACM members, currently numbering about 80,000. The articles are intended for readers with backgrounds in all areas of computer science and information...

, beginning a trend of using ALGOL notation in publication that continued for many years.

Time line of implementations of ALGOL 58 variants

Name Year Author State Description Target CPU
ZMMD-implementation 1958 Friedrich L. Bauer
Friedrich L. Bauer
Friedrich Ludwig Bauer is a German computer scientist and professor emeritus at Technical University of Munich.-Life:...

, Heinz Rutishauser, Klaus Samelson, Hermann Bottenbruch
Germany Z22
NELIAC
NELIAC
The Navy Electronics Laboratory International ALGOL Compiler or NELIAC is a dialect and compiler implementation of the ALGOL 58 programming language developed by the Naval Electronics Laboratory in 1958....

 
1958 Naval Electronics Laboratory
Naval Electronics Laboratory
The U.S. Navy Electronics Laboratory was created in 1945, with the consolidation of the Navy Radio and Sound Lab and its wartime partner, the University of California Division of War Research...

 
USA AN/USQ-17
AN/USQ-17
The AN/USQ-17 or Naval Tactical Data System computer referred to in Sperry Rand documents as the Univac M-460, was Seymour Cray's last design for UNIVAC...

JOVIAL
JOVIAL
JOVIAL is a high-order computer programming language similar to ALGOL, but specialized for the development of embedded systems .JOVIAL is an acronym for "Jules Own Version of the International...

1960 Jules Schwarz  USA Was the DOD
United States Department of Defense
The United States Department of Defense is the U.S...

 HOL
High-level programming language
A high-level programming language is a programming language with strong abstraction from the details of the computer. In comparison to low-level programming languages, it may use natural language elements, be easier to use, or be from the specification of the program, making the process of...

 prior to Ada (programming language)
Ada (programming language)
Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language, extended from Pascal and other languages...

 
Various (see article)
BALGOL  1960 Joel Merner et al. USA Burroughs B220
MAD  1960 University of Michigan
University of Michigan
The University of Michigan is a public research university located in Ann Arbor, Michigan in the United States. It is the state's oldest university and the flagship campus of the University of Michigan...

 
USA IBM 7090
IBM 7090
The IBM 7090 was a second-generation transistorized version of the earlier IBM 709 vacuum tube mainframe computers and was designed for "large-scale scientific and technological applications". The 7090 was the third member of the IBM 700/7000 series scientific computers. The first 7090 installation...

/7094 mainframe, then mid-1960s ported to Univac 1108
Dartmouth ALGOL 30
Dartmouth ALGOL 30
Dartmouth ALGOL 30 was an implementation, firstly of ALGOL 58, then of ALGOL 60 for the LGP-30 at Dartmouth College, hence the name.Since the limited size of the LGP-30 precluded a full implementation of ALGOL 60, certain of its features were omitted; but the implementors did include parameters...

1962 Thomas Eugene Kurtz
Thomas Eugene Kurtz
Thomas Eugene Kurtz is an American computer scientist who co-developed the BASIC programming language during 1963 to 1964, together with John G. Kemeny....

 et al. - evolved into ALGOL 60
USA LGP-30
LGP-30
The LGP-30, standing for Librascope General Purpose and then Librascope General Precision, was an early off-the-shelf computer. It was manufactured by the Librascope company of Glendale, California , and sold and serviced by the Royal Precision Electronic Computer Company, a joint venture with the...

SUBALGOL  1962 Bob Braden
Bob Braden
Robert Braden is an American computer scientist who played a role in the development of the Internet. His research interests include end-to-end network protocols, especially in the transport and internetwork layers.-Career:...

, Lawrence M. Breed
Lawrence M. Breed
Lawrence M. Breed is a computer scientist, artist and inventor, best known for his involvement in the APL programming language.- Career :While at Stanford University in 1961, he created the first computer animation language, MACS, and demonstrated it publicly with Earl Boebert.While getting his M.S...

 and Roger Moore
Roger Moore (computer scientist)
Roger D. Moore was the 1973 recipient of the Grace Murray Hopper Award from the Association for Computing Machinery...

 
USA BALGOL extension IBM 7090
IBM 7090
The IBM 7090 was a second-generation transistorized version of the earlier IBM 709 vacuum tube mainframe computers and was designed for "large-scale scientific and technological applications". The 7090 was the third member of the IBM 700/7000 series scientific computers. The first 7090 installation...

ALGO ~ Bendix Corporation
Bendix Corporation
The Bendix Corporation was an American manufacturing and engineering company which during various times in its 60 year existence made brake systems, aeronautical hydraulics, avionics, aircraft and automobile fuel control systems, radios, televisions and computers, and which licensed its name for...

 
USA Bendix G-15
Bendix G-15
The Bendix G-15 computer was introduced in 1956 by the Bendix Corporation, Computer Division, Los Angeles, California. It was about 5 by 3 by 3 ft and weighed about 950 lb . The base system, without peripherals, cost $49,500. A working model cost around $60,000. It could also be rented for...


ALGOL 58's influence on ALGOL 60

  • IAL introduced the three-level concept of reference, publication and hardware language, and the concept of "word delimiters" having a separate representation from freely chosen identifiers (hence, no reserved words). ALGOL 60 kept this three-level concept.
  • The distinction between assignment (:= representing a left-facing arrow) and the equality relation (=) was introduced in IAL and kept in ALGOL 60.
  • Both IAL and ALGOL 60 allowed arrays with arbitrary lower and upper subscript bounds, and allowed subscript bounds to be defined by integer expressions.
  • Both IAL and ALGOL 60 allowed nesting of procedure declarations and the corresponding identifier scopes.
  • The IAL report described parameter substitution in much the same terms as the ALGOL 60 report, leaving open the possibility of call by name. It is unclear if this was realized at the time.
  • IAL allowed numeric statement labels, that ALGOL 60 kept.
  • The possibility of including non-ALGOL code within a program was already hinted at, in the context of parameters to procedures.
  • Both IAL and ALGOL 60 had a Switch statement
    Switch statement
    In computer programming, a switch, case, select or inspect statement is a type of selection control mechanism that exists in most imperative programming languages such as Pascal, Ada, C/C++, C#, Java, and so on. It is also included in several other types of languages...

    .
  • In-line functions of the form f(x) := x / 2; were proposed in IAL but dropped in ALGOL 60.
  • IAL procedure declarations provided separate declaration lists for input and output parameters, a procedure could return multiple values; this mechanism was replaced in ALGOL 60 with the value
    Evaluation strategy
    In computer science, an evaluation strategy is a set of rules for evaluating expressions in a programming language. Emphasis is typically placed on functions or operators: an evaluation strategy defines when and in what order the arguments to a function are evaluated, when they are substituted...

    declaration.
  • Variable declarations in IAL could be placed anywhere in the program and not necessarily at the beginning of a procedure. In contrast, the declarations within an ALGOL 60 block should occur before all execution statements.
  • The for-statement had the form for i:=base(increment)limit, directly resembling the loop of Rutishauser's programming language Superplan, replacing “=” with “:=”, and replacing its German keyword Für with the direct English translation for; ALGOL 60 replaced the parentheses with the word delimiters step and until, such that the previous statement instead would be i:=base step increment until limit.
  • The IAL if-statement did not have a then-clause or else-clause; it rather guarded the succeeding statement. IAL provided an if either-statement that cleanly allowed testing of multiple conditions. Both were replaced by ALGOL's if-then construct, with the introduction of the "dangling-else" ambiguity.
  • IAL provided macro-substitution with the do-statement; this was dropped in ALGOL 60.
  • IAL allowed to omit one or more array subscripts when passing arrays to procedures, and to provide any or all arguments to a procedure passed to another procedure.
  • IAL's binary boolean operators were all of the same precedence level. Exponents were indicated with paired up and down arrows, which removed any confusion about the correct interpretation of nested exponents; ALGOL 60 replaced the paired arrows with a single up-arrow whose function was equivalent to FORTRAN's **.
  • The IAL report did not explicitly specify which standard functions were to be provided, making a vague reference to the "standard functions of analysis." The ALGOL 60 report had a more explicit list of standard functions.

External links

  • Algol 58 at the Software Preservation Group (cf. Computer History Museum
    Computer History Museum
    The Computer History Museum is a museum established in 1996 in Mountain View, California, USA. The Museum is dedicated to preserving and presenting the stories and artifacts of the information age, and exploring the computing revolution and its impact on our lives.-History:The museum's origins...

    )
  • Algol 58 report from CACM at the Software Preservation Group
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK