JastAdd - an aspect-oriented compiler construction system
(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:
https://lup.lub.lu.se/record/318377
- author
- Hedin, Görel LU and Magnusson, Eva LU
- organization
- publishing date
- 2003
- 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
- 2016-04-01 16:18:14
- date last changed
- 2022-04-07 07:14:39
@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}}, keywords = {{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}}, doi = {{10.1016/S0167-6423(02)00109-0}}, volume = {{47}}, year = {{2003}}, }