It is not possible, by testing symbol pairs only [2], to determine whether a given symbol string is consistent with the formation rules of ALGOL [1]. For example, the formula l1: l2: x[i := 5j + 3.14.159; violates four distinct formation rules of ALGOL, yet each pair of adjacent characters may appear in permissible formulae. The algorithm described here will determine, with minor restrictions, whether a particular symbol string is a permissible ALGOL assignment statement. I believe that the same technique may be extended to determine whether a given symbol string is a permissible ALGOL program or not, where a program is defined as a sequence of permissible statements separated by semicolons. The algorithm scans the formula from left to right, replacing certain character pairs by single characters. If under the allowable transformations the symbol string may be reduced to the single character &Sgr;, it is a well-formed formula in ALGOL; otherwise it violates the formation rules.
The Latest from CACM
Shape the Future of Computing
ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.
Get InvolvedCommunications of the ACM (CACM) is now a fully Open Access publication.
By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.
Learn More
Join the Discussion (0)
Become a Member or Sign In to Post a Comment