WG211/M3Smaragdakis
Yannis Smaragdakis
Title:
Easy Non-Intrusive Java Language Extensions with MAJ
Speaker: Yannis Smaragdakis
Slides: yannis-smaragdakis-ifip06.pdf
Abstract:
Domain-specific languages hold the potential of automating the
software development process. Nevertheless, the adoption of a
domain-specific language is hindered by the difficulty of
transitioning to different language syntax and employing a separate
translator in the software build process. We present a methodology
that simplifies the development and deployment of small language
extensions, in the context of Java. The main language design principle
is that of language extension through unobtrusive annotations. The
main language implementation idea is to express the language as a
generator of customized AspectJ aspects, using our Meta-AspectJ tool.
The advantages of the approach are twofold. First, the tool
integrates into an existing software application much as a regular API
or library, instead of as a language extension. This means that the
programmer can remove the language extension at any point and choose
to implement the required functionality by hand without needing to
rewrite the client code. Second, a mature language implementation is
easy to achieve with little effort since AspectJ takes care of the
low-level issues of interfacing with the base Java language.