Metagene, a C++ meta-program generation tool

From LRDE

The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Abstract

The C++ language offers a two layer evaluation model. Thus, it is possible to evaluate a program in two steps: the so-called static and dynamic evaluations. Static evaluation is used for reducing the amount of work done at execution-time. Programs executed statically (called metaprograms) are written in C++ through an intensive use of template classes. Due to the complexity of these structures, writing, debugging and maintaining C++ meta-programs is a difficult task. Metagene is a program transformation tool which simplifies the development of such programs. Due to the similarities between C++ meta-programming and functional programming, the input language of Metagene is an ML language. Given a functional input program, Metagene outputs the corresponding C++ meta-program expressed using template classes.

Documents

Bibtex (lrde.bib)

@InProceedings{	  maes.04.mpool,
  author	= {Francis Maes},
  title		= {Metagene, a {C++} meta-program generation tool},
  booktitle	= {Proceedings of the Workshop on Multiple Paradigm with OO
		  Languages (MPOOL; in conjunction with ECOOP)},
  year		= 2004,
  address	= {Oslo, Norway},
  month		= jun,
  abstract	= {The C++ language offers a two layer evaluation model.
		  Thus, it is possible to evaluate a program in two steps:
		  the so-called static and dynamic evaluations. Static
		  evaluation is used for reducing the amount of work done at
		  execution-time. Programs executed statically (called
		  metaprograms) are written in C++ through an intensive use
		  of template classes. Due to the complexity of these
		  structures, writing, debugging and maintaining C++
		  meta-programs is a difficult task. Metagene is a program
		  transformation tool which simplifies the development of
		  such programs. Due to the similarities between C++
		  meta-programming and functional programming, the input
		  language of Metagene is an ML language. Given a functional
		  input program, Metagene outputs the corresponding C++
		  meta-program expressed using template classes.}
}