Advanced

JastAdd - an aspect-oriented compiler construction system

Hedin, Görel LU and Magnusson, Eva LU (2003) In Science of Computer Programming 47(1). p.37-58
Abstract
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... (More)
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. (C) 2002 Elsevier Science B.V. All rights reserved. (Less)
Please use this url to cite or link to this publication:
author
organization
publishing date
type
Contribution to journal
publication status
published
subject
keywords
visitor pattern, Java, aspect-oriented programming, construction, reference attributed grammars, compiler
in
Science of Computer Programming
volume
47
issue
1
pages
37 - 58
publisher
Elsevier
external identifiers
  • wos:000180904200003
  • scopus:0037374916
ISSN
0167-6423
DOI
10.1016/S0167-6423(02)00109-0
language
English
LU publication?
yes
id
c5787994-0dec-44b9-9177-db3ef4dd6ea9 (old id 318377)
date added to LUP
2007-09-13 07:56:49
date last changed
2018-09-30 04:10:07
@article{c5787994-0dec-44b9-9177-db3ef4dd6ea9,
  abstract     = {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. (C) 2002 Elsevier Science B.V. All rights reserved.},
  author       = {Hedin, Görel and Magnusson, Eva},
  issn         = {0167-6423},
  keyword      = {visitor pattern,Java,aspect-oriented programming,construction,reference attributed grammars,compiler},
  language     = {eng},
  number       = {1},
  pages        = {37--58},
  publisher    = {Elsevier},
  series       = {Science of Computer Programming},
  title        = {JastAdd - an aspect-oriented compiler construction system},
  url          = {http://dx.doi.org/10.1016/S0167-6423(02)00109-0},
  volume       = {47},
  year         = {2003},
}