ALGOL 58

ALGOL 58

Infobox programming language
name = ALGOL 58

paradigm = procedural, imperative, structured
year = 1958
designer = Friedrich L. Bauer, Hermann Bottenbruch, Heinz Rutishauser, Klaus Samelson, John Backus, Charles Katz, Alan Perlis, Joseph Henry Wegstein
developer =
latest_release_version =
latest_release_date =
latest_test_version =
latest_test_date =
typing =
implementations = ZMMD-implementation
dialects =
influenced_by = FORTRAN, IT, and Sequentielle Formelübersetzung
influenced = Most subsequent imperative languages ("Algol-like")
operating_system =
license =
website =

ALGOL 58, originally known as 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 [:cite conference
first = J.W.
last = Backus
title = The Syntax and Semantics of the Proposed International Algebraic Language of Zürich ACM-GAMM Conference
booktitle = Proceedings of the International Conference on Information Processing
publisher = UNESCO
pages = 125-132
year = 1959
]

"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 compound statement, but it was restricted to control flow only, and it was not tied to identifier scope.

Name

Possible origin of the name: "He [Bottenbruch] was also the man who coined at that time [1957] the word 'algorithmic language' (algorithmische Sprache) at least in Germany." [Friedrich L. Bauer [http://www.cbi.umn.edu/oh/pdf.phtml?id=56] ]

History

There were proposals for a universal language by the Association for Computing Machinery (ACM) and also by the GAMM. It was decided to organize a joint meeting to combine them. The meeting took place from May 27 to June 1, 1958, in Zürich and was attended by the following people:
* Friedrich L. Bauer, Hermann Bottenbruch, Heinz Rutishauser, and Klaus Samelson (from the GaMM)
* John Backus, Charles Katz, Alan Perlis, and Joseph Henry Wegstein (from the ACM). The language was originally proposed to be called IAL (International Algebraic Language) but according to Perlis [cite conference
first = A.J.
last = Perlis
title = Talk on Computing in the fifties
booktitle = ACM National Conference. Nashville,. TN
year = 1981
publisher = (Transcript in J. A. N. Lee (ed.), Computer Pioneers, IEEE Computer Society Press, Los Alamito, CA, 1995, 545-556)
] 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 [cite journal
last = Perlis
first = A.J.
coauthors = Samelson, K.
title = Preliminary report: international algebraic language
journal = Communications of the ACM
volume = 1
issue = 12
pages = 8–22
year = 1958
doi = 10.1145/368685.368689
] . Unresolved disagreements also led to a plan to define two dialects, ALGOL 58 and ALGOL 60fact|date=January 2008 but the name ALGOL 60 was eventually used for a specific language [cite book
title = Revised report on the Algorithmic Language ALGOL 60
first = P (editor)
last = Naur
publisher = International Federation for Information Processing
year = 1962
] .

By the end of 1958 the ZMMD-group had built a working ALGOL 58 compiler for the Z22. ZMMD was an abbreviation for Zürich (where Rutishauser worked), München (workplace of Bauer, Samelson), Mainz (Z22's location), 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.

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.

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 (:=) 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.
* 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 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", following conventions established in earlier automatic programming systems; 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.

References


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • algol — algol …   Dictionnaire des rimes

  • ALGOL — (langage) Pour les articles homonymes, voir Algol. Algol est un langage de programmation. Il a été créé à la fin des années 1950. Son nom est l acronyme d algorithmic oriented language (avec un clin d œil à l étoile β Persei). Son objectif était… …   Wikipédia en Français

  • ALGOL X — was the code name given to the programming language which the Working Group 2.1 on ALGOL of the International Federation for Information Processing was to develop as a successor to ALGOL 60. It attempted to find a short term solution to existing… …   Wikipedia

  • ALGOL 68 — ist eine Programmiersprache. Ihr Entwurf beruhte auf den Anforderungen, dass sie geeignet sein soll, Algorithmen darzustellen und zu verbreiten, diese effektiv auf einer Vielzahl unterschiedlicher Rechenanlagen auszuführen und um zu helfen, sie… …   Deutsch Wikipedia

  • ALGOL W — is a programming language. It was Niklaus Wirth s proposal for a successor to ALGOL 60 in the ALGOL 68 committee. It represented a relatively conservative modification of ALGOL 60; Wirth added string, bitstring, complex number and reference to… …   Wikipedia

  • Algol 68 — ist eine Programmiersprache. Ihr Entwurf beruhte auf den Anforderungen, dass sie geeignet sein soll, Algorithmen darzustellen und zu verbreiten, diese effektiv auf einer Vielzahl unterschiedlicher Rechenanlagen auszuführen und um zu helfen, sie… …   Deutsch Wikipedia

  • Algol 68 — est un langage de programmation dérivé du langage Algol 60. L objectif des concepteurs d Algol 68 était d offrir un langage de programmation universel et résolument innovateur. Pour cela, sa syntaxe a été définie à l aide d une grammaire… …   Wikipédia en Français

  • Algol W — est une version du langage Algol due à Niklaus Wirth, proposée au comité Algol 68 pour succéder à Algol 60. Bien qu antérieure au Pascal, elle était plus puissante à certains points de vue. En particulier toute expression ou tout bloc, en Algol W …   Wikipédia en Français

  • ALGOL — (eine Abkürzung für „Algorithmic Language“), meist Algol geschrieben, ist der Name einer Familie von Programmiersprachen, die ab Ende der 1950er Jahre bis in die 1980er Jahre Verwendung fanden. Trotz etlicher Gemeinsamkeiten in Struktur, Syntax… …   Deutsch Wikipedia

  • ALGOL — (algorithmic oriented language) Langage algorithmique utilisé pour le traitement des problèmes à caractère scientifique. Sa vocation essentiellement mathématique fait qu’il a joué un rôle important dans la définition et dans le développement des… …   Encyclopédie Universelle

  • ALGOL Y — was the name given to a speculated successor for the ALGOL 60 programming language that incorporated some radical features that were rejected for ALGOL 68 and ALGOL X. ALGOL Y was intended to be a radical reconstruction of ALGOL.One such feature… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”