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 appeared | 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 one of the family of ALGOL computer programming languages. It was an early compromise design soon superseded by ALGOL 60. According to John Backus[2]
"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.
Bauer attributes the name to Hermann Bottenbruch, who coined the term algorithmic language (algorithmische Sprache) in 1957, "at least in Germany".[3]
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,[4] 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.[5]
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.[6]
ALGOL 58's primary contribution was to later languages; it was used as a basis for JOVIAL, MAD, NELIAC 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.
Name | Year | Author | State | Description | Target CPU |
---|---|---|---|---|---|
ZMMD-implementation | 1958 | Friedrich L. Bauer, Heinz Rutishauser, Klaus Samelson, Hermann Bottenbruch | Germany | Z22 | |
NELIAC | 1958 | Naval Electronics Laboratory | USA | AN/USQ-17 | |
JOVIAL | 1960 | Jules Schwartz | USA | Was the DOD HOL prior to Ada (programming language) | Various (see article) |
BALGOL | 1960 | Joel 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 60 | USA | LGP-30 | |
SUBALGOL | 1962 | Bob Braden, Lawrence M. Breed and Roger Moore, Stanford University | USA | BALGOL extension | IBM 7090 |
ALGO | ~ | Bendix Corporation | USA | Bendix G-15 |
:=
representing a left-facing arrow) and the equality relation =
was introduced in IAL and kept in ALGOL 60.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
.
By: Wikipedia.org
Edited: 2021-06-18 18:11:04
Source: Wikipedia.org