Refactoring of Heterogeneous Meta-Program into k-stage Meta-Program
Keywords: refactoring, meta-program, meta-parameter, meta-programming, multi-stage heterogeneous meta-program
AbstractThe paper presents: (1) a graph-based theoretical background to refactoring a correct heterogeneous meta-program into its k-stage representation; (2) the refactoring method; (3) refactoring experiments with tasks taken from different domains, including real world tasks, such as meta-programs to teach Computer Science (CS) topics using educational robots. Refactoring meta-programs by staging enables to flexibly adapt them to the different context of use. To do that (semi-)automatically, we use the contextual information as a priority relation (e.g. highest, lowest, etc.) introduced within the meta-program specification. We implement the refactoring method using the so-called activating/de-activating label (index) to change the role of meta-language constructs at different stages. The contribution of the paper is: (1) applying the known (in programming) staging concept to heterogeneous meta-programming; (2) a theoretical background, properties and the method to solve tasks of this kind of refactoring.
Copyright terms are indicated in the Republic of Lithuania Law on Copyright and Related Rights, Articles 4-37.