Paradigm | Procedural, imperative, structured |
---|---|
Family | ALGOL |
Designed by | Bauer, Bottenbruch, Rutishauser, Samelson, Backus, Katz, Perlis, Wegstein, Naur, Vauquois, van Wijngaarden, Woodger, Green, McCarthy |
First appeared | 1958 |
Typing discipline | Static, strong |
Scope | Lexical |
Influenced | |
Most subsequent imperative languages (including so-called ALGOL-like languages) e.g. PL/I, Simula, Pascal, C and Scheme |
ALGOL (/ˈælɡɒl, -ɡɔːl/; short for "Algorithmic Language")[1] is a family of imperative computer programming languages originally developed in 1958. ALGOL heavily influenced many other languages and was the standard method for algorithm description used by the Association for Computing Machinery (ACM) in textbooks and academic sources for more than thirty years.[2]
In the sense that the syntax of most modern languages is "Algol-like",[3] it was arguably more influential than three other high-level programming languages among which it was roughly contemporary: FORTRAN, Lisp, and COBOL.[4] It was designed to avoid some of the perceived problems with FORTRAN and eventually gave rise to many other programming languages, including PL/I, Simula, BCPL, B, Pascal, Ada, and C.
ALGOL introduced code blocks and the begin
...end
pairs for delimiting them. It was also the first language implementing nested function definitions with lexical scope. Moreover, it was the first programming language which gave detailed attention to formal language definition and through the Algol 60 Report introduced Backus–Naur form, a principal formal grammar notation for language design.
There were three major specifications, named after the years they were first published:
ALGOL 68 is substantially different from ALGOL 60 and was not well received,[according to whom?] so reference to "Algol" is generally understood to mean ALGOL 60 and its dialects.[citation needed]