Results 1  10
of
64
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
Intuitionistic Model Constructions and Normalization Proofs
, 1998
"... We investigate semantical normalization proofs for typed combinatory logic and weak calculus. One builds a model and a function `quote' which inverts the interpretation function. A normalization function is then obtained by composing quote with the interpretation function. Our models are just ..."
Abstract

Cited by 44 (7 self)
 Add to MetaCart
We investigate semantical normalization proofs for typed combinatory logic and weak calculus. One builds a model and a function `quote' which inverts the interpretation function. A normalization function is then obtained by composing quote with the interpretation function. Our models are just like the intended model, except that the function space includes a syntactic component as well as a semantic one. We call this a `glued' model because of its similarity with the glueing construction in category theory. Other basic type constructors are interpreted as in the intended model. In this way we can also treat inductively defined types such as natural numbers and Brouwer ordinals. We also discuss how to formalize terms, and show how one model construction can be used to yield normalization proofs for two different typed calculi  one with explicit and one with implicit substitution. The proofs are formalized using MartinLof's type theory as a meta language and mechanized using the A...
From semantics to rules: A machine assisted analysis
 Proceedings of CSL '93, LNCS 832
, 1999
"... this paper is similar to the one in [2]. In this paper they define a normalization function for simply typed ..."
Abstract

Cited by 29 (0 self)
 Add to MetaCart
this paper is similar to the one in [2]. In this paper they define a normalization function for simply typed
A Semantic Account of TypeDirected Partial Evaluation
 In Gopalan Nadathur, editor, International Conference on Principles and Practice of Declarative Programming, number 1702 in Lecture
, 1999
"... We formally characterize partial evaluation of functional programs as a normalization problem in an equational theory, and derive a typebased normalizationbyevaluation algorithm for computing normal forms in this setting. We then establish the correctness of this algorithm using a semantic ar ..."
Abstract

Cited by 25 (2 self)
 Add to MetaCart
We formally characterize partial evaluation of functional programs as a normalization problem in an equational theory, and derive a typebased normalizationbyevaluation algorithm for computing normal forms in this setting. We then establish the correctness of this algorithm using a semantic argument based on Kripke logical relations. For simplicity, the results are stated for a nonstrict, purely functional language; but the methods are directly applicable to stating and proving correctness of typedirected partial evaluation in MLlike languages as well.
Normalization by Evaluation for the Computational LambdaCalculus
 Typed Lambda Calculi and Applications, 5th International Conference, TLCA 2001, number 2044 in Lecture Notes in Computer Science
, 2001
"... We show how a simple semantic characterization of normalization by evaluation for the lambdacalculus can be extended to a similar construction for normalization of terms in the computational lambdacalculus. ..."
Abstract

Cited by 18 (0 self)
 Add to MetaCart
We show how a simple semantic characterization of normalization by evaluation for the lambdacalculus can be extended to a similar construction for normalization of terms in the computational lambdacalculus.
Strong Normalization by TypeDirected Partial Evaluation and RunTime Code Generation
 PROCEEDINGS OF THE SECOND INTERNATIONAL WORKSHOP ON TYPES IN COMPILATION, NUMBER 1473 IN LECTURE NOTES IN COMPUTER SCIENCE
, 1997
"... We investigate the synergy between typedirected partial evaluation and runtime code generation for the Caml dialect of ML. Typedirected partial evaluation maps simply typed, closed Caml values to a representation of their long fijnormal form. Caml uses a virtual machine and has the capability ..."
Abstract

Cited by 17 (7 self)
 Add to MetaCart
We investigate the synergy between typedirected partial evaluation and runtime code generation for the Caml dialect of ML. Typedirected partial evaluation maps simply typed, closed Caml values to a representation of their long fijnormal form. Caml uses a virtual machine and has the capability to load byte code at run time. Representing the long fijnormal forms as byte code gives us the ability to strongly normalize higherorder values (i.e., weak head normal forms in ML), to compile the resulting strong normal forms into byte code, and to load this byte code all in one go, at run time. We conclude
Normalization and partial evaluation
 Applied Semantics, number 2395 in LNCS
, 2002
"... Abstract. We give an introduction to normalization by evaluation and typedirected partial evaluation. We first present normalization by evaluation for a combinatory version of Gödel System T. Then we show normalization by evaluation for typed lambda calculus with β and η conversion. Finally, we int ..."
Abstract

Cited by 17 (0 self)
 Add to MetaCart
Abstract. We give an introduction to normalization by evaluation and typedirected partial evaluation. We first present normalization by evaluation for a combinatory version of Gödel System T. Then we show normalization by evaluation for typed lambda calculus with β and η conversion. Finally, we introduce the notion of binding time, and explain the method of typedirected partial evaluation for a small PCFstyle functional programming language. We give algorithms for both callbyname and callbyvalue versions of this language.
Short Proofs of Normalization for the simplytyped λcalculus, permutative conversions and Gödel's T
 TO APPEAR: ARCHIVE FOR MATHEMATICAL LOGIC
, 1998
"... Inductive characterizations of the sets of terms, the subset of strongly normalizing terms and normal forms are studied in order to reprove weak and strong normalization for the simplytyped λcalculus and for an extension by sum types with permutative conversions. The analogous treatment of a new sy ..."
Abstract

Cited by 16 (1 self)
 Add to MetaCart
Inductive characterizations of the sets of terms, the subset of strongly normalizing terms and normal forms are studied in order to reprove weak and strong normalization for the simplytyped λcalculus and for an extension by sum types with permutative conversions. The analogous treatment of a new system with generalized applications inspired by von Plato's generalized elimination rules in natural deduction shows the flexibility of the approach which does not use the strong computability/candidate style a la Tait and Girard. It is also shown that the extension of the system with permutative conversions by rules is still strongly normalizing, and likewise for an extension of the system of generalized applications by a rule of "immediate simplification". By introducing an innitely branching inductive rule the method even extends to Gödel's T.
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.