<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.0 20120330//EN" "JATS-journalpublishing1.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article"><front><journal-meta><journal-id journal-id-type="publisher-id">INFORMATICA</journal-id><journal-title-group><journal-title>Informatica</journal-title></journal-title-group><issn pub-type="epub">0868-4952</issn><issn pub-type="ppub">0868-4952</issn><publisher><publisher-name>VU</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="publisher-id">inf24209</article-id><article-id pub-id-type="doi">10.15388/Informatica.2013.398</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research article</subject></subj-group></article-categories><title-group><article-title>Equivalent Transformations of Heterogeneous Meta-Programs</article-title></title-group><contrib-group><contrib contrib-type="Author"><name><surname>Štuikys</surname><given-names>Vytautas</given-names></name><email xlink:href="mailto:vytautas.stuikys@ktu.lt">vytautas.stuikys@ktu.lt</email><xref ref-type="aff" rid="j_INFORMATICA_aff_000"/></contrib><contrib contrib-type="Author"><name><surname>Damaševičius</surname><given-names>Robertas</given-names></name><email xlink:href="mailto:robertas.damasevicius@ktu.lt">robertas.damasevicius@ktu.lt</email><xref ref-type="aff" rid="j_INFORMATICA_aff_000"/></contrib><aff id="j_INFORMATICA_aff_000">Software Engineering Department, Kaunas University of Technology, Studentų 50-415, LT-51368, Kaunas, Lithuania</aff></contrib-group><pub-date pub-type="epub"><day>01</day><month>01</month><year>2013</year></pub-date><volume>24</volume><issue>2</issue><fpage>315</fpage><lpage>337</lpage><history><date date-type="received"><day>01</day><month>03</month><year>2012</year></date><date date-type="accepted"><day>01</day><month>12</month><year>2012</year></date></history><abstract><p>We consider a generalization of heterogeneous meta-programs by (1) introducing an extra level of abstraction within the meta-program structure, and (2) meta-program transformations. We define basic terms, formalize transformation tasks, consider properties of meta-program transformations and rules to manage complexity through the following transformation processes: (1) reverse transformation, when a correct one-stage meta-program M<sup>1</sup> is transformed into the equivalent two-stage meta-meta-program M<sup>2</sup>; (2) two-stage forward transformations, when M<sup>2</sup> is transformed into a set of meta-programs, and each meta-program is transformed into a set of target programs. The results are as follows: (a) formalization of the transformation processes within the heterogeneous meta-programming paradigm; (b) introduction and approval of equivalent transformations of meta-programs into meta-meta-programs and vice versa; (c) introduction of metrics to evaluate complexity of meta-specifications. The results are approved by examples, theoretical reasoning and experiments.</p></abstract><kwd-group><label>Keywords</label><kwd>meta-programming</kwd><kwd>generalization</kwd><kwd>transformation</kwd><kwd>meta-program complexity</kwd></kwd-group></article-meta></front></article>