JUCS - Journal of Universal Computer Science 10(7): 872-891, doi: 10.3217/jucs-010-07-0872
MetaJ: An Extensible Environment for Metaprogramming in Java
expand article infoAdemir Alvarenga De Oliveira, Thiago Henrique Braga§, Marcelo de Almeida Maia§, Roberto S. Bigonha|
‡ Federal University of Minas Gerais, Brazil§ Federal University of Ouro Preto, Brazil| Universidade Federal de Minas Gerais, Brazil
Open Access
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
metaprogramming, metaprogramming tools, refactoring, program transformation, generative programming, Java, object-oriented frameworks