Bracketing programme constructs
Amused by the Levity of {3} and annoyed by th e attitude of {2}, I should like to make a seriou s contribution to the do. .sod controversy. In the realm of expressions of the traditional. arithmetic kind, the use of brackets and parentheses L clarify and disambiguate generally goes unchallenged. Certainly for expressions of Limited complexity th e method usually works for the human reader : whilst fo r a machine free of problems of the psychology o perception, greater depths of nesting present n o theoretical difficulty. As Lisp and Algol-68 have shewn, the same metho d may be applied to bracketing other programm e constructs : yet the majority of human readers tend t) find this Lacking in clarity. Lisp provides n<' alternative, and has accordingly been much abused an d reviled. Algol-68 permits the use of symmetric keywor d pairs, such as comment. . .tnemmoc : probably the on e example of a symmetry which is not beautiful. The origin of the controversy lies in th e realisation that the method pioneered by Algol-• 0 an y adopted by many other Languages since, namely the us e of begin. . .end pairs, suffers from the fact that ont o END looks pretty much the same as any other : and whe n a number of END''s occur in direct succession a commonly observed phenomenon-it is difficult for a human to match BEGIN's with ENO's and see how th e programme is really structured. Even the technique o f "prettyprint ing" does not solve the proolem : for whe n a compiler complains "Missing ENO" the programmer stil t has to determine which construct has been incorrectl y terminated .