25 citations found. Retrieving documents...
VELDHUIZEN, T. 1999. C++ templates as partial evaluation. In ACMSIGPLANWorkshop on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'98). ACM Press, San Antonio, TX, USA, 13--18.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Exploring Extensibility and Performance in a Generic Programming.. - Burton (2001)   (Correct)

....reconciling the static and dynamic aspects of the language. This means that techniques that we develop to work with one aspect (e.g. for loops for dynamic C , or Template Metaprogramming for the static side of C ) will not work with the other due to syntax di erences in the way each is de ned[44]. One very important reason for designing symmetry between these two levels of programming languages is that it enables the programmer to use familiar concepts when moving from one level to the other. Another reason is that it enables code re use and allows the programmer to conveniently choose ....

T. L. Veldhuizen. C++ templates as partial evaluation. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, 2000.


Towards Unifying Inheritance and Automatic Program Specialization - Schultz   (Correct)

....method defined in a separate class. Locally allocated objects are stored in class fields and reused between method invocations, which reduces the amount of work done by the garbage collector, but is inappropriate for multi threaded code. Veldhuizen used C templates to perform partial evaluation [51]. By combining template parameters and C const constant declarations, arbitrary computations over primitive values can be performed at compile time. Although the declaration of how to specialize is e#ectively integrated with the program in the form of template declarations, this approach is more ....

T.L. Veldhuizen. C++ templates as partial evaluation. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'98), pages 13--18, San Antonio, TX, USA, January 1999. ACM Press. 30


Guaranteed Configurability of Components Via.. - Le Meur, Consel, Escrig   (Correct)

....such templates is cumbersome and error prone. Furthermore, the C language lacks ways to enforce constraints on template parameters, and the compiler blindly transforms the code at the risk of producing inecient or incorrect code. Developing code using C templates is thus complex and dicult [17, 19]. Program specialization is yet another strategy to con gure components. This program transformation performs computations which depend on known values (e.g. con guration parameters) This process can improve speed and or size of programs. Program specialization is available for real size ....

T. L. Veldhuizen. C++ templates as partial evaluation. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pages 13-18, San Antonio, TX, USA, January 1999. ACM Press.


Delayed Evaluation, Self-Optimising Software Components.. - Liniker, Beckmann, Kelly (2002)   (Correct)

....implemented only once as an abstract template, independently of the underlying representation of the data being accessed. Optimisation in this framework is achieved by using C effectively as a two level language, with the template mechanism being used for partial evaluation and code generation [18]. However, as pointed out by Quinlan et al. 15] a serial C compiler cannot find scalable parallel optimisations. A further possible problem with this technique is that templates make heavy demands of C compilers which on at least some high performance architectures are much less developed ....

....constructors as making delayed calls to the BLAS copying routine copy. This resulted in vast numbers of superfluous data copies. We therefore took the design decision to define copy constructors as making aliases, whilst the assignment operator actually copies data. Traits. The traits technique [18] allows programmers to write functions that operate on and return types. This technique is very useful when implementing generic functions, in particular generic operators such as . We could envisage writing a generic interface for as follows: 2 inline Return Type operator ( const T1 m1, ....

T. L. Veldhuizen. C++ templates as partial evaluation. In PEPM '99: Partial Evaluation and Semantic-Based Program Manipulation, pages 13--18, 1999.


Object-Oriented Program Specialization: Aspects Into Aspects - Or .. - Schultz (2001)   (Correct)

....classes, explicit syntactic restrictions could be used to force the programmer to di#erentiate between program parts that are to be specialized and program parts 2 that are to appear unchanged in the specialized program. C expression templates allow a limited form of partial evaluation [11], and use an explicit syntax to indicate computations that are to be reduced by the compiler [10] However, such explicit syntax obscures program semantics and forces the programmer to manually duplicate code when di#erent information is known in di#erent scenarios. As an example, we can rewrite ....

T. Veldhuizen. C++ templates as partial evaluation. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'98), pages 13--18, San Antonio, TX, USA, Jan. 1999. ACM Press.


Towards Automatic Specialization of Java Programs - Schultz, Lawall, Consel, Muller (1999)   (18 citations)  (Correct)

....on programs with virtual calls. The C language incorporates templates that allow a single class to be statically compiled to di#erent types, in e#ect performing specialization. Templates can also be used to perform some computations at compile time, as demonstrated 19 by Veldhuizen [31], albeit not on object types, and with a significant compilation overhead. Special syntax must be used to write programs so that they can be optimized using templates, and having both specialized and generic variants of a method requires writing two di#erent implementations. Specialization via ....

T. L. Veldhuizen. C++ templates as partial evaluation. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pages 13--18, San Antonio, TX, USA, January 1999. ACM Press.


Growing Languages with Metamorphic Syntax Macros - Brabrand, Schwartzbach (2000)   (6 citations)  (Correct)

....trees that are being constructed, while others only use pattern matching and substitution. CPP only allows simple conditionals, M4 o#ers simple arithmetic, C templates performs constant folding (which together with multiple definitions provide a Turing complete compile time programming language [23]) while Scheme and MS 2 allow arbitrary computations. 2.2 Syntax Properties The syntax for defining and invoking macros varies greatly. The main point of interest is how liberal an invocation syntax is allowed. At one end of the spectrum is CPP which requires parenthesized and comma separated ....

T. L. Veldhuizen. C++ templates as partial evaluation. In Partial Evaluation and Semantics-Based Program Manipulation (PEPM), 1999.


Automatic Program Specialization for Java - Schultz, Consel (2000)   (2 citations)  (Correct)

....individual objects. On the contrary, we specialize the interaction that takes place between multiple objects based on their respective state, resulting in global program specialization. Templates in C can be used to perform program specialization at compile time, as demonstrated by Veldhuizen [28]. By using a combination of template parameters and C const constant declarations, arbitrary computations over base type values can be performed at compile time. Compared to our definition of program specialization for object oriented languages, specialization with C templates is limited in a ....

T. Veldhuizen. C++ templates as partial evaluation. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'98), pages 13--18, San Antonio, TX, USA, Jan. 1999. ACM Press.


Compiling Embedded Languages - Elliott, Finne, de Moor (2000)   (25 citations)  (Correct)

....bottom up simplifying construction. It appears that the results are the same. Because the application domain is so specialized, #tgen is more focused than our compiler. Veldhuizen and others have been using advanced C programming techniques to embed a simple functional language into C types [16, 17]. Functional evaluation is done by the C compiler during type checking and template in Compiling Embedded Languages 13 stantiation. Code fragments specified in inlined static methods are chosen and combined at compile time to produce specialized, optimized low level code. 10 Future work More ....

Todd Veldhuizen. C++ templates as partial evaluation. In Workshop on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'99). ACM Sigplan, 1999. http://extreme.indiana.edu/tveldhui/papers/pepm99.ps. A Optimization example To illustrate the compilation techniques described in this paper,


Towards a Total Reusability of Image Processing.. - Geraud, Fabre.. (1999)   (Correct)

....This paradigm 3 A call to a polymorphic method leads to a dynamic binding. 4 The benchmarks have been performed on a 333 MHz PC with Linux and with the gnu C compiler. Towards a Total Reusability of Image Processing Algorithms 9 is used by two recent libraries: CGAL [1] and Blitz [7]. The former is dedicated to geometric computing and the later to algebraic computing. 4.1 Type Aliases and Static Polymorphism The key idea of generic programming is to parameterize the algorithms, by the aggregate type (Aggregate) rather than by the data type. The deduction of types from a ....

T.L. Veldhuizen, C++ Templates as Partial Evaluation, Rapport technique num. 519, Indiana University Computer Science, 1996.


Five compilation models for C++ templates - Veldhuizen (2000)   (Correct)

....data representations. 7.2 Related work The existence of a relationship between C templates and partial evaluation was first proposed by Salomon [8] who proposed a dialect of C using partial evaluation to achieve C template like capabilities. The relationship was later explored in detail by [13]. This paper goes well beyond these two by proposing a concrete compilation process which uses partial evaluation to drive type analysis. Staging [7, 12] is the general notion of splitting a computation into several stages, each of which perform part of the computation and produce a residual to ....

Veldhuizen, T. L. C++ templates as partial evaluation. In Proceedings of PEPM'99, The ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, ed. O. Danvy, San Antonio, January 1999. (Jan. 1999), University of Aarhus, Dept. of Computer Science, pp. 13--18.


Growing Languages with Metamorphic Syntax Macros - Brabrand, Schwartzbach (2000)   (6 citations)  (Correct)

....C templates and Scheme s hygienic macros, as well as JTS, the macro mechanism of the Jakarta Tool Suite, and MS 2 , the Meta Syntactic Macro System. 4 C templates The template mechanism of C templates [17] supports generic programming, but is often exploited as a general macro mechanism [19]. An example computes integer powers at compile time: template int X, int Y struct ctime pow static const int result = X ctime pow X,Y 1 : result; template int X struct ctime pow X,0 static const int result = 1; const int z = ctime pow 5,3 : result; z = 125 Clearly, this ....

Todd L. Veldhuizen. C++ templates as partial evaluation. In Partial Evaluation and Semantics-Based Program Manipulation (PEPM), 1999.


Specialization Patterns - Schultz, Lawall, Consel (1999)   (7 citations)  (Correct)

....give the best optimizations. Templates in C allow the programmer to express static information about types and simple values, thus providing more information to the compiler. The information can be used to x types in the program, and even to perform simple partial evaluation of integral values [31]. For example, rather than implementing the strategy pattern with a virtual call, the choice of strategy can by statically xed using templates [16] However, templates specialize on a class by class bases, and cannot specialize for the way objects are composed together, except when this is done ....

T. L. Veldhuizen. C++ templates as partial evaluation. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pages 1318, San Antonio, TX, USA, January 1999. ACM Press.


Multi-Stage Programming: Its Theory and Applications - Taha (1999)   (27 citations)  (Correct)

....arise, some of which are not easily addressed. The significance of these difficulties comes from the fact that extending an existing implementation of a programming language to include staging annotations is prototypical of how multi stage languages are developed in practice (See for example [3, 26, 84, 97]. As such, the existence of these problems underlines the potential dangers of this widespread practice and the importance of studying the formal semantics of multi stage languages. 4.3.1 Values and Expressions To extend the interpreter to deal with a multi stage language such as M of Section ....

Veldhuizen, T. L. C++ templates as partial evaluation. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation (San Antonio, Jan. 1999), O. Danvy, Ed., University of Aarhus, Dept. of Computer Science, pp. 13--18.


Guaranteed Optimization for Domain-Specific Programming - Veldhuizen (2003)   Self-citation (Veldhuizen)   (Correct)

No context found.

Veldhuizen, T.L.: C++ templates as partial evaluation. In Danvy, O., ed.: ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation. Technical report BRICS-NS-99-1, University of Aarhus, San Antonio, Texas, University of Aarhus, Dept. of Computer Science (1999) 13-18


Active Libraries and Universal Languages - Veldhuizen (2004)   (1 citation)  Self-citation (Veldhuizen)   (Correct)

No context found.

Todd L. Veldhuizen. C++ templates as partial evaluation. In Olivier Danvy, editor, ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, Technical report BRICS-NS-99-1, University of Aarhus, pages 13--18, San Antonio, Texas, January 1999. University of Aarhus, Dept. of Computer Science.


Just When You Thought Your Little Language Was Safe.. - Veldhuizen (2000)   Self-citation (Veldhuizen)   (Correct)

....language, free of complexities such as templates. The essence of generative programming in C is not templates the language feature but rather the underlying algorithms in the compiler (template instantiation) which unintentionally resemble an optimization called partial evaluation [14, 20]. By devising a partial evaluator for Java, we reproduce some of the generative programming aspects of C templates, without extending the Java language. The prototype compiler, called Lunar, is capable of doing expression templates in Java to optimize numerical array objects. 1 ....

....template parameters be known at compile time. When a template parameter is given by an expression (for example, Vector 3 8 ) that expression must be evaluated at compile time. C templates effectively require that a partial evaluator be built into the compiler to evaluate template expressions [14, 20]. It is this partial evaluation which makes possible expression templates and other template based optimizations. So here is a thought. Perhaps if we implemented a partial evaluator for Java, we could get the same performance benefits one gets from templates in C , without templates. This turns ....

Veldhuizen, T. L. C++ templates as partial evaluation. In Proceedings of PEPM'99, The ACM SIGPLAN Workshop on Partial Evaluation and SemanticsBased Program Manipulation, ed. O. Danvy, San Antonio, January


Just When You Thought Your Little Language Was Safe.. - Veldhuizen   Self-citation (Veldhuizen)   (Correct)

....language, free of complexities such as templates. The essence of generative programming in C is not templates the language feature but rather the underlying algorithms in the compiler (template instantiation) which unintentionally resemble an optimization called partial evaluation [14, 20]. By devising a partial evaluator for Java, we reproduce some of the generative programming aspects of C templates, without extending the Java language. The prototype compiler, called Lunar, is capable of doing expression templates in Java to optimize numerical array objects. 1 ....

....template parameters be known at compile time. When a template parameter is given by an expression (for example, Vector 3 8 ) that expression must be evaluated at compile time. C templates effectively require that a partial evaluator be built into the compiler to evaluate template expressions [14,20]. It is this partial evaluation which makes possible expression templates and other template based optimizations. So here is a thought. Perhaps if we implemented a partial evaluator for Java, we could get the same performance benefits one gets from templates in C , without templates. This turns ....

Veldhuizen, T. L. C++ templates as partial evaluation. In Proceedings of PEPM'99, The ACM SIGPLAN Workshop on Partial Evaluation and Semantics-BasedProgram Manipulation, ed. O. Danvy, San Antonio, January


Just when you thought your little language was safe.. - Veldhuizen (2000)   Self-citation (Veldhuizen)   (Correct)

....simpler language, free of the complexities of templates. The essence of generative programming in C is not templates the language feature but rather the underlying algorithms in the compiler (template instantiation) which unintentionally resemble an optimization called partial evaluation [14, 20]. By devising a partial evaluator for Java, we reproduce some of the generative programming aspects of C templates, without extending the Java language. The prototype compiler, called Lunar, is capable of doing expression templates in Java to optimize numerical array objects. 1 Introduction ....

....template parameters be known at compile time. When a template parameter is given by an expression (for example, Vector 3 8 ) that expression must be evaluated at compile time. C templates effectively require that a partial evaluator be built into the compiler to evaluate template expressions [14, 20]. It is this partial evaluation which makes possible expression templates and other template based optimizations. So here is a thought. Perhaps if we implemented a partial evaluator for Java, we could get the same performance benefits one gets from templates in C , without templates. This turns ....

Veldhuizen, T. L. C++ templates as partial evaluation. In Proceedings of PEPM'99, The ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, ed. O. Danvy, San Antonio, January 1999. (Jan. 1999), University of Aarhus, Dept. of Computer Science, pp. 13--18.


Automatic Program Specialization for Java - Schultz, Lawall, Consel (2003)   (2 citations)  (Correct)

No context found.

VELDHUIZEN, T. 1999. C++ templates as partial evaluation. In ACMSIGPLANWorkshop on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'98). ACM Press, San Antonio, TX, USA, 13--18.


Unrolling and Simplifying Expressions with Template Haskell - Lynagh (2003)   (1 citation)  (Correct)

No context found.

T. L. Veldhuizen. C++ templates as partial evaluation. In Proceedings of PEPM'99, The ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, ed. O. Danvy, San Antonio, January 1999.


Domain Specific Languages for Interactive Web Services - Brabrand (2002)   (1 citation)  (Correct)

No context found.

T. L. Veldhuizen. C++ templates as partial evaluation. In Partial Evaluation and Semantics-Based Program Manipulation (PEPM), 1999.


Towards a Total Reusability of Image Processing.. - Geraud, Fabre.. (1999)   (Correct)

No context found.

T.L. Veldhuizen, C++ Templates as Partial Evaluation, Rapport technique num. 519, Indiana University Computer Science, 1996.


Java as a Functional Programming Language - Anton Setzer Dept   (Correct)

No context found.

Todd L. Veldhuizen. C++ templates as partial evaluation. In Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, Tech. Report NS-99-1, pages 13--18. BRICS, 1999.


An Embedded Shading Language - Zheng Qin In (2004)   (Correct)

No context found.

Todd L. Veldhuizen. C++ template as partial evaluation. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, 1999.

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC