Results 1  10
of
14
Typedirected partial evaluation
 Proceedings of the TwentyThird Annual ACM Symposium on Principles of Programming Languages
, 1996
"... Abstract. Typedirected partial evaluation stems from the residualization of arbitrary static values in dynamic contexts, given their type. Its algorithm coincides with the one for coercing asubtype value into a supertype value, which itself coincides with the one of normalization in thecalculus. T ..."
Abstract

Cited by 207 (39 self)
 Add to MetaCart
Abstract. Typedirected partial evaluation stems from the residualization of arbitrary static values in dynamic contexts, given their type. Its algorithm coincides with the one for coercing asubtype value into a supertype value, which itself coincides with the one of normalization in thecalculus. Typedirected partial evaluation is thus used to specialize compiled, closed programs, given their type. Since Similix, letinsertion is a cornerstone of partial evaluators for callbyvalue procedural programs with computational e ects. It prevents the duplication of residual computations, and more generally maintains the order of dynamic side e ects in residual programs. This article describes the extension of typedirected partial evaluation to insert residual let expressions. This extension requires the userto annotate arrowtypes with e ect information. It is achieved by delimiting and abstracting control, comparably to continuationbased specialization in direct style. It enables typedirected partial evaluation of e ectful programs (e.g.,ade nitional lambdainterpreter for an imperative language) that are in direct style. The residual programs are in Anormal form. 1
Normalization by evaluation for typed lambda calculus with coproducts
 In LICS
, 2001
"... We solve the decision problem for simply typed lambda calculus with strong binary sums, equivalently the word problem for free cartesian closed categories with binary coproducts. Our method is based on the semantical technique known as “normalization by evaluation ” and involves inverting the interp ..."
Abstract

Cited by 39 (5 self)
 Add to MetaCart
We solve the decision problem for simply typed lambda calculus with strong binary sums, equivalently the word problem for free cartesian closed categories with binary coproducts. Our method is based on the semantical technique known as “normalization by evaluation ” and involves inverting the interpretation of the syntax into a suitable sheaf model and from this extracting appropriate unique normal forms. There is no rewriting theory involved, and the proof is completely constructive, allowing program extraction from the proof. 1
SemanticsBased Compiling: A Case Study in TypeDirected Partial Evaluation
 Eighth International Symposium on Programming Language Implementation and Logic Programming
"... . We illustrate a simple and e#ective solution to semanticsbased compiling. Our solution is based on "typedirected partial evaluation", and  our compiler generator is expressed in a few lines, and is e#cient;  its input is a welltyped, purely functional definitional interpreter in the sty ..."
Abstract

Cited by 23 (8 self)
 Add to MetaCart
. We illustrate a simple and e#ective solution to semanticsbased compiling. Our solution is based on "typedirected partial evaluation", and  our compiler generator is expressed in a few lines, and is e#cient;  its input is a welltyped, purely functional definitional interpreter in the style of denotational semantics;  the output of the generated compiler is e#ectively threeaddress code, in the fashion and e#ciency of the Dragon Book;  the generated compiler processes several hundred lines of source code per second. The source language considered in this case study is imperative, blockstructured, higherorder, callbyvalue, allows subtyping, and obeys stack discipline. It is bigger than what is usually reported in the literature on semanticsbased compiling and partial evaluation. Our compiling technique uses the first Futamura projection, i.e., we compile programs by specializing a definitional interpreter with respect to the program. Specialization is carri...
From ReductionBased to ReductionFree Normalization
, 2004
"... We present a systematic construction of a reductionfree normalization function. Starting from ..."
Abstract

Cited by 21 (8 self)
 Add to MetaCart
We present a systematic construction of a reductionfree normalization function. Starting from
An operational foundation for delimited continuations in the CPS hierarchy
 Logical Methods in Computer Science
, 2005
"... Vol. 1 (2:5) 2005, pp. 1–39 www.lmcsonline.org ..."
Memoization in typedirected partial evaluation
 PROCEEDINGS OF THE 2002 ACM SIGPLAN/SIGSOFT CONFERENCE ON GENERATIVE PROGRAMMING AND COMPONENT ENGINEERING, NUMBER 2487 IN LECTURE NOTES IN COMPUTER SCIENCE
, 2002
"... We use a code generator—typedirected partial evaluation— to verify conversions between isomorphic types, or more precisely to verify that a composite function is the identity function at some complicated type. A typed functional language such as ML provides a natural support to express the function ..."
Abstract

Cited by 14 (6 self)
 Add to MetaCart
We use a code generator—typedirected partial evaluation— to verify conversions between isomorphic types, or more precisely to verify that a composite function is the identity function at some complicated type. A typed functional language such as ML provides a natural support to express the functions and typedirected partial evaluation provides a convenient setting to obtain the normal form of their composition. However, offtheshelf typedirected partial evaluation turns out to yield gigantic normal forms. We identify that this gigantism is due to redundancies, and that these redundancies originate in the handling of sums, which uses delimited continuations. We successfully eliminate these redundancies by extending typedirected partial evaluation with memoization capabilities. The result only works for pure functional programs, but it provides an unexpected use of code generation and it yields ordersofmagnitude improvements both in time and in space for type isomorphisms.
From Proof Normalization to Compiler Generation and TypeDirected ChangeofRepresentation
, 1997
"... The main part of this thesis is a synthesis of considerations from Type Theory, Mathematical Logic/Proof Theory, and (Denotational) Semantics to perform various automatic program transformations ranging from normalization over currying and coercioninsertion to compiler derivation. At the core of o ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
The main part of this thesis is a synthesis of considerations from Type Theory, Mathematical Logic/Proof Theory, and (Denotational) Semantics to perform various automatic program transformations ranging from normalization over currying and coercioninsertion to compiler derivation. At the core of our technique we have what has been described as "An Inverse of the Evaluation Functional for Typed calculus" [7]. It is essentially typedirected jexpansion followed by fireduction on certain terms. Quite independently of [7], jexpansion has been studied for its use in Partial Evaluation, where among other things it has been used to obtain a onepass CPStransformer [20]. It is some of the consequences of this coincidence [19] that are described in the following. Our approach will be purely syntactical and it is hoped that it marks a simplification on earlier treatments of the materiel. We have tried presenting the materiel based purely on the standard reduction properties for the simpl...
Reductionfree normalisation for system F
, 1996
"... We present a semantical proof of existence of normal forms for system F including jequality. A reductionfree normalisation function can be obtained from this. The proof uses the method of glueing (a variant of) the term model along the global sections functor, carried out in the internal language ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
We present a semantical proof of existence of normal forms for system F including jequality. A reductionfree normalisation function can be obtained from this. The proof uses the method of glueing (a variant of) the term model along the global sections functor, carried out in the internal language of a category of presheaves. As a byproduct we obtain an semantical explanation of higherorder abstract syntax. The paper extends a previous one (Altenkirch, Hofmann, and Streicher 1996) in which a combinatory version of system F has been treated. 1 Introduction In this paper we give a semantical proof of reductionfree normalisation for F fij , a version of Girard's system F with full fijequality for both kinds of abstraction. This generalises the semantical normalisation algorithms for simplytyped systems (Berger and Schwichtenberg 1991; Coquand and Dybjer 1996; Altenkirch, Hofmann, and Streicher 1995) to polymorphism. As in those approaches we do not prove strong normalisation but co...
TypeDirected Partial Evaluation in Haskell
, 1998
"... We implement typedirected partial evaluation in the pure functional programming language Haskell, using type classes. 1 ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We implement typedirected partial evaluation in the pure functional programming language Haskell, using type classes. 1