In Chap. 3, we have analysed backgrounds of meta-programming in general. In Chap. 4, we discussed homogeneous meta-programming, meaning the specification of some generalization aspects (e.g. computations) within one programming environment. Here, we focus on heterogeneous meta-programming, meaning the specification of some generalization aspects within heterogeneous programming environments. The term heterogeneous means that a meta-program (aka executable meta-specification) and a target program are written in different (at least two) languages and has to be interpreted in different environments. The first language is a meta-language (see Chap. 6). The second one is a domain (aka target or object) language. We call the paradigm structural heterogeneous meta-programming here. The name structural comes from structural programming because we apply its basic principles in our approach. Further, for simplicity reasons, where it is appropriate, we use the term meta-programming only omitting the words structural and heterogeneous.
[1]
Robertas Damasevicius,et al.
Two approaches for developing generic components in VHDL
,
2001,
DATE '01.
[2]
George J. Milne.
Formal Specification and Verification of Digital Systems
,
1994
.
[3]
Vytautas Štuikys,et al.
Metaprogramming techniques for designing embedded components for ambient intelligence
,
2003
.
[4]
Tony Mason,et al.
Lex & Yacc
,
1992
.
[5]
Eric Foster-Johnson,et al.
UNIX Programming Tools
,
1997
.
[6]
John K. Ousterhout,et al.
Scripting: Higher-Level Programming for the 21st Century
,
1998,
Computer.
[7]
Johannes Sametinger,et al.
Software Engineering with Reusable Components
,
1997,
Springer Berlin Heidelberg.