Computer Science and Information Systems 2012 Volume 9, Issue 3, Pages: 983-1017
https://doi.org/10.2298/CSIS111223022R
Full text ( 765 KB)
A systematic approach to the implementation of attribute grammars with conventional compiler construction tools
Rodríguez-Cerezo Daniel (Computer Science School, Complutense University of Madrid Calle Profesor José García Santesmases, Madrid, Spain)
Sarasa-Cabezuelo Antonio (Computer Science School, Complutense University of Madrid Calle Profesor José García Santesmases, Madrid, Spain)
Sierra José-Luis (Computer Science School, Complutense University of Madrid Calle Profesor José García Santesmases, Madrid, Spain)
This article describes structure-preserving coding patterns to code arbitrary
non-circular attribute grammars as syntax-directed translation schemes for
bottom-up and top-down parser generation tools. In these translation schemes,
semantic actions are written in terms of a small repertory of primitive
attribution operations. By providing alternative implementations for these
attribution operations, it is possible to plug in different semantic
evaluation strategies in a seamlessly way (e.g., a demand-driven strategy, or
a data-driven one). The pattern makes possible the direct implementation of
attribute grammar-based specifications with widely-used translation
schemedriven tools for the development of both bottom-up (e.g. YACC, BISON,
CUP) and top-down (e.g., JavaCC, ANTLR) language translators. As a
consequence, initial translation schemes can be successively refined to yield
final efficient implementations. Since these implementations still preserve
the ability to be extended with new features described at the attribute
grammar level, the advantages from the point of view of development and
maintenance become apparent.
Keywords: attribute grammars, parser generators, language processor development method, grammar ware