MetaJ: An Extensible Environment for Metaprogramming in Java
Ademir Alvarenga de Oliveira (Federal University of Minas Gerais, Brazil)
Thiago Henrique Braga (Federal University of Ouro Preto, Brazil)
Marcelo de Almeida Maia (Federal University of Ouro Preto, Brazil)
Roberto da Silva Bigonha (Federal University of Minas Gerais, Brazil)
Abstract: MetaJ is a programming environment that supports metaprogramming in the Java language. The environment is designed to allow extensions via plug-ins which permit the user to manipulate programs written in different languages. This facilities concern only syntactic aspects. Semantics aspects are language-dependent and are not addressed here, but could be tackled with other tools, which could even be layered on the top of MetaJ. Accessing patterns by example inside ordinary Java programs is a major feature of MetaJ programming. This paper presents a conceptual description of the environment, implementation details and three applications on analysis, restructuring and generation of programs.
Keywords: Java, generative programming, metaprogramming, metaprogramming tools, object-oriented frameworks, program transformation, refactoring
Categories: D.1.5, D.2.6, D.3.3