Significant Language Features
ALGOL was the first second-generation programming language and its characteristics are typical of the entire generation. First consider the data structures, which are very close to first generation structures. In ALGOL 60 the block structure was introduced: the ability to create blocks of statements for the scope of variables and the extent of influence of control statements. Along with that, two different means of passing parameters to subprograms; call by value and call by name. Structured control statements: if - then - else and the use of a general condition for iteration control were also features, as was the concept of recursion: the ability of a procedure to call itself.
One of the greatest impacts ALGOL 60 had was a result of its description as found in Naur (1963). A major contribution of this report was the introduction of BNF notation for defining the syntax of the language. Overall, ALGOL is considered to be perhaps the most orthogonal programming language, meaning it has a relatively small number of basic constructs and a set of rules for combining those constructs. Every construct has a type associated with it and there are no restrictions on those types. In addition, most constructs produce values. Several of ALGOL’s other characteristics are listed below:
- Dynamic Arrays - one for which the subscript range is specified by variables so that the size of the array is set at the time storage is allocated.
- Reserved Words - the symbols used for keywords are not allowed to be used as identifiers by the programmer.
- User defined data types - allow the user to design data abstractions that fit particular problems very closely.