Higher order attribute grammars
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
An abstract data type for name analysis
Acta Informatica
Java Language Specification, Second Edition: The Java Series
Java Language Specification, Second Edition: The Java Series
JastAdd: an aspect-oriented compiler construction system
Science of Computer Programming - Special issue: Language descriptions, tools and applications (LDTA'01)
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
An Overview of Door Attribute Grammars
CC '94 Proceedings of the 5th International Conference on Compiler Construction
Forwarding in Attribute Grammars for Modular Language Design
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Modelling and Specifying Name Visibility and Binding Semantics
Modelling and Specifying Name Visibility and Binding Semantics
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
CC'05 Proceedings of the 14th international conference on Compiler Construction
The jastadd extensible java compiler
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
The JastAdd system — modular extensible compiler construction
Science of Computer Programming
Modularity first: a case for mixing AOP and attribute grammars
Proceedings of the 7th international conference on Aspect-oriented software development
Development of a Modelica Compiler Using JastAdd
Electronic Notes in Theoretical Computer Science (ENTCS)
Sound and extensible renaming for java
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Generating safe template languages
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Implementation of a Modelica compiler using JastAdd attribute grammars
Science of Computer Programming
A Pure Object-Oriented Embedding of Attribute Grammars
Electronic Notes in Theoretical Computer Science (ENTCS)
Formally specified type checkers for domain specific languages: experience report
Proceedings of the Tenth Workshop on Language Descriptions, Tools 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
Automated selective caching for reference attribute grammars
SLE'10 Proceedings of the Third international conference on Software language engineering
The spoofax name binding language
Proceedings of the 3rd annual conference on Systems, programming, and applications: software for humanity
Implementing semantic feedback in a diagram editor
Proceedings of the Second Workshop on Graphical Modeling Language Development
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 |
Name analysis for Java is challenging with its complex visibility rules involving nested scopes, inheritance, qualified access, and syntactic ambiguities. We show how Java name analysis including ambiguities related to names of variables, fields, and packages, can be implemented in a declarative and modular manner using the JastAdd compiler construction system. Declarative attributes and context-dependent rewrites enable the implementation to be modularized in the same way as the informal Java language specification. The individual rules in the specification transfer directly to equations in the implementation. Rewrites are used to define new concepts in terms of existing concepts in an iterative manner in the same way as the informal language specification. This enables equations to use both context-free and context-dependent concepts and leads to improved separation of concerns. A full Java 1.4 compiler has been implemented to validate the technique.