Difference between revisions of "Publications/maes.03.dpcool"
From LRDE
Line 7: | Line 7: | ||
| address = Uppsala, Sweden |
| address = Uppsala, Sweden |
||
| number = FZJ-ZAM-IB-2003-10 |
| number = FZJ-ZAM-IB-2003-10 |
||
− | | pages = |
+ | | pages = 67–86 |
| 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) |
Revision as of 18:51, 4 January 2018
- Authors
- Francis Maes
- Where
- Proceedings of the Workshop on Declarative Programming in the Context of Object-Oriented Languages (DP-COOL; in conjunction with PLI)
- Place
- Uppsala, Sweden
- Type
- inproceedings
- Projects
- Software"Software" is not in the list (Vaucanson, Spot, URBI, Olena, APMC, Tiger, Climb, Speaker ID, Transformers, Bison, ...) of allowed values for the "Related project" property.
- Date
- 2003-07-31
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.} }