ALGOL 60
ALGOL
ALGOrithmic Language 1960.
A portable language for scientific computations. ALGOL 60 was small and elegant. It was block-structured, nested, recursive and free form. It was also the first language to be described in BNF.
There were three lexical representations: hardware, reference, and publication. The only structured data types were arrays, but they were permitted to have lower bounds and could be dynamic. It also had conditional expressions; it introduced :=; if-then-else; very general "for" loops; switch declaration (an array of statement labels generalising Fortran's computed goto). Parameters were call-by-name and call-by-value. It had static local "own" variables. It lacked user-defined types, character manipulation and standard I/O.
See also EULER, ALGOL 58, ALGOL 68, Foogol.
["Report on the Algorithmic Language ALGOL 60", Peter Naur ed., CACM 3(5):299-314, May 1960].