An object-oriented metaprogramming system
Proceedings of the Twenty-First Annual Hawaii International Conference on Software Track
Subject-oriented programming: a critique of pure objects
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Pattern languages of program design 3
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
Interactive language development for embedded systems
Nordic Journal of Computing
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Aspect-Oriented Programming in BETA Using the Fragment System
Proceedings of the Workshop on Object-Oriented Technology
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
SableCC, an Object-Oriented Compiler Framework
TOOLS '98 Proceedings of the Technology of Object-Oriented Languages and Systems
Descriptional composition of compiler components
Descriptional composition of compiler components
A general linear-time evaluator for attribute grammars
ACM SIGPLAN Notices
A technique for constructing aspect weavers using a program transformation engine
Proceedings of the 3rd international conference on Aspect-oriented software development
Weaving a debugging aspect into domain-specific language grammars
Proceedings of the 2005 ACM symposium on Applied computing
Separation of concerns in compiler development using aspect-orientation
Proceedings of the 2006 ACM symposium on Applied computing
Circular reference attributed grammars — their evaluation and applications
Science of Computer Programming
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
Development of a Modelica Compiler Using JastAdd
Electronic Notes in Theoretical Computer Science (ENTCS)
Modularizing invasive aspect languages
Proceedings of the 2008 AOSD workshop on Domain-specific aspect languages
The Structure of the Essential Haskell Compiler, or Coping with Compiler Complexity
Implementation and Application of Functional Languages
Processing heterogeneous abstract syntax trees with the mutable class pattern
Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Improving type error messages for generic java
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
A SIP-Based Programming Framework for Advanced Telephony Applications
Principles, Systems and Applications of IP Telecommunications. Services and Security for Next Generation Networks
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
Extending AspectJ for separating regions
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
Corrective hints for type incorrect generic Java programs
Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation
An architecture for composing embedded domain-specific languages
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
The aspect-oriented design of the PUMA C/C++ parser framework
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Polyglot: an extensible compiler framework for Java
CC'03 Proceedings of the 12th international conference on Compiler construction
JGroovy - an extensible Java programming language with Groovy
ICACT'10 Proceedings of the 12th international conference on Advanced communication technology
A Pure Object-Oriented Embedding of Attribute Grammars
Electronic Notes in Theoretical Computer Science (ENTCS)
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
DSL evolution through composition
Proceedings of the 7th Workshop on Reflection, AOP and Meta-Data for Software Evolution
Event-specific software composition in context-oriented programming
SC'10 Proceedings of the 9th international conference on Software composition
Layered method dispatch with INVOKEDYNAMIC: an implementation study
Proceedings of the 2nd International Workshop on Context-Oriented Programming
Abstract syntax driven language development: defining language semantics through aspects
Proceedings of the International Workshop on Formalization of Modeling Languages
EASY meta-programming with Rascal
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
PUMA: an aspect-oriented code analysis and manipulation framework for C and C++
Transactions on aspect-oriented software development VIII
A role-based approach towards modular language engineering
SLE'09 Proceedings of the Second international conference on Software Language Engineering
Modular name analysis for java using jastadd
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
A comparison of two metacompilation approaches to implementing a complex domain-specific language
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Incremental programming language development
Computer Languages, Systems and Structures
Improving type error messages for generic Java
Higher-Order and Symbolic Computation
Domain-Specific languages in few steps: the neverlang approach
SC'12 Proceedings of the 11th international conference on Software Composition
Non-null references by default in java: alleviating the nullity annotation burden
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
UUAG meets AspectAG: how to make attribute grammars first-class
Proceedings of the Twelfth Workshop on Language Descriptions, Tools, and Applications
Implementing semantic feedback in a diagram editor
Proceedings of the Second Workshop on Graphical Modeling Language Development
Extending the JastAdd extensible Java compiler to Java 7
Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools
A pure embedding of attribute grammars
Science of Computer Programming
Runtime support for type-safe and context-based behavior adaptation
Frontiers of Computer Science: Selected Publications from Chinese Universities
Hi-index | 0.00 |
We describe JastAdd, a Java-based system for compiler construction. JastAdd is centered around an object-oriented representation of the abstract syntax tree where reference variables can be used to link together different parts of the tree. JastAdd supports the combination of declarative techniques (using Reference Attributed Grammars) and imperative techniques (using ordinary Java code) in implementing the compiler. The behavior can be modularized into different aspects, e.g. name analysis, type checking, code generation, etc., that are woven together into classes using aspect-oriented programming techniques, providing a safer and more powerful alternative to the Visitor pattern. The JastAdd system is independent of the underlying parsing technology and supports any noncircular dependencies between computations, thereby allowing general multi-pass compilation. The attribute evaluator (optimal recursive evaluation) is implemented very conveniently using Java classes, interfaces, and virtual methods.