ALGOL60 Manual Update
Algol (E) Compiler [Nov. 1978] The Algol (E) Compiler is not designed to allow variables to be used before declaration. This restriction is implied, rather than clearly stated in the language manual and this will be clarified in the next issue. All identifiers (other than labels which do not require declaration) must be declared before use apart from the following specific exceptions: 1) Procedures may be called before the body is given to permit cross recursion. 2) Switches may refer to switch elements in an undeclared switch list - this allows two switches to reference each other. e.g. %SWITCH SW:=L1,L2,L3,S[J]; %SWITCH S:= SW[I],L5,L6; Any programmer who insists on putting his declarations at the end of blocks should use PL/1, the only language which encourages such behaviour.