Results 1 
8 of
8
A Type System Equivalent to Flow Analysis
 ACM Transactions on Programming Languages and Systems
, 1995
"... Flowbased safety analysis of higherorder languages has been studied by Shivers, and Palsberg and Schwartzbach. Open until now is the problem of finding a type system that accepts exactly the same programs as safety analysis. In this paper we prove that Amadio and Cardelli's type system with subtyp ..."
Abstract

Cited by 87 (16 self)
 Add to MetaCart
Flowbased safety analysis of higherorder languages has been studied by Shivers, and Palsberg and Schwartzbach. Open until now is the problem of finding a type system that accepts exactly the same programs as safety analysis. In this paper we prove that Amadio and Cardelli's type system with subtyping and recursive types accepts the same programs as a certain safety analysis. The proof involves mappings from types to flow information and back. As a result, we obtain an inference algorithm for the type system, thereby solving an open problem. 1 Introduction 1.1 Background Many program analyses for higherorder languages are based on flow analysis, also known as closure analysis. Examples include various analyses in the Standard ML of New Jersey compiler [3], and the bindingtime analyses for Scheme in the partial evaluators Schism [5] and Similix [4]. Such analyses have the advantage that they can be applied to untyped languages. This is in contrast to more traditional abstract inter...
Closure Analysis in Constraint Form
 ACM Transactions on Programming Languages and Systems
, 1995
"... Interpretation Bondorf's definition can be simplified considerably. To see why, consider the second component of CMap(E) \Theta CEnv(E). This component is updated only in Closure Analysis in Constraint Form \Delta 9 b(E 1 @ i E 2 )¯ae and read only in b(x l )¯ae. The key observation is that both ..."
Abstract

Cited by 57 (5 self)
 Add to MetaCart
Interpretation Bondorf's definition can be simplified considerably. To see why, consider the second component of CMap(E) \Theta CEnv(E). This component is updated only in Closure Analysis in Constraint Form \Delta 9 b(E 1 @ i E 2 )¯ae and read only in b(x l )¯ae. The key observation is that both these operations can be done on the first component instead. Thus, we can omit the use of CEnv(E). By rewriting Bondorf's definition according to this observation, we arrive at the following definition. As with Bondorf's definition, we assume that all labels are distinct. Definition 2.3.1. We define m : (E : ) ! CMap(E) ! CMap(E) m(x l )¯ = ¯ m( l x:E)¯ = (m(E)¯) t h[[ l ]] 7! flgi m(E 1 @ i E 2 )¯ = (m(E 1 )¯) t (m(E 2 )¯) t F l2¯(var(E1 )) (h[[ l ]] 7! ¯(var(E 2 ))i t h[[@ i ]] 7! ¯(var(body(l)))i) . We can now do closure analysis of E by computing fix(m(E)). A key question is: is the simpler abstract interpretation equivalent to Bondorf's? We might attempt to prove this u...
Syntactic Accidents in Program Analysis: On the Impact of the CPS Transformation
 Journal of Functional Programming
, 2000
"... Our results formalize and confirm a folklore theorem about traditional bindingtime analysis, namely that CPS has a positive effect on binding times. What may be more surprising is that the benefit does not arise from a standard refinement of program analysis, as, for instance, duplicating continuati ..."
Abstract

Cited by 25 (9 self)
 Add to MetaCart
Our results formalize and confirm a folklore theorem about traditional bindingtime analysis, namely that CPS has a positive effect on binding times. What may be more surprising is that the benefit does not arise from a standard refinement of program analysis, as, for instance, duplicating continuations.
Compositional and Inductive Semantic Definitions in Fixpoint, Equational, Constraint, Closurecondition, Rulebased and GameTheoretic Form
, 1995
"... We present a language and semanticsindependent, compositional and inductive method for specifying formal semantics or semantic properties of programs in equivalent fixpoint, equational, constraint, closurecondition, rulebased and gametheoretc form. The definitional method is obtained by extendin ..."
Abstract

Cited by 24 (10 self)
 Add to MetaCart
We present a language and semanticsindependent, compositional and inductive method for specifying formal semantics or semantic properties of programs in equivalent fixpoint, equational, constraint, closurecondition, rulebased and gametheoretc form. The definitional method is obtained by extending settheoretic definitions in the context of partial orders. It is parameterized by the language syntax, by the semantic domains and by the semantic transformers corresponding to atomic and compound program components. The definitional method is shown to be preserved by abstract interpretation in either fixpoint, equational, constraint, closurecondition, rulebased or gametheoretic form. The features common to all possible instantiations are factored out thus allowing for results of general scope such as welldefinedness, semantic equivalence, soundness and relative completeness of abstract interpretations, etc. to be proved compositionally in a general language and semanticsindependent framework.
A Unified Framework for BindingTime Analysis
 Colloquium on Formal Approaches in Software Engineering (FASE '97), volume 1214 of Lect
, 1997
"... . Bindingtime analysis is a crucial part of offline partial evaluation. It is often specified as a nonstandard type system. Many typebased bindingtime analyses are reminiscent of simple type systems with additional features like recursive types. We make this connection explicit by expressing bind ..."
Abstract

Cited by 7 (3 self)
 Add to MetaCart
. Bindingtime analysis is a crucial part of offline partial evaluation. It is often specified as a nonstandard type system. Many typebased bindingtime analyses are reminiscent of simple type systems with additional features like recursive types. We make this connection explicit by expressing bindingtime analysis with annotated type systems that separate the concerns of type inference from those of bindingtime annotation. The separation enables us to explore a design space for bindingtime analysis by varying the underlying type system and the annotation strategy independently. The result is a classification of different monovariant bindingtime analyses which allows us to compare their relative power. Due to the systematic approach we uncover some novel analyses. A partial evaluator separates the computation of a source program into two or more stages [7, 20]. Using the (static) input of the first stage it transforms a source program into a specialized residual program. Application...
BindingTime Analysis and Strictness Analysis by Abstract Interpretation
"... Interpretation Franck V'edrine Laboratoire Informatique de l' ' Ecole Normale Sup'erieure 45 rue d'Ulm, 75230 Paris Cedex 05 FRANCE email: vedrine@dmi.ens.fr Abstract. Given a description of inputs and parameters in a program, a BindingTime Analysis determines parts of a program which can be eval ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
Interpretation Franck V'edrine Laboratoire Informatique de l' ' Ecole Normale Sup'erieure 45 rue d'Ulm, 75230 Paris Cedex 05 FRANCE email: vedrine@dmi.ens.fr Abstract. Given a description of inputs and parameters in a program, a BindingTime Analysis determines parts of a program which can be evaluated at compiletime. A Strictness Analysis determines parts of a program, whose early evaluation does not change the value of the result. In this paper, we present an analysis which subsumes both analyses for a firstorder functional language. The analysis is formulated in terms of Abstract Interpretation based upon approximation of a fixpoint collecting semantics using Galois connections. 1 Introduction BindingTime Analysis (B.T.A) is useful for partial evaluation. It finds out which parts of a program can be evaluated at compiletime with respect to well known arguments, or more generally, when a dynamic expression can be unfrozen. Combined with Strictness Analysis, it enables to class...
Comparing Flowbased Bindingtime Analyses
 PROC. TAPSOFT’95, LNCS
, 1995
"... Bindingtime analyses based on flow analysis have been presented by ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Bindingtime analyses based on flow analysis have been presented by
BindingTime Analysis for Standard ML
 Lisp and Symbolic Computation
, 1995
"... We present an efficient base algorithm for bindingtime analysis based on constraint solving and the unionfind algorithm. In practice it has been used to handle all of Standard ML except modules and we show the principles of how constraints can be used for bindingtime analysis of Standard ML; in p ..."
Abstract
 Add to MetaCart
We present an efficient base algorithm for bindingtime analysis based on constraint solving and the unionfind algorithm. In practice it has been used to handle all of Standard ML except modules and we show the principles of how constraints can be used for bindingtime analysis of Standard ML; in particular we show how to bindingtime analyse nested pattern matching. To the best of our knowledge no previous bindingtime analysis has treated nested pattern matching. This article is partly based on [BW93] in which we document the development of a semanticsbased compiler generator, MLMix, for Standard ML programs. 1 Introduction There are two common ways of doing bindingtime analysis: by fixedpoint iteration and by constraint solving. Analyses based on the former method tend to be stronger [PS94], but have so far been rather slow (cubic complexity for higherorder languages) and thus impractical for large programs. Analyses based on the latter method are as fast as we can expect ...