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.
[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.
[citation needed] ALGOL was developed jointly by a committee of European and American computer scientists in a meeting in 1958 at the Swiss Federal Institute of Technology in Zurich (cf.
[10] ALGOL 60 did however become the standard for the publication of algorithms and had a profound effect on future language development.
It was revised and expanded by Peter Naur for ALGOL 60, and at Donald Knuth's suggestion renamed Backus–Naur form.
"[13] A significant contribution of the ALGOL 58 Report was to provide standard terms for programming concepts: statement, declaration, type, label, primary, block, and others.
Tony Hoare remarked: "Here is a language so far ahead of its time that it was not only an improvement on its predecessors but also on nearly all its successors.
"[14] The Scheme programming language, a variant of Lisp that adopted the block structure and lexical scope of ALGOL, also adopted the wording "Revised Report on the Algorithmic Language Scheme" for its standards documents in homage to ALGOL.
ALGOL 60 allowed for two evaluation strategies for parameter passing: the common call-by-value, and call-by-name.
Donald Knuth devised the "man or boy test" to separate compilers that correctly implemented "recursion and non-local references."
ALGOL 68 was defined using a two-level grammar formalism invented by Adriaan van Wijngaarden and which bears his name.
In ALGOL 68's case tokens with the bold typeface are reserved words, types (modes) or operators.
Note that its output would end up at the system console ('SPO'): An alternative example, using Elliott Algol I/O is as follows.
The ICT 1900 series Algol I/O version allowed input from paper tape or punched card.
[18] ALGOL 68 code was published with reserved words typically in lowercase, but bolded or underlined.
The report was translated into Russian, German, French, and Bulgarian, and allowed programming in languages with larger character sets, e.g., Cyrillic alphabet of the Soviet BESM-4.