beginning a trend of using ALGOL notation in publication that continued for many years. Time line of implementations of ALGOL 58 variants ALGOL 58's influence on ALGOL 60 IAL introduced the three-level concept of reference, publication and hardware language, and the concept of "word delimiters" having a separate representation from freely chosen identifiers (hence, no reserved words). ALGOL 60 kept this three-level concept. The distinction between assignment (:= representing a left-facing arrow) and the equality relation = was introduced in IAL and kept in ALGOL 60. Both IAL and ALGOL 60 allow arrays with arbitrary lower and upper subscript bounds, and allow subscript bounds to be defined by integer expressions. Both IAL and ALGOL 60 allow nesting of procedure declarations and the corresponding identifier scopes. The IAL report described parameter substitution in much the same terms as the ALGOL 60 report, leaving open the possibility of call by name. It is unclear if this was realized at the time. IAL allows numeric statement labels, that ALGOL 60 kept. The possibility of including non-ALGOL code within a program was already hinted at, in the context of parameters to procedures. Both IAL and ALGOL 60 have a switch designator, unrelated, however, to the switch statement in C and other languages. In-line functions of the form f(x) := x / 2; were proposed in IAL but dropped in ALGOL 60. IAL procedure declarations provide separate declaration lists for input and output parameters, a procedure can return multiple values; this mechanism was replaced in ALGOL 60 with the value declaration. Variable declarations in IAL can be placed anywhere in the program and not necessarily at the beginning of a procedure. In contrast, the declarations within an ALGOL 60 block should occur before all execution statements. The for-statement has the form for i:=base(increment)limit, directly resembling the loop of Rutishauser's programming language Superplan, replacing =with :=, and replacing its German keyword Für with the direct English translation for; ALGOL 60 replaced the parentheses with the word delimiters step and until, such that the previous statement instead would be i:=base step increment until limit. The IAL if-statement does not have a then-clause or else-clause; it rather guards the succeeding statement. IAL provides an if either-statement that cleanly allows testing of multiple conditions. Both were replaced by ALGOL's if-then construct, with the introduction of the "dangling-else" ambiguity. IAL provides macro-substitution with the do-statement; this was dropped in ALGOL