From Encyclopedia of Mathematics
Jump to: navigation, search

A general name for a number of algorithmic languages (cf. Algorithmic language) used for automatic programming and for the publication of algorithms (it is an abbreviation of "ALGOrithmic Language" ).

The first variant of Algol was developed in 1958 by an international scientific team. The 1960 International Conference in Paris adopted the language "Algol-60" , which combined several useful features of the programming languages then known. Algol-60, and its descendent like Pascal, gained widespread use and the name Algol now usually refers to "Algol-60" . It is especially suited for the description of algorithms of numerical analysis. The language is machine-independent and does not provide standard ways of performing input or output operations. Special concrete versions of standard Algol may be developed for individual computers, and each one is a language accepted by the compiler of the individual machine. As a rule, the transition from the standard language to its concrete version is natural and does not involve much labour. The basic symbols in Algol are decimal numbers, the upper-case and lower-case letters of the English alphabet, punctuation marks, symbols of arithmetical and logical operations, other special symbols and certain English words (e.g., "begin" , "end" , "real" , "integer" , "array" ). From the basic symbols of the language further entities are formed according to certain rules, such as numbers, identifiers (names), simple variables, subscripted variables, function designators, expressions, statements, and comments. There are several basic types of statements: an assignment statement, a goto statement, a conditional statement which, depending on the outcome of the logical expression contained in it, actuates one of its own inner statements, and a for statement (a loop). A group of statements may be combined into a compound statement or a block (which contains declarations). The Algol notation of an algorithm may include definitions of procedures. The definition of a procedure includes a heading and a body. The body of a procedure may be a statement (most often a block) described in the usual Algol notation. In order to render the Algol language more flexible, procedures expressed in some other language (e.g. machine language) may be employed. A procedure may be called with the aid of a procedure statement consisting of the procedure identifier and a list of actual parameters corresponding to the formal parameters provided in the heading of the procedure with the given identifier. An expression may contain function designators, which call the procedure for the computation of a value. The procedure call may be recursive, i.e. a call which provides for the re-call of the same procedure while executing it. The language potentialities of standard Algol are often restricted in its concrete implementations. The proposed successor to Algol-60 is the language Algol-68, which has a significantly different structure, contains many new concepts and possibilities, and is designed for more powerful machines.


[1a] P., et al. Naur, "Revised report on the algorithmic language Algol 60" Num. Math. , 4 (1963) pp. 420–453
[1b] P., et al. Naur, "Revised report on the algorithmic language Algol 60" Comm. ACM , 6 (1963) pp. 1–17
[1c] P., et al. Naur, "Revised report on the algorithmic language Algol 60" The Computer Journal , 5 (1963) pp. 349–367
[2] S.S. Lavrov, "A universal programming language (Algol-60)" , Moscow (1967) (In Russian)
[3a] A. van, et al. Wijngaarden, "Report on the algorithmic language Algol 68" Num. Math. , 14 (1969) pp. 79–218
[3b] A. van, et al. Wijngaarden, "Revised report on the algorithmic language Algol 68" Acta Inform. , 5 (1975) pp. 1–236
How to Cite This Entry:
Algol. V.V. Martynyuk (originator), Encyclopedia of Mathematics. URL:
This text originally appeared in Encyclopedia of Mathematics - ISBN 1402006098