TAXONOMY OF THE FUNDAMENTAL CONCEPTS OF METAPROGRAMMING

Authors

  • Robertas Damaševičius Kaunas University of Technology
  • Vytautas Štuikys Kaunas University of Technology

Abstract

Although widely used in software engineering, metaprogramming is often misunderstood. The researchers often disagree what concepts characterize metaprogramming. The concepts of metaprogramming are often used without acknowledging the usage of metaprogramming itself. We overview the examples and definitions of metaprogramming in computer science, identify, describe and discuss the fundamental concepts of metaprogramming (code generation, transformation, reflection, generalization, metaprogram, metadata, level of abstraction and separation of concerns). We analyze their relationship and present taxonomy, based on a study of sources on metaprogramming.

Downloads

Published

2008-06-13

Issue

Section

Articles