Pattern-based tree attribution
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Modularity and reusability in attribute grammars
Acta Informatica
Attribute grammar paradigms—a high-level methodology in language implementation
ACM Computing Surveys (CSUR)
Building program optimizers with rewriting strategies
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Software—Practice & Experience
Python Reference Manual: February 19, 1999, Release 1.5.2
Python Reference Manual: February 19, 1999, Release 1.5.2
Higher-Order and Symbolic Computation
JastAdd: an aspect-oriented compiler construction system
Science of Computer Programming - Special issue: Language descriptions, tools and applications (LDTA'01)
Strategic programming meets adaptive programming
Proceedings of the 2nd international conference on Aspect-oriented software development
Meta-programming with Concrete Object Syntax
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
Forwarding in Attribute Grammars for Modular Language Design
CC '02 Proceedings of the 11th 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)
Adding domain-specific and general purpose language features to Java with the Java language extender
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Circular reference attributed grammars — their evaluation and applications
Science of Computer Programming
Extending Attribute Grammars with Collection Attributes--Evaluation and Applications
SCAM '07 Proceedings of the Seventh IEEE International Working Conference on Source Code Analysis and Manipulation
Silver: an Extensible Attribute Grammar System
Electronic Notes in Theoretical Computer Science (ENTCS)
Stratego/XT 0.17. A language and toolset for program transformation
Science of Computer Programming
Domain-Specific Languages for Composable Editor Plugins
Electronic Notes in Theoretical Computer Science (ENTCS)
Iterative type inference with attribute grammars
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
The spoofax language workbench: rules for declarative specification of languages and IDEs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
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
Lightweight language processing in Kiama
GTTSE'09 Proceedings of the 3rd international summer school conference on Generative and transformational techniques in software engineering III
Automated selective caching for reference attribute grammars
SLE'10 Proceedings of the Third international conference on Software language engineering
Lazy combinators for executable specifications of general attribute grammars
PADL'10 Proceedings of the 12th international conference on Practical Aspects of Declarative Languages
Natural and Flexible Error Recovery for Generated Modular Language Environments
ACM Transactions on Programming Languages and Systems (TOPLAS)
A pure embedding of attribute grammars
Science of Computer Programming
Programming errors in traversal programs over structured data
Science of Computer Programming
Hi-index | 0.00 |
Attribute grammars are a powerful specification formalism for tree-based computation, particularly for software language processing. Various extensions have been proposed to abstract over common patterns in attribute grammar specifications. These include various forms of copy rules to support non-local dependencies, collection attributes, and expressing dependencies that are evaluated to a fixed point. Rather than implementing extensions natively in an attribute evaluator, we propose attribute decorators that describe an abstract evaluation mechanism for attributes, making it possible to provide such extensions as part of a library of decorators. Inspired by strategic programming, decorators are specified using generic traversal operators. To demonstrate their effectiveness, we describe how to employ decorators in name, type, and flow analysis.