Title
A two-dimensional separation of concerns for compiler construction
Abstract
During language evolution, compiler construction is usually performed along two dimensions: defining new abstract syntax tree (AST) classes, or adding new operations. In order to facilitate such changes, two software design patterns (i.e., the inheritance pattern and the visitor pattern) are widely used to help modularize the language constructs. However, as each design pattern is only suitable for one dimension of extension, neither of these two patterns can independently fulfill the evolution needs during the compiler construction process. In this paper, we analyze two dimensions of concerns in compiler construction and develop a paradigm allowing compiler evolution across these two dimensions using both object-orientation and aspect-orientation. Moreover, this approach provides an ability to perform pattern transformation based on pluggable aspects. A simple implementation of an expression language and its possible extension is demonstrated using Java and AspectJ.
Year
DOI
Venue
2005
10.1145/1066677.1066985
SAC
Keywords
Field
DocType
compiler evolution,design pattern,two-dimensional separation,compiler construction process,compiler construction,evolution need,expression language,software design pattern,pattern transformation,visitor pattern,inheritance pattern,abstract syntax tree,object oriented,aspect oriented,separation of concerns,aspect oriented programming,separation of concern,compiling,two dimensions
Functional compiler,Programming language,Aspect-oriented programming,Computer science,Compiler correctness,Abstract syntax tree,Interpreter pattern,Compiler,Compiler construction,AspectJ
Conference
ISBN
Citations 
PageRank 
1-58113-964-0
4
0.54
References 
Authors
6
5
Name
Order
Citations
PageRank
Xiaoqing Wu1131.87
Suman Roychoudhury216916.58
Barrett R. Bryant348555.57
Jeff Gray4973116.57
Marjan Mernik53256154.23