Meta-Programming and Model-Driven Meta-Program Development by Robertas Damasevicius & Vytautas Stuikys