ALGOL 58

Last updated
ALGOL 58
Paradigm procedural, imperative, structured
Family ALGOL
Designed by Friedrich L. Bauer, Hermann Bottenbruch, Heinz Rutishauser, Klaus Samelson, John Backus, Charles Katz, Alan Perlis, Joseph Henry Wegstein
First appeared1958;67 years ago (1958)
Typing discipline Static, strong
Scope Lexical
Influenced by
FORTRAN, IT, Plankalkül, [1] Superplan, Sequentielle Formelübersetzung
Influenced
Most subsequent imperative languages ( Algol-like )

ALGOL 58, originally named IAL, is a member of the ALGOL family of computer programming languages. It was an early compromise design soon superseded by ALGOL 60. According to John Backus:

Contents

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... [2]

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 Hermann Bottenbruch, who coined the term algorithmic language (algorithmische Sprache) in 1957, "at least in Germany". [3] [4]

History

There were proposals for a universal language by the Association for Computing Machinery (ACM) and also by the German Gesellschaft für Angewandte Mathematik und Mechanik ("Society of Applied Mathematics and Mechanics") (GAMM). 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 and was attended by the following people:

The language was originally proposed to be called IAL (International Algebraic Language) but according to Perlis, [5] 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. [6]

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, but the effort was in competition with FORTRAN, and soon abandoned. It was also implemented at Dartmouth College on an LGP-30, but that implementation soon evolved into ALGOL 60. An implementation for the Burroughs 220 called BALGOL evolved along its own lines as well, but retained much of ALGOL 58's original character. [7]

ALGOL 58's primary contribution was to later languages; it was used as a basis for JOVIAL, [4] MAD, NELIAC [4] and ALGO. It was also used during 1959 to publish algorithms in CACM , beginning a trend of using ALGOL notation in publication that continued for many years.

Time line of implementations of ALGOL 58 variants

NameYearAuthorStateDescriptionTarget CPU
ZMMD-implementation1958 Friedrich L. Bauer, Heinz Rutishauser, Klaus Samelson, Hermann BottenbruchGermany Z22
NELIAC 1958 Naval Electronics Laboratory USA AN/USQ-17
JOVIAL 1960 Jules Schwartz USAWas the DOD HOL prior to Ada (programming language) Various (see article)
BALGOL 1960Joel Merner et al.USA Burroughs Corporation B220
MAD 1960 University of Michigan USA IBM 7090/7094 mainframe, then mid-1960s ported to Univac 1108
Dartmouth ALGOL 30 1962 Thomas Eugene Kurtz et al. - evolved into ALGOL 60USA LGP-30
SUBALGOL 1962 Bob Braden, Lawrence M. Breed and Roger Moore, Stanford UniversityUSABALGOL extension IBM 7090
ALGO ~ Bendix Corporation USA Bendix G-15

ALGOL 58's influence on ALGOL 60

References

  1. Rojas, Raúl; Hashagen, Ulf (2002). The First Computers: History and Architectures. MIT Press. p. 292. ISBN   978-0262681377 . Retrieved October 25, 2013.
  2. Backus, J.W. (1959). "The Syntax and Semantics of the Proposed International Algebraic Language of Zürich ACM-GAMM Conference". Proceedings of the International Conference on Information Processing. UNESCO. pp. 125–132.
  3. Aspray, William (17 February 1987), An interview with Friedrich L. Bauer (PDF), Charles Babbage Institute, archived from the original (PDF) on April 22, 2012
  4. 1 2 3 Goos, Gerhard [in German] (2017-08-07). Geschichte der deutschsprachigen Informatik - Programmiersprachen und Übersetzerbau [History of informatics in German-speaking countries - Programming languages and compiler design](PDF) (in German). Karlsruhe, Germany: Fakultät für Informatik, Karlsruhe Institute of Technology (KIT). Archived (PDF) from the original on 2022-05-19. Retrieved 2022-11-14. (11 pages)
  5. Perlis, A.J. (1981). "Talk on Computing in the fifties". ACM National Conference. Nashville, TN. Los Alamito, CA: (Transcript in J. A. N. Lee (ed.), Computer Pioneers, IEEE Computer Society Press (published 1995). pp. 545–556).
  6. Perlis, A.J.; Samelson, K. (1958). "Preliminary report: international algebraic language". Communications of the ACM. 1 (12): 8–22. doi: 10.1145/377924.594925 . S2CID   28755282.
  7. "Algol 58 implementations and dialects", Software Preservation Group, Computer History Museum. Donald Knuth is quoted on BALGOL: "I’m in my second year at Caltech, and I was a consultant to Burroughs. After finishing my compiler for Burroughs, I joined the Product Planning Department. The Product Planning Department was largely composed of people who had written the best software ever done in the world up to that time, which was a Burroughs ALGOL compiler for the 220 computer. That was a great leap forward for software. It was the first software that used list processing and high level data structures in an intelligent way. They took the ideas of Newell and Simon and applied them to compilers. It ran circles around all the other things that we were doing." [Don Knuth, CHM Oral History, 2007, page 9]
  8. Naur, P, ed. (1962). Revised report on the Algorithmic Language ALGOL 60 (PDF). International Federation for Information Processing.