Generating language-based environments
Generating language-based environments
Attribute grammars : definitions, analysis of dependencies, proof methods
Methods and tools for compiler construction
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Composition and evaluation of attribute coupled grammars
Acta Informatica
Attribute grammars: definitions, systems and bibliography
Attribute grammars: definitions, systems and bibliography
The synthesizer generator reference manual (3rd ed.)
The synthesizer generator reference manual (3rd ed.)
A VHDL compiler based on attribute grammar methodology
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Higher order attribute grammars
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Efficient evaluation of circular attribute grammars
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Computer Journal - Special issue on procedural programming
Regular right-part attribute grammars
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
On defining semantics by means of extended attribute grammars
Semantics-Directed Compiler Generation, Proceedings of a Workshop
LINGUIST-86: Yet another translator writing system based on attribute grammars
SIGPLAN '82 Proceedings of the 1982 SIGPLAN symposium on Compiler construction
A truly generative semantics-directed compiler generator
SIGPLAN '82 Proceedings of the 1982 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
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Attribute grammar paradigms—a high-level methodology in language implementation
ACM Computing Surveys (CSUR)
Proceedings of the 2002 ACM SIGPLAN workshop on Rule-based programming
Nordic Journal of Computing
Component-Based Programming for Higher-Order Attribute Grammars
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
A Mixin-Based, Semantics-Based Approach to Reusing Domain-Specific Programming Languages
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
Forwarding in Attribute Grammars for Modular Language Design
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Traversals of object structures: Specification and Efficient Implementation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Composable XML integration grammars
Proceedings of the thirteenth ACM international conference on Information and knowledge management
Building adaptable and reusable XML applications with model transformations
WWW '05 Proceedings of the 14th international conference on World Wide Web
Toward an engineering discipline for grammarware
ACM Transactions on Software Engineering and Methodology (TOSEM)
Journal of the ACM (JACM)
Implementing aspect-oriented programming constructs as modular language extensions
Science of Computer Programming
Adding Dimension Analysis to Java as a Composable Language Extension
Generative and Transformational Techniques in Software Engineering II
Silver: An extensible attribute grammar system
Science of Computer Programming
Incremental programming language development
Computer Languages, Systems and Structures
An attribute-grammar framework for specifying the accessibility in Java programs
Computer Languages, Systems and Structures
Attribute grammar-based language extensions for java
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Computer Standards & Interfaces
Hi-index | 0.00 |
This paper introduces Composable Attribute Grammars (CAGs), a formalism that extends classical attribute grammars to allow for the modular composition of translation specifications and of translators. CAGs bring to complex translator writing systems the same benefits of modularity found in modern programming languages, including comprehensibility, reusability, and incremental meta-compilation.A CAG is built from several smaller component AGs, each of which solves a particular subproblem, such as name analysis or register allocation. A component AG is based upon a simplified phrase-structure that reflects the properties of its subproblem rather than the phrase-structure of the source language. Different component phrase-structures for various subproblems are combined by mapping them into a phrase-structure for the source language. Both input and output attributes can be associated with the terminal symbols of a component AG. Output attributes enable the results of solving a subproblem to be distributed back to anywhere that originally contributed part of the subproblem, e.g. transparently distributing the results of global name analysis back to every symbolic reference in the source program.After introducing CAGs by way of an example, we provide a formal definition of CAGs and their semantics. We describe a subclass of CAGs and their semantics. We describe a subclass of CAGs, called separable CAGs, that have favorable implementation properties. We discuss the novel aspects of CAGs, compare them to other proposals for inserting modularity into attribute grammars, and relate our experience using CAGs in the Linguist translator-writing system.