Results 1 
6 of
6
The essence of etaexpansion in partial evaluation
 LISP AND SYMBOLIC COMPUTATION
, 1995
"... Selective etaexpansion is a powerful "bindingtime improvement", i.e., a sourceprogram modification that makes a partial evaluator yield better results. But like most bindingtime improvements, the exact problem it solves and the reason why have not been formalized and are only understoo ..."
Abstract

Cited by 34 (11 self)
 Add to MetaCart
Selective etaexpansion is a powerful "bindingtime improvement", i.e., a sourceprogram modification that makes a partial evaluator yield better results. But like most bindingtime improvements, the exact problem it solves and the reason why have not been formalized and are only understood by few. In this paper, we describe the problem and the effect of etaredexes in terms of monovariant bindingtime propagation: etaredexes preserve the static data ow of a source program by interfacing static higherorder values in dynamic contexts and dynamic higherorder values in static contexts. They contribute to two distinct bindingtime improvements. We present two extensions of Gomard's monovariant bindingtime analysis for the purecalculus. Our extensions annotate and etaexpandterms. The rst one etaexpands static higherorder values in dynamic contexts. The second also etaexpands dynamic higherorder values in static contexts. As a significant application, we show that our first bindingtime analysis suffices to reformulate the traditional formulation of a CPS transformation into a modern onepass CPS transformer. This bindingtime improvement is known, but it is still left unexplained in contemporary literature, e.g., about "cpsbased" partial evaluation. We also outline the counterpart of etaexpansion for partially static data structures.
Correctness of Bindingtime Analysis
, 1993
"... A bindingtime analysis is correct if it always produces consistent bindingtime information. Consistency prevents partial evaluators from "going wrong". A sufficient and decidable condition for consistency, called wellannotatedness, was first presented by Gomard and Jones. In this paper ..."
Abstract

Cited by 17 (6 self)
 Add to MetaCart
A bindingtime analysis is correct if it always produces consistent bindingtime information. Consistency prevents partial evaluators from "going wrong". A sufficient and decidable condition for consistency, called wellannotatedness, was first presented by Gomard and Jones. In this paper we prove that a weaker condition implies consistency. Our condition is decidable, subsumes the one of Gomard and Jones, and was first studied by Schwartzbach and the present author. Our result implies the correctness of the bindingtime analysis of Mogensen, and it indicates the correctness of the core of the bindingtime analyses of Bondorf and Consel. We also prove that all partial evaluators will on termination have eliminated all "eliminable"marked parts of an input which satisfies our condition. This generalizes a result of Gomard. Our development is for the pure calculus with explicit bindingtime annotations. 1 Introduction A partial evaluator is an implementation of Kleene's S m n theorem....
Functor Categories and TwoLevel Languages
 In Foundations of Software Science and Computation Structures (FoSSaCS
, 1998
"... We propose a denotational semantics for the twolevel language of [GJ91, Gom92], and prove its correctness w.r.t. a standard denotational semantics. Other researchers (see [Gom91, GJ91, Gom92, JGS93, HM94]) have claimed correctness for lambdamix (or extensions of it) based on denotational models, b ..."
Abstract

Cited by 15 (4 self)
 Add to MetaCart
(Show Context)
We propose a denotational semantics for the twolevel language of [GJ91, Gom92], and prove its correctness w.r.t. a standard denotational semantics. Other researchers (see [Gom91, GJ91, Gom92, JGS93, HM94]) have claimed correctness for lambdamix (or extensions of it) based on denotational models, but the proofs of such claims rely on imprecise definitions and are basically awed. At a technical level there are two important differences between our model and more naive models in Cpo: the domain for interpreting dynamic expressions is more abstract (we interpret code as terms modulo conversion), the semantics of newname is handled differently (we exploit functor categories). The key idea is to interpret a twolevel language in a suitable functor category Cpo D op rather than Cpo. The semantics of newname follows the ideas pioneered by Oles and Reynolds for modeling the stack discipline of Algollike languages. Indeed, we can think of the objects of D (i.e. the natural numbers) as ...
Polymorphic Binding Time Analysis
, 1993
"... Abstract Binding time analysis has proved to be a valuable preanalysis for partial evaluation. Until now (almost) all binding time analyses have been monovariant, such that binding time analysis could assign only one binding time description to each function definition. This means that if a functio ..."
Abstract
 Add to MetaCart
Abstract Binding time analysis has proved to be a valuable preanalysis for partial evaluation. Until now (almost) all binding time analyses have been monovariant, such that binding time analysis could assign only one binding time description to each function definition. This means that if a function f (x) is called once with dynamic data, no reductions on x can be performed in the body of f even when f is called with static data.
Design, Analysis and Reasoning about Tools: Abstracts from the Third Workshop
, 1993
"... s from the Third Workshop Flemming Nielson (editor) October 1993 1 Introduction The third DART workshop took place on Thursday August l9th and Friday August 20th at the Department of Computer Science (DIKU) at the University of Copenhagen; it was organized by Mads Rosendahl and others at DIKU, and ..."
Abstract
 Add to MetaCart
s from the Third Workshop Flemming Nielson (editor) October 1993 1 Introduction The third DART workshop took place on Thursday August l9th and Friday August 20th at the Department of Computer Science (DIKU) at the University of Copenhagen; it was organized by Mads Rosendahl and others at DIKU, and Torben Amtoft and Susanne Brønberg helped producing this report. The first day comprised survey presentations whereas the second contained more research oriented talks. The primary aim of the workshop was to increase the awareness of DART participants for each other's work, to stimulate collaboration between the di#erent groups, and to inform Danish industry about the skills possessed by the groups. The DART project started in March 1991 (prematurely terminating a smaller project on Formal Implementation, Transformation and Analysis of Programs) and is funded by the Danish Research Councils as part of the Danish Research Programme on Informatics. To date it has received about 8 million Danis...
EtaRedexes in Partial Evaluation
"... Sourceprogram modifications can make a partial evaluator yield dramatically better results. For example, etaredexes can preserve static data flow by acting as an interface between values and contexts. ..."
Abstract
 Add to MetaCart
(Show Context)
Sourceprogram modifications can make a partial evaluator yield dramatically better results. For example, etaredexes can preserve static data flow by acting as an interface between values and contexts.