BoB: Best of Both in Compiler Construction Bottom-up Parsing with Top-down Semantic Evaluation

Wolfgang Dichler, Heinz Dobler

Research output: Contribution to journalArticle

Abstract

Compilers typically use either a top-down or a bottom-up strategy for parsing as well as semantic evaluation. Both strategies have advantages and disadvantages: bottom-up parsing supports LR(k) grammars but is limited to S- or LR-attribution while topdown parsing is restricted to LL(k) grammars but supports Lattribution. The goal of the work described herein was to combine the advantages of both strategies. The result is the compiler generator BoB, mainly a preprocessor for Flex and Bison (modern versions of Lex and Yacc). BoB processes compiler descriptions written in Cocol4BoB which supports L-attributed LALR(1) grammars and generates input files for Flex and Bison. Compilers generated by the BoB-Flex&Bison toolchain use bottom-up parsing and top-down semantic evaluation. So developers do not have to struggle with LL(1) conflicts and can use inherited as well as synthesized attributes in semantic actions. Another benefit of BoB is its simple yet powerful compiler description language.
Original languageEnglish
Pages (from-to)98-108
JournalAdvances in Computer Science : an International Journal
Volume3
Issue number3
Publication statusPublished - May 2014

Fingerprint

Dive into the research topics of 'BoB: Best of Both in Compiler Construction Bottom-up Parsing with Top-down Semantic Evaluation'. Together they form a unique fingerprint.

Cite this