A Design Method for Developing Homogeneous Metaprogramming Tools

Metaprogramming is drawing more attention with Domain Specific Languages(DSLs)' growing importance because internal DSLs can be easily written through metaprogramming. We present a design method for developing homogeneous metaprogramming tools for existing languages while previous related work focused on heterogeneous metaprogramming techniques. Our approach does not require programmers to implement a new parser and to learn a new syntax in metaprogramming. We expect that our approach will compensate for a lack of metaprogramming facilities of existing languages.