Domain-specific languages and program generation with meta-AspectJ
ACM Trans. Softw. Eng. Methodol.(2008)
摘要
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.
更多查看译文
关键词
base java language,small domain-specific language extension,domain-specific language,aspectj code template,aspectj program,mature metaprogramming tool,structured metaprogramming tool,language extension,domain-specific languages,mature language implementation,arbitrary java code,metaprogramming tool designer,additional key words and phrases: meta-programming,language extensions,program generation,languages,domain specific language,aspect oriented,type inference,generic programming,design,metaprogramming,meta programming,domain specific languages
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络