ACM Home Page
Please provide us with feedback. Feedback
Domain-specific languages and program generation with meta-AspectJ
Full text PdfPdf (199 KB)
Source
ACM Transactions on Software Engineering and Methodology (TOSEM) archive
Volume 18 ,  Issue 2  (November 2008) table of contents
Article No. 6  
Year of Publication: 2008
ISSN:1049-331X
Authors
Shan Shan Huang  Georgia Institute of Technology, Atlanta, GA
David Zook  Georgia Institute of Technology, Atlanta, GA
Yannis Smaragdakis  University of Oregon
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 16,   Downloads (12 Months): 369,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1416563.1416566
What is a DOI?

ABSTRACT

Meta-AspectJ (MAJ) is a language for generating AspectJ programs using code templates. MAJ itself is an extension of Java, so users can interleave arbitrary Java code with AspectJ code templates. MAJ is a structured metaprogramming tool: a well-typed generator implies a syntactically correct generated program. MAJ promotes a methodology that combines aspect-oriented and generative programming. A valuable application is in implementing small domain-specific language extensions as generators using unobtrusive annotations for syntax extension and AspectJ as a back-end. The advantages of this approach are twofold. First, the generator integrates into an existing software application much as a regular API or library, instead of as a language extension. 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.

In addition to its practical value, MAJ offers valuable insights to metaprogramming tool designers. It is a mature metaprogramming tool for AspectJ (and, by extension, Java): a lot of emphasis has been placed on context-sensitive parsing and error reporting. As a result, MAJ minimizes the number of metaprogramming (quote/unquote) operators and uses type inference to reduce the need to remember type names for syntactic entities.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
2
 
3
 
4
5
 
6
Bravenboer, M., Vermaas, R., Vinju, J., and Visser, E. 2005. Generalized type-based disambiguation of meta programs with concrete object syntax. In Generative Programming and Component Engineering (GPCE) Conference, R. Glück and M. Lowry, Eds. Lecture Notes in Computer Science, vol. 3676. Springer, Berlin, Germany, 157--172.
 
7
8
 
9
10
 
11
12
 
13
14
 
15
 
16
17
 
18
Huang, S. S., Zook, D., and Smaragdakis, Y. 2005. Statically safe program generation with SafeGen. In Proceedings of the Generative Programming and Component Engineering Conference. 309--326.
19
20
 
21
Lohmann, D., Blaschke, G., and Spinczyk, O. 2004. Generic advice: On the combination of AOP with generative programming in AspectC++. In Generative Programming and Component Engineering (GPCE) Conference, G. Karsai and E. Visser, Eds. Lecture Notes in Computer Science, vol. 3286. Springer Verlag, Berlin, Germany, 55--74.
 
22
 
23
24
25
26
 
27
Smaragdakis, Y. 2004. A personal outlook on generator research. In Domain-Specific Program Generation, C. Lengauer, D. Batory, C. Consel, and M. Odersky, Eds. Lecture Notes in Computer Science, vol. 3016, Springer-Verlag, Berlin, Germany.
 
28
29
30
 
31
Tilevich, E., Urbanski, S., Smaragdakis, Y., and Fleury, M. 2003. Aspectizing server-side distribution. In Proceedings of the Conference on Automated Software Engineering Conference. IEEE Computer Society Press, Los Alamitos, CA.
 
32
 
33
Volder, K. D. 1998. Type-oriented logic meta programming. Ph.D. dissertation. Vrije Universiteit Brussel, Brussels, Belgium.
34
 
35
Zook, D., Huang, S. S., and Smaragdakis, Y. 2004. Generating AspectJ programs with meta-AspectJ. In Generative Programming and Component Engineering (GPCE) Conference. Springer-Verlag, Berlin, Germany, 1--18.

Collaborative Colleagues:
Shan Shan Huang: colleagues
David Zook: colleagues
Yannis Smaragdakis: colleagues