Results 1 
8 of
8
A temporallogic approach to bindingtime analysis
 In Proceedings, 11 th Annual IEEE Symposium on Logic in Computer Science
, 1996
"... is permitted for educational or research use on condition that this copyright notice is included in any copy. See back inner page for a list of recent publications in the BRICS Report Series. Copies may be obtained by contacting: BRICS ..."
Abstract

Cited by 84 (5 self)
 Add to MetaCart
is permitted for educational or research use on condition that this copyright notice is included in any copy. See back inner page for a list of recent publications in the BRICS Report Series. Copies may be obtained by contacting: BRICS
Efficient analyses for realistic offline partial evaluation
 Journal of Functional Programming
, 1993
"... Based on Henglein’s efficient bindingtime analysis for the lambda calculus (with constants and “fix”) [Hen91], we develop four efficient analyses for use in the preprocessing phase of Similix, a selfapplicable partial evaluator for a higherorder subset of Scheme. The analyses developed in this pa ..."
Abstract

Cited by 49 (1 self)
 Add to MetaCart
Based on Henglein’s efficient bindingtime analysis for the lambda calculus (with constants and “fix”) [Hen91], we develop four efficient analyses for use in the preprocessing phase of Similix, a selfapplicable partial evaluator for a higherorder subset of Scheme. The analyses developed in this paper are almostlinear in the size of the analysed program. (1) A flow analysis determines possible value flow between lambdaabstractions and function applications and between constructor applications and selector/predicate applications. The flow analysis is not particularly biased towards partial evaluation; the analysis corresponds to the closure analysis of [Bon91b]. (2) A (monovariant) bindingtime analysis distinguishes static from dynamic values; the analysis treats both higherorder functions and partially static data structures. (3) A new isused analysis, not present in [Bon91b], finds a nonminimal bindingtime annotation which is “safe ” in a certain way: a firstorder value may only become static if its result is “needed ” during specialization; this “poor man’s generalization ” [Hol88] increases termination of specialization. (4) Finally, an evaluationorder dependency analysis ensures that the order of sideeffects is preserved in the residual program. The four analyses are performed
Proving the Correctness of RecursionBased Automatic Program Transformations
 Theoretical Computer Science
, 1996
"... This paper shows how the Improvement Theorema semantic condition ..."
Abstract

Cited by 32 (4 self)
 Add to MetaCart
This paper shows how the Improvement Theorema semantic condition
Total Correctness by Local Improvement in Program Transformation
 In Proceedings of the 22nd Annual ACM SIGPLANSIGACT Symposium on Principles of Programming Languages (POPL
, 1995
"... The goal of program transformation is to improve efficiency while preserving meaning. One of the best known transformation techniques is Burstall and Darlington's unfoldfold method. Unfortunately the unfoldfold method itself guarantees neither improvement in efficiency nor totalcorrectness. ..."
Abstract

Cited by 20 (3 self)
 Add to MetaCart
The goal of program transformation is to improve efficiency while preserving meaning. One of the best known transformation techniques is Burstall and Darlington's unfoldfold method. Unfortunately the unfoldfold method itself guarantees neither improvement in efficiency nor totalcorrectness. The correctness problem for unfoldfold is an instance of a strictly more general problem: transformation by locally equivalencepreserving steps does not necessarily preserve (global) equivalence. This paper presents a condition for the total correctness of transformations on recursive programs, which, for the first time, deals with higherorder functional languages (both strict and nonstrict) including lazy data structures. The main technical result is an improvement theorem which says that if the local transformation steps are guided by certain optimisation concerns (a fairly natural condition for a transformation), then correctness of the transformation follows. The improvement theorem make...
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.
General Terms: Languages,Theory
"... We show that a type system based on the intuitionistic modal logic S4 provides an expressive framework for specifying and analyzing computation stages in the context of typed λcalculi and functionallanguages. We directly demonstrate the sense in which our λ→2 ecalculus captures staging, and also g ..."
Abstract
 Add to MetaCart
We show that a type system based on the intuitionistic modal logic S4 provides an expressive framework for specifying and analyzing computation stages in the context of typed λcalculi and functionallanguages. We directly demonstrate the sense in which our λ→2 ecalculus captures staging, and also give a conservative embedding of Nielson & Nielson’s twolevel functional language in our functional language MiniML2, thus proving that bindingtime correctness is equivalent to modal correctness on this fragment. In addition, MiniML2 can also express immediate evaluation and sharing of code across multiple stages, thus supporting runtime code generation as well as partial evaluation.
F.4.1 [Mathematical Logic and Formal Languages]: Mathematical Logic—lambda calculus and
"... Abstract. We show that a type system based on the intuitionistic modal logic S4 provides an expressive framework for specifying and analyzing computation stages in the context of typed �calculi and functional languages. We directly demonstrate the sense in which our � e 3 �calculus captures stagin ..."
Abstract
 Add to MetaCart
Abstract. We show that a type system based on the intuitionistic modal logic S4 provides an expressive framework for specifying and analyzing computation stages in the context of typed �calculi and functional languages. We directly demonstrate the sense in which our � e 3 �calculus captures staging, and also give a conservative embedding of Nielson and Nielson’s twolevel functional language in our functional language MiniML � , thus proving that bindingtime correctness is equivalent to modal correctness on this fragment. In addition, MiniML � can also express immediate evaluation and sharing of code across multiple stages, thus supporting runtime code generation as well as partial evaluation.
A Semantic Model of Binding Times for Safe Partial Evaluation
 Proc. Programming Languages: Implementations, Logics and Programs (PLILP
"... In program optimisation an analysis determines some information about a portion of a program, which is then used to justify certain transformations on the code. The correctness of the optimisation can be argued monolithically by considering the behaviour of the optimiser and a particular analysis i ..."
Abstract
 Add to MetaCart
In program optimisation an analysis determines some information about a portion of a program, which is then used to justify certain transformations on the code. The correctness of the optimisation can be argued monolithically by considering the behaviour of the optimiser and a particular analysis in conjunction. Alternatively, correctness can be established by finding an interface, a semantic property, between the analysis and the transformation. The semantic property provides modularity by giving a specification for a systematic construction of the analysis, and the program transformations are justified via the semantic properties. This paper considers the problem of partial evaluation. The safety of a partial evaluator ("it does not go wrong") has previously been argued in the monolithic style by considering the behaviour of a particular bindingtime analysis and program specialiser in conjunction. In this paper we pursue the alternative approach of justifying the bindingtime prop...