| Vincent Balat and Olivier Danvy. Strong normalization by type-directed partial evaluation and run-time code generation. In Xavier Leroy and Atsushi Ohori, editors, Proceedings of the Second International Workshop on Types in Compilation, number 1473 in Lecture Notes in Computer Science, pages 240--252, Kyoto, Japan, March 1998. Springer-Verlag. |
....very small, yet we achieve rather significant speedup compared to the original case. This shows that the specialization of intersection is the major factor of the speedup. 9 Related Work Applying specialization during standard evaluation (in place partial evaluation) is studied by Balat and Danvy [5]. They use type directed partial evaluation [10] to achieve strong normalization. We use the standard partial evaluation without any type information to achieve the similar goal. Currently, we do not detect when a specialized program is invalidated by side effects after the specialization. More ....
Balat, V., and O. Danvy "Strong Normalization by Type-Directed Partial Evaluation and Run-Time Code Generation," In X. Leroy and A. Ohori editors, Types in Compilation (LNCS 1473) pp. 240--252 (March 1998).
.... two stack based implementation strategies for first class continuations by constructing special abstract machines which are proven equivalent to a standard abstract machine for CPS programs [7] The performance problems of indirect implementations of shift reset have been noted for a while [1]. In particular, implementors of partial evaluators have been trying to replace the use of shift reset for performance reasons this is possible for some but not all applications of shift reset in that context [25] Operating systems research also has a long history of trying to overcome the ....
Vincent Balat and Olivier Danvy. Strong normalization by type-directed partial evaluation and run-time code generation. In Proceedings of the ACM SIGPLAN Workshop on Types in Compilation (TIC'98), number 1473 in Lecture Notes in Computer Science, Kyoto, Japan, March 1998.
....between TDPE and traditional techniques of partial evaluation. Another line of research tries to exploit the fact that the output of TDPE is in normal form. This can for example be advantageous for compiling to machine language as shown in an application of TDPE to runtime code generation [3]. 3.3 Instantiating the 2nd Futamura Projection for TDPE As was mentioned in section 3.1.5, the Futamura projections can be generalized. Consider for example the 2nd Futamura projection for any program p instead of an interpreter: pe] hpe; pi = pe p ( Here pe p is the so called ....
Vincent Balat and Olivier Danvy. Strong normalization by type-directed partial evaluation and run-time code generation (preliminary version). In Second International Workshop on Types in Compilation, TIC '98 Preliminary Proceedings, pages 240 - 252, 1997.
....combined type directed partial evaluation with run time code generation in OCaml, requiring the user to specialize top level bindings. Type directed partial evaluation produces the source code of the specialized value, which is then compiled into OCaml byte code by a fast special purpose compiler [1]. Another approach is to have executable code generated directly by partial evaluation. Michael Sperber and Peter Thiemann combine a syntax directed partial evaluator for Scheme with a Schemecompiler that generates byte code for a virtual machine [39] They use standard partial evaluation 5 ....
Vincent Balat and Olivier Danvy. Strong normalization by type-directed partial evaluation and run-time code generation. In Xavier Leroy and Atsushi Ohori, editors, Proceedings of the Second International Workshop on Types in Compilation, number 1473 in Lecture Notes in Computer Science, pages 240--252, Kyoto, Japan, March 1998.
....the generation of high level program code and its subsequent execution in the same running program. Ideally, there should be no penalty for using generated code, but full compilation would be too slow. The approaches to combining partial evaluation and compilation also fall into this category [5, 21]. Overcoming restrictions of compilers. Some compilers have arbitrary restrictions on the size of code, the number of variables, and so on. Code splicing provides a way to compile and execute arbitrary programs, overcoming implementation restrictions. All these applications share the ....
....Two works deal with compiling specialized source to byte code on the fly. Sperber and Thiemann [21] implement a back end for a traditional partial evaluator. As in the present work, they reinterpret the active syntax, but their implementation generates byte code on the fly. Balat and Danvy [5] construct an internal representation of the source term which they submit in toto to the byte code compiler. They do not deforest the intermediate result. Like the present work they implement a back end for TDPE, thus side stepping problems with top level definitions and primitive operations that ....
Vincent Balat and Olivier Danvy. Strong normalization by type-directed partial evaluation and run-time code generation. In TIC '98 [23].
....systems supporting transmissible code, such as the standard Javaenvironment. But it is not obvious whether TDPE can work for (relatively) conventional languages likeJava[8] TDPE was originally formulated in and for Scheme [5] and has been implemented in a variety of other functional languages [15,16,1,13]. It makes essential use of the polymorphic type systems, uniform data representation conventions, and higher order function support o ered by these languages. Also, the residual program produced by TDPE is essentially a lambda calculus term (in some language) whichmust be compiled before it can ....
....higher order function support o ered by these languages. Also, the residual program produced by TDPE is essentially a lambda calculus term (in some language) whichmust be compiled before it can be executed eciently. It would be more useful to generate residual code directly in a lower level form [1, 20]. In this paper, we explore the applicability to TDPE to strongly typed object oriented (OO) languages, suchasJava. Following Java terminology for type signatures, we coin the name interface directed PE (IDPE) for our variant of TDPE. Our contributions include the following: # We show how to ....
[Article contains additional citation context not shown here]
Vincent Balat and Olivier Danvy. Strong normalization bytype-directed partial evaluation and run-time code generation. In Xavier Leroy and Atsushi Ohori, editors, Type in Compilation, TIC'98, number 1473 in Lecture Notes in Computer Science, pages 240-252, Kyoto, Japan, March 1998. Springer.
....systems supporting transmissible code, such as the standard Java environment. But it is not obvious whether TDPE can work for (relatively) conventional languages like Java [8] TDPE was originally formulated in and for Scheme [5] and has been implemented in a variety of other functional languages [15, 16, 1, 13]. It makes essential use of the polymorphic type systems, uniform data representation conventions, and higher order function support o ered by these languages. Also, the residual program produced by TDPE is essentially a lambda calculus term (in some language) which must be compiled before it can ....
....function support o ered by these languages. Also, the residual program produced by TDPE is essentially a lambda calculus term (in some language) which must be compiled before it can be executed e ciently. It would be more useful to generate residual code directly in a lower level form [1, 20]. In this paper, we explore the applicability to TDPE to strongly typed object oriented (OO) languages, such as Java. Following Java terminology for type signatures, we coin the name interface directed PE (IDPE) for our variant of TDPE. Our contributions include the following: We show how to ....
[Article contains additional citation context not shown here]
Vincent Balat and Olivier Danvy. Strong normalization by type-directed partial evaluation and run-time code generation. In Xavier Leroy and Atsushi Ohori, editors, Type in Compilation, TIC'98, number 1473 in Lecture Notes in Computer Science, pages 240-252, Kyoto, Japan, March 1998. Springer.
....for additional flexibility since it is possible to specify a different type for each static input. The position of TDPE could be further strengthened if it were possible to integrate the unavoidable type inference phase into the system. The recent integration of TDPE into an ML programming system [3] is a promising step forward. It eliminates many of the problems in making a program TDPE ready . However, it is still insufficient for ambitious applications like simple type specialization [17] where the implementation of a type inference engine is left to the user. The online extensions of ....
Vincent Balat and Olivier Danvy. Strong normalization by type-directed partial evaluation and run-time code generation. In Proceedings of the ACM SIGPLAN Workshop on Types in Compilation (TIC'98), Lecture Notes in Computer Science, Kyoto, Japan, March 1998.
....in the normalization by evaluation community. Normalization by evaluation has been variously studied in logic, proof theory, and category theory [2, 3, 8 10, 13] and in partial evaluation [14, 16] Typedirected partial evaluation, which we present next, has been investigated both practically [5, 15, 17, 18, 29, 31, 38] and foundationally [24, 25, 47] 1.2 Type directed partial evaluation Type directed partial evaluation is a practical instance of normalization by evaluation and is used for specializing functional programs. The evaluation function it inverts is the standard evaluation of functional programs. ....
Vincent Balat and Olivier Danvy. Strong normalization by type-directed partial evaluation and run-time code generation. In Xavier Leroy and Atsushi Ohori, editors, Proceedings of the Second International Workshop on Types in Compilation, number 1473 in Lecture Notes in Computer Science, pages 240--252, Kyoto, Japan, March 1998. Springer-Verlag.
.... 19, 21] Long ## normal forms were specified, e.g. in Huet s thesis [14] The particular characterization we use originates in Pfenning s work on Logical Frameworks, and so does higher order abstract syntax [17] We use it further to pair normalization by evaluation and run time code generation [3, 20]. Our typed abstract syntax is akin to Leijen and Meijer s embedding of SQL into Haskell, which introduced phantom types [15] Phantom types provide a typing discipline for otherwise untyped values such as pointers in a foreign language interface [13] Acknowledgments: A preliminary and longer ....
Vincent Balat and Olivier Danvy. Strong normalization by type-directed partial evaluation and run-time code generation. In Xavier Leroy and Atsushi Ohori, editors, Proceedings of the Second International Workshop on Types in Compilation, number 1473 in Lecture Notes in Computer Science, pages 240--252, Kyoto, Japan, March 1998. Springer-Verlag.
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