Computer Dictionary/ALGOL 60
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.
["Report on the Algorithmic Language ALGOL 60", Peter Naur ed., CACM 3(5):299-314, May 1960].