The template system of C++ is expressive enough to allow the programmer to write programs which are evaluated during compile time. This can be exploited for example in generic programming. However, these programs are very often hard to write, read and maintain. We introduce a simple translation from lambda calculus into C++ templates and show how it can be used to simplify C++ metaprograms. This variation of lambda calculus is then extended with Hindley-Milner type system and various other features (Haskell-like syntax, user-defined data types, tools for interaction with existing C++ template code and so on). We then build a compiler capable of transforming programs written in this language into C++ template metaprograms. Powered by TCPDF (...
Partial evaluation is a high-level optimization technique that, given a program text and some of its...
The Lambda Calculus is a formal system, originally intended as a tool in the foundation of mathemati...
Any partial recursive function can be computed at compile time, using C++ templates to define primi...
This paper describes the Boost C++ template metaprogramming library (MPL), an extensible compile-tim...
Template metaprogramming is an emerging new direction of gen-erative programming: with the clever de...
AbstractMore and more C++ applications use template metaprograms directly or indirectly by using lib...
Domain specific languages embedded in C++ (EDSLs) often use the techniques of template metaprogrammi...
Abstract. Template metaprogramming (TMP) is an emerging new di-rection in C++ programming for execut...
AbstractC++ template metaprogramming is often regarded as a functional language, however, nowadays m...
Abstract. The C++ language provides a two-layer execution model: static execution of meta-programs a...
Template metaprogramming is an emerging new direction in C++ programming for executing algorithms in...
Template metaprograms have become an essential part of today’s C++ programs: with proper template de...
Software Engineering progresses as improvements are made in languages and methodologies. Significant...
Any partial recursive function can be computed at compile time, using C++ templates to define primi...
Existing meta-programming languages operate on encodings of pro-grams as data. This paper presents a...
Partial evaluation is a high-level optimization technique that, given a program text and some of its...
The Lambda Calculus is a formal system, originally intended as a tool in the foundation of mathemati...
Any partial recursive function can be computed at compile time, using C++ templates to define primi...
This paper describes the Boost C++ template metaprogramming library (MPL), an extensible compile-tim...
Template metaprogramming is an emerging new direction of gen-erative programming: with the clever de...
AbstractMore and more C++ applications use template metaprograms directly or indirectly by using lib...
Domain specific languages embedded in C++ (EDSLs) often use the techniques of template metaprogrammi...
Abstract. Template metaprogramming (TMP) is an emerging new di-rection in C++ programming for execut...
AbstractC++ template metaprogramming is often regarded as a functional language, however, nowadays m...
Abstract. The C++ language provides a two-layer execution model: static execution of meta-programs a...
Template metaprogramming is an emerging new direction in C++ programming for executing algorithms in...
Template metaprograms have become an essential part of today’s C++ programs: with proper template de...
Software Engineering progresses as improvements are made in languages and methodologies. Significant...
Any partial recursive function can be computed at compile time, using C++ templates to define primi...
Existing meta-programming languages operate on encodings of pro-grams as data. This paper presents a...
Partial evaluation is a high-level optimization technique that, given a program text and some of its...
The Lambda Calculus is a formal system, originally intended as a tool in the foundation of mathemati...
Any partial recursive function can be computed at compile time, using C++ templates to define primi...