johnl@ima.UUCP (12/10/86)
At the end of article <284@ima.UUCP> [by Ken Yap <ken@rochester.arpa>] our moderator suggests: >Most recursive descent compilers are written by hand, ... I'd rather let >yacc do the work for me. Yacc can parse anything with enough help ... Top-down, of course, does not necessarily mean recursive descent. There exist very good generators for table-driven LL(1) [actually SLL(1)] parsers. Most (though not all) modern languages have usable LL(1) grammars, and an LL(1) parser has the following very nice properties: - Very small tables (typically half the size of SLR tables for the same language) - Very clean semantics -- easily-understood algorithm and data structures - Ability to embed semantic routines at arbitrary locations within the right-hand side of a production - Extremely simple algorithm (Fischer-Milton-Quiring) for high-quality, fully automatic syntactic error correction Michael L. Scott University of Rochester (716) 275-7745 scott@rochester.arpa {decvax, allegra, seismo, cmcl2}!rochester!scott scott%rochester@CSNET-RELAY -- Send compilers mail to ima!compilers or, in a pinch to Levine@YALE.EDU Plausible paths are { ihnp4 | decvax | cbosgd | harvard | yale | bbncca}!ima Please send responses to the originator of the message -- I cannot forward mail accidentally sent back to compilers. Meta-mail to ima!compilers-request