Recursive evaluators for attribute grammars : an implementation
Methods and tools for compiler construction
Initial Algebra Semantics and Continuous Algebras
Journal of the ACM (JACM)
Semantic evaluation from left to right
Communications of the ACM
Algebraic Semantics
The Theory of Parsing, Translation, and Compiling
The Theory of Parsing, Translation, and Compiling
On Constructing Efficient Evaluators for Attribute Grammars
Proceedings of the Fifth Colloquium on Automata, Languages and Programming
On Storage Optimization for Automatically Generated Compilers
Proceedings of the 4th GI-Conference on Theoretical Computer Science
Perluette: A compilers producing system using abstract data types
Proceedings of the 5th Colloquium on International Symposium on Programming
An Optimal-time Recursive Evaluator for Attribute Grammars
Proceedings of the 6th Colloquium on International Symposium on Programming
Dynamic allocation of space for attribute instances in multi-pass evaluators of attribute grammars
SIGPLAN '79 Proceedings of the 1979 SIGPLAN symposium on Compiler construction
Automatic generation of efficient evaluators for attribute grammars
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
SDE 3 Proceedings of the third ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Attribute grammar paradigms—a high-level methodology in language implementation
ACM Computing Surveys (CSUR)
LISA: a tool for automatic language implementation
ACM SIGPLAN Notices
Conditional attribute grammars
ACM Transactions on Programming Languages and Systems (TOPLAS)
Parallel Evaluation of Attribute Grammars
IEEE Transactions on Parallel and Distributed Systems
GCSE '99 Proceedings of the First International Symposium on Generative and Component-Based Software Engineering
Hi-index | 0.00 |
This paper is devoted to the construction of recursive evaluators for strongly non-circular attribute grammars. This class of attribute grammars is very large and includes every practical example ; testing strong non-circularity can be done in polynomial time. To each synthesized attribute, a function is associated, which takes as parameters a derivation tree and the values of some inherited attributes, and returns the value of that attribute at the root of the tree. These functions are mutually recursive according to the structure of the full parse tree. This method implements a dynamic "evaluation by need", reducing the number of attributes computed to those necessary to get the "semantic value" of the full tree. A Lisp implementation allowing automatic efficient storage management is also presented, together with some applications. Our work is closely related to those of Kennedy and Warren, Saarinen and Katamaya, but our method is more efficient and has a better theoretical basis.