Abstract
Programming languages are typically described in BNF or some extension of BNF, and the process of converting these descriptions into parsers is performed by parser generators. Some of the parser generators that convert LL grammars into parsers construct them to use recursive descent that gives them context during execution. The context is provided by the execution stack as the parser descends into the grammar and this is what allows the full expressiveness of LL grammars. Table driven parsers can be generated instead but restrictions are placed on the LL grammars that can be accepted. The benefit of tables is that they facilitate a separation of syntax analysis and semantic code written by a language designer. They are also faster and they simplify language implementation and modification. This paper proposes the possibility of a hybrid system that makes decisions using tables but once decisions are made recursive descent is employed to maintain context. The benefits of each system are maintained, and the drawbacks are mitigated. Also discussed are the modifications made to an existing parser generator, oops (version 2), so that it accepts LL(k) grammars and builds parsers using this system as proof-of-concept.
Library of Congress Subject Headings
Parsing (Computer grammar)
Publication Date
12-2007
Document Type
Thesis
Student Type
Graduate
Degree Name
Computer Science (MS)
Department, Program, or Center
Computer Science (GCCIS)
Advisor
James Heliotis
Advisor/Committee Member
Axel Schreiner
Advisor/Committee Member
Fereydoun Kazemian
Recommended Citation
Leiserson, William M., "Table driven prediction for recursive descent LL(k) parsers" (2007). Thesis. Rochester Institute of Technology. Accessed from
https://repository.rit.edu/theses/8464
Campus
RIT – Main Campus
Comments
Physical copy available from RIT's Wallace Library at QA267.3 .L34 2007