Translation of attribute grammars into procedures
ACM Transactions on Programming Languages and Systems (TOPLAS)
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Efficient evaluation of circular attribute grammars
ACM Transactions on Programming Languages and Systems (TOPLAS)
Modern compiler implementation in Java
Modern compiler implementation in Java
Finding circular attributes in attribute grammars
Journal of the ACM (JACM)
JastAdd: an aspect-oriented compiler construction system
Science of Computer Programming - Special issue: Language descriptions, tools and applications (LDTA'01)
Program visualization using reference attributed grammars
Nordic Journal of Computing
An Optimal-time Recursive Evaluator for Attribute Grammars
Proceedings of the 6th Colloquium on International Symposium on Programming
On defining semantics by means of extended attribute grammars
Semantics-Directed Compiler Generation, Proceedings of a Workshop
Analyzing Direct Non-local Dependencies in Attribute Grammars
CC '98 Proceedings of the 7th International Conference on Compiler Construction
Descriptional composition of compiler components
Descriptional composition of compiler components
A general linear-time evaluator for attribute grammars
ACM SIGPLAN Notices
Journal of the ACM (JACM)
Interprocedural query extraction for transparent persistence
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Challenge proposal: verification of refactorings
Proceedings of the 3rd workshop on Programming languages meets program verification
Demand-driven evaluation of collection attributes
Automated Software Engineering
Decorated Attribute Grammars: Attribute Evaluation Meets Strategic Programming
CC '09 Proceedings of the 18th International Conference on Compiler Construction: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Formalising and Verifying Reference Attribute Grammars in Coq
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Declarative Intraprocedural Flow Analysis of Java Source Code
Electronic Notes in Theoretical Computer Science (ENTCS)
Abstract Interpretation of Functional Programs using an Attribute Grammar System
Electronic Notes in Theoretical Computer Science (ENTCS)
An introductory tutorial on JastAdd attribute grammars
GTTSE'09 Proceedings of the 3rd international summer school conference on Generative and transformational techniques in software engineering III
Stepwise evaluation of attribute grammars
Proceedings of the Eleventh Workshop on Language Descriptions, Tools and Applications
Implementing semantic feedback in a diagram editor
Proceedings of the Second Workshop on Graphical Modeling Language Development
Extensible intraprocedural flow analysis at the abstract syntax tree level
Science of Computer Programming
Hi-index | 0.00 |
This paper presents a combination of Reference Attributed Grammars (RAGs) and Circular Attribute Grammars (CAGs). While RAGs allow the direct and easy specification of nonlocally dependent information, CAGs allow iterative fixed-point computations to be expressed directly using recursive (circular) equations. We demonstrate how the combined formalism, Circular Reference Attributed Grammars (CRAGs), can take advantage of both these strengths, making it possible to express solutions to many problems in an easy way. We exemplify with the specification and computation of the nullable, first, and follow sets used in parser construction, a problem which is highly recursive and normally programmed by hand using an iterative algorithm. We also present a general demand-driven evaluation algorithm for CRAGs and some optimizations of it. The approach has been implemented and experimental results include computations on a series of grammars including that of Java 1.2. We also revisit some of the classical examples of CAGs and show how their solutions are facilitated by CRAGs.