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
Declarative Intraprocedural Flow Analysis of Java Source Code
Electronic Notes in Theoretical Computer Science (ENTCS)
A Pure Object-Oriented Embedding of Attribute Grammars
Electronic Notes in Theoretical Computer Science (ENTCS)
Lightweight language processing in Kiama
GTTSE'09 Proceedings of the 3rd international summer school conference on Generative and transformational techniques in software engineering III
Visitor-based Attribute Grammars with Side Effect
Electronic Notes in Theoretical Computer Science (ENTCS)
A pure embedding of attribute grammars
Science of Computer Programming
Extensible intraprocedural flow analysis at the abstract syntax tree level
Science of Computer Programming
Hi-index | 0.00 |
Collection attributes, as defined by Boyland, can be used as a mechanism for concisely specifying cross-referencelike properties such as callee sets, subclass sets, and sets of variable uses. We have implemented collection attributes in our declarative meta programming system JastAdd, and used them for a variety of applications including devirtualization analysis, metrics, and flow analysis. We propose a series of evaluation algorithms for collection attributes, and compare their performance and applicability. The key design criteria for our algorithms are 1) that they work well with demand evaluation, i.e., defined properties are computed only if they are actually needed for a particular source code analysis problem and a particular source program, and 2) that they work in the presence of circular (fixed-point) definitions that are common for many source code analysis problems, e.g., flow analysis. We show that the best algorithms work well on large practical problems, including the analysis of large Java programs.