TY - JOUR
T1 - Implementing aspect-oriented programming constructs as modular language extensions
AU - Van Wyk, Eric
PY - 2007/8/1
Y1 - 2007/8/1
N2 - Extensible programming languages and their compilers are experimental systems that use highly modular specifications of languages and language extensions in order to allow a variety of language features to be easily imported, by the programmer, into his or her programming environment. Our framework for extensible languages is based on higher-order attribute grammars extended with a mechanism called "forwarding" that mimics a simple rewriting process. Forwarding is designed such that no additional attribute definitions need to be written when combining a "host" language with language extensions (specified as attribute grammars), thus allowing for the modular composition of language features. This means that programmers can remain unaware of the underlying attribute grammars when building customized languages by importing language extensions. This paper shows how aspects and the aspect weaving process from aspect-oriented programming can be specified as a modular language extension and imported into an extensible host language. This paper also illustrates how an extensible compiler framework exposes its underlying semantic analyses and how this can provide a convenient arena in which researchers can explore new aspect-oriented language features.
AB - Extensible programming languages and their compilers are experimental systems that use highly modular specifications of languages and language extensions in order to allow a variety of language features to be easily imported, by the programmer, into his or her programming environment. Our framework for extensible languages is based on higher-order attribute grammars extended with a mechanism called "forwarding" that mimics a simple rewriting process. Forwarding is designed such that no additional attribute definitions need to be written when combining a "host" language with language extensions (specified as attribute grammars), thus allowing for the modular composition of language features. This means that programmers can remain unaware of the underlying attribute grammars when building customized languages by importing language extensions. This paper shows how aspects and the aspect weaving process from aspect-oriented programming can be specified as a modular language extension and imported into an extensible host language. This paper also illustrates how an extensible compiler framework exposes its underlying semantic analyses and how this can provide a convenient arena in which researchers can explore new aspect-oriented language features.
KW - Aspect-oriented programming
KW - Attribute grammars
KW - Extensible compilers
KW - Extensible languages
KW - Forwarding
UR - http://www.scopus.com/inward/record.url?scp=34547465232&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=34547465232&partnerID=8YFLogxK
U2 - 10.1016/j.scico.2005.06.006
DO - 10.1016/j.scico.2005.06.006
M3 - Article
AN - SCOPUS:34547465232
SN - 0167-6423
VL - 68
SP - 38
EP - 61
JO - Science of Computer Programming
JF - Science of Computer Programming
IS - 1 SPEC. ISS.
ER -