User-defined types and procedural data structures as complementary approaches to data abstraction
Theoretical aspects of object-oriented programming
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
The Java Language Specification
The Java Language Specification
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Extracting library-based Java applications
Communications of the ACM - Program compaction
The JastAdd system — modular extensible compiler construction
Science of Computer Programming
Hi-index | 0.00 |
Rewritable Reference Attributed Grammars (ReRAGs) is a recently developed compiler-compiler technology based on object-orientation, aspect-orientation, reference attributed grammars, and conditional rewrites. In this paper we describe our experiences from using ReRAGs for implementing Java compilers. We illustrate how the usage of ReRAGs renders a rather compact, yet easy-to-understand and modular compiler specification where code analysis, restructurings, and optimizations can be conveniently described as aspects performing computations and transformations on the abstract syntax tree. Currently, we have implemented two compilers: one that generates C code with real-time support, and one that generates Java bytecode. Both share the same front end.