Syntactic Analysis and Operator Precedence
Journal of the ACM (JACM)
Letters to the editor: syntax and generalization of ALGOL 60
Communications of the ACM
EULER: a generalization of ALGOL, and its formal definition: Part II
Communications of the ACM
Revised report on the algorithm language ALGOL 60
Communications of the ACM
Report on the algorithmic language ALGOL 60
Communications of the ACM
A note on the dangling else ALGOL 60
Communications of the ACM
Communications of the ACM
The remaining trouble spots in ALGOL 60
Communications of the ACM
ACM '67 Proceedings of the 1967 22nd national conference
Hi-index | 48.23 |
The dangling else problem consists of a class of potential ambiguities in ALGOL-like conditional statements whose basic form is “if B1 then if B2 then S1 else S2” where B1 and B2 are Boolean expressions and S1 and S2 are basic statements. The difficulty lies in whether to attach the else to the first if or to the second one. Existing solutions to the problem are either ambiguous or unnecessarily restrictive. Let S and S1 be statements. We define S to be closed if “S else S1” is not a statement, and to be open if “S else S1” is a statement. Thus an unconditional statement is a closed statement. Open and closed conditional statements are defined by syntax equations in such a way as to preserve openness and closure. In each case, an else must always be preceded by a closed statement. It is shown that the syntax equations are unambiguous, and that any change in the statement types required within the syntax equations would lead to either ambiguity or unnecessary restriction.