Letter to the editor: defense of ALGOL 60

objec.t program. If necessary, a r r a y sizes can be varied b y re-compiling. 5.3 SwvrcH DECLAaATIOXS The elements of a switch list, m a y only be labels, 5.4 PROCEDURE ])ECLA RATIt)NS a. Procedures m a y not be of type b o o l e a n. b. No formal p a r a m e t e r m a y be of type b o o l e a n. c. If a procedure is to define a value, all of its parameters m u s t be called b y value. Such a procedure tnust not store q u a n t i t i e s it,to nonlocal variables. This important rule allows a translator to evaluate expressions in a n y o r d e r [4]. Now each translator m~y take a d v a n t a g e of specific hardware for object programs. d. The specification p a r t must always contain an entry for each p a r a m e t e r. This rule is necessary so that a procedure (tall m a y be differentiated from an a r r a y variaMe w i t h i n a procedure body, and fox" several other reasons. e. No p a r a m e t e r specified as an array m a y be called by value. This rule is necessary since an object, program cannot assign storage dynamically. f. Procedure declarations m u s t follow all type, switch, and a r r a y d e c l a r a t i o n s of the block in which they occur. Because of this ordering a translator can determine in a single pass what are the non-local paraineters of the procedure, except for sotne labels. g. The proeedure identifier nmy only occur inside the procedure body as the left p a r t of an assignment statement. Recursive calls on a procedure are not allowed. Dear Editor, Although I do not consider tile defenee of ALGOL 60 as one of my specific tasks, not being one of its authors, I should like to answer the criticisms of ALGOL 60 as expressed by Bruce Arden, 1961)). I fully agree with these three gentlemen, that the example quoted from an article by I)r. Peter Naur is not vmT …