Difference between revisions of "Publications/maes.03.dpcool"

From LRDE

 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{Publication
 
{{Publication
  +
| published = true
 
| date = 2003-07-31
 
| date = 2003-07-31
 
| authors = Francis Maes
 
| authors = Francis Maes
Line 9: Line 10:
 
| editors = Jörg Striegnitz, Kei Davis
 
| editors = Jörg Striegnitz, Kei Davis
 
| series = John von Neumann Institute for Computing (NIC)
 
| series = John von Neumann Institute for Computing (NIC)
| project = Software
+
| lrdeprojects = Software
| urllrde = 20020619-Seminar-Maes-Report
 
 
| abstract = The C++ language provides a two-layer execution model: static execution of meta-programs and dynamic execution of resulting programs. The Expression Templates technique takes advantage of this dual execution model through the construction of C++ types expressing simple arithmetic formulas. Our intent is to extend this technique to a whole programming language. The Tiger language is a smallimperative language with types, variables, arrays, recordsow control structures and nested functions. The rst step is to show how to express a Tiger program as a C++ type. The second step concerns operational analysis which is done through the use of meta-programs. Finally an implementation of our Tiger evaluator is proposed. Our technique goes much deeper than the Expression Templates one. It shows how the generative power of C++ meta-programming can be used in order to compile abstract syntax trees of a fully featured programming language.
 
| abstract = The C++ language provides a two-layer execution model: static execution of meta-programs and dynamic execution of resulting programs. The Expression Templates technique takes advantage of this dual execution model through the construction of C++ types expressing simple arithmetic formulas. Our intent is to extend this technique to a whole programming language. The Tiger language is a smallimperative language with types, variables, arrays, recordsow control structures and nested functions. The rst step is to show how to express a Tiger program as a C++ type. The second step concerns operational analysis which is done through the use of meta-programs. Finally an implementation of our Tiger evaluator is proposed. Our technique goes much deeper than the Expression Templates one. It shows how the generative power of C++ meta-programming can be used in order to compile abstract syntax trees of a fully featured programming language.
 
| lrdenewsdate = 2003-07-31
 
| lrdenewsdate = 2003-07-31
Line 30: Line 30:
 
month = aug,
 
month = aug,
 
series = <nowiki>{</nowiki>John von Neumann Institute for Computing (NIC)<nowiki>}</nowiki>,
 
series = <nowiki>{</nowiki>John von Neumann Institute for Computing (NIC)<nowiki>}</nowiki>,
project = <nowiki>{</nowiki>Software<nowiki>}</nowiki>,
 
 
abstract = <nowiki>{</nowiki>The C++ language provides a two-layer execution model:
 
abstract = <nowiki>{</nowiki>The C++ language provides a two-layer execution model:
 
static execution of meta-programs and dynamic execution of
 
static execution of meta-programs and dynamic execution of

Latest revision as of 18:57, 4 January 2018

Abstract

The C++ language provides a two-layer execution model: static execution of meta-programs and dynamic execution of resulting programs. The Expression Templates technique takes advantage of this dual execution model through the construction of C++ types expressing simple arithmetic formulas. Our intent is to extend this technique to a whole programming language. The Tiger language is a smallimperative language with types, variables, arrays, recordsow control structures and nested functions. The rst step is to show how to express a Tiger program as a C++ type. The second step concerns operational analysis which is done through the use of meta-programs. Finally an implementation of our Tiger evaluator is proposed. Our technique goes much deeper than the Expression Templates one. It shows how the generative power of C++ meta-programming can be used in order to compile abstract syntax trees of a fully featured programming language.


Bibtex (lrde.bib)

@InProceedings{	  maes.03.dpcool,
  author	= {Francis Maes},
  title		= {Program templates: expression templates applied to program
		  evaluation},
  booktitle	= {Proceedings of the Workshop on Declarative Programming in
		  the Context of Object-Oriented Languages (DP-COOL; in
		  conjunction with PLI)},
  year		= 2003,
  address	= {Uppsala, Sweden},
  number	= {FZJ-ZAM-IB-2003-10},
  pages		= {67--86},
  editor	= {J\"org Striegnitz and Kei Davis},
  month		= aug,
  series	= {John von Neumann Institute for Computing (NIC)},
  abstract	= {The C++ language provides a two-layer execution model:
		  static execution of meta-programs and dynamic execution of
		  resulting programs. The Expression Templates technique
		  takes advantage of this dual execution model through the
		  construction of C++ types expressing simple arithmetic
		  formulas. Our intent is to extend this technique to a whole
		  programming language. The Tiger language is a small,
		  imperative language with types, variables, arrays, records,
		  ow control structures and nested functions. The rst step is
		  to show how to express a Tiger program as a C++ type. The
		  second step concerns operational analysis which is done
		  through the use of meta-programs. Finally an implementation
		  of our Tiger evaluator is proposed. Our technique goes much
		  deeper than the Expression Templates one. It shows how the
		  generative power of C++ meta-programming can be used in
		  order to compile abstract syntax trees of a fully featured
		  programming language.}
}