Results 11  20
of
22
Semantics of an effect analysis for exceptions
 In 3rd ACMSIGPLAN Workshop on Types in Language Design and Implementation (TLDI
, 2007
"... We give a semantics to a polymorphic effect analysis that tracks possiblythrown exceptions and possible nontermination for a higherorder language. The semantics is defined using partial equivalence relations over a standard monadic, domaintheoretic model of the original language and establishes ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
We give a semantics to a polymorphic effect analysis that tracks possiblythrown exceptions and possible nontermination for a higherorder language. The semantics is defined using partial equivalence relations over a standard monadic, domaintheoretic model of the original language and establishes the correctness of both the analysis itself and of the contextual program transformations that it enables.
A logic for information flow analysis with an application to forward slicing of simple imperative programs
 SCIENCE OF COMPUTER PROGRAMMING, SPECIAL ISSUE OF SAS
, 2004
"... We specify an information flow analysis for a simple imperative language, using a Hoarelike logic. The logic facilitates static checking of a larger class of programs than can be checked by extant typebased approaches in which a program is deemed interpretation of program traces that makes indepen ..."
Abstract

Cited by 11 (4 self)
 Add to MetaCart
We specify an information flow analysis for a simple imperative language, using a Hoarelike logic. The logic facilitates static checking of a larger class of programs than can be checked by extant typebased approaches in which a program is deemed interpretation of program traces that makes independence between program variables explicit. Unlike other, more precise, approaches based on Hoare logics, our approach does not require a theorem prover to generate invariants. We demonstrate the modularity of our approach by showing that a frame rule holds in our logic. Finally, we show how our logic can be applied to a program transformation, namely, forward slicing: given a derivation of a program in the logic, with the information that variable l is independent of variable h, the slicing transformation systematically creates the forward lslice of the program: the slice contains all the commands independent of h. We show that the slicing transformation is semantics preserving.
A Typebased Framework for Program Analysis
, 1994
"... . In this paper we present a general framework for typebased analyses of functional programs. Our framework is a generalisation of our earlier work on strictness analysis and was inspired by Burn's logical framework. The framework is parameterised by a set of types to represent properties and inter ..."
Abstract

Cited by 11 (2 self)
 Add to MetaCart
. In this paper we present a general framework for typebased analyses of functional programs. Our framework is a generalisation of our earlier work on strictness analysis and was inspired by Burn's logical framework. The framework is parameterised by a set of types to represent properties and interpretations for constants in the language. To construct a new analysis, the user needs only to supply a model for the types (which properties they denote) and sound rules for the constants. We identify the local properties that must be proven to guarantee the correctness of a specific analysis and algorithm. We illustrate the approach by recasting Hunt and Sand's binding time analysis in our framework. Furthermore we report on experimental results suggesting that our generic inference algorithm can provide the basis for an efficient program analyser. 1 Introduction The first explicit use of types in program analysis was by Kuo and Mishra [14]. They presented a type system for inferring stric...
Bindingtime Analysis: Abstract Interpretation versus Type Inference
 IN PROC. ICCL'94, FIFTH IEEE INTERNATIONAL CONFERENCE ON COMPUTER LANGUAGES
, 1994
"... Bindingtime analysis is important in partial evaluators. Its task is to determine which parts of a program can be evaluated if some of the expected input is known. Two approaches to do this are abstract interpretation and type inference. We compare two specific such analyses to see which one deter ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
Bindingtime analysis is important in partial evaluators. Its task is to determine which parts of a program can be evaluated if some of the expected input is known. Two approaches to do this are abstract interpretation and type inference. We compare two specific such analyses to see which one determines most program parts to be eliminable. The first is a an abstract interpretation approach based on closure analysis and the second is the type inference approach of Gomard and Jones. Both apply to the pure calculus. We prove that the abstract interpretation approach is more powerful than that of Gomard and Jones: the former determines the same and possibly more program parts to be eliminable as the latter.
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...
Analyse Statique De Programmes : Fondements Et Applications
, 1999
"... domains . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.2 Lattices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.3 Specification of analyses . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.4 Semantic correctness . . . . . . . . . . . . . . . . . . . . . . . . ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
domains . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.2 Lattices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.3 Specification of analyses . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.4 Semantic correctness . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2.5 Solving systems of equations . . . . . . . . . . . . . . . . . . . . . 13 1.3 This document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2 Program analysis with conjunctive types 17 2.1 Strictness types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.1.1 Lindenbaum algebras . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2 The strictness logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3 Relationship to abstract interpretation . . . . . . . . . . . . . . . . . . . . 22 2.4 A variation: bindingtime analysis . . . . . . . . . . . . . . . . . . . . . . 22 3 Disjunctions and data structures: Properties 25 3.1 Axiomatisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.1.1 Normal Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2 Abstract domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.2.1 Base Types, Products, Sums and Functions . . . . . . . . . . . . . 31 3.2.2 Recursive Data Structures . . . . . . . . . . . . . . . . . . . . . . 32 3.2.3 Strictness Properties of Lists . . . . . . . . . . . . . . . . . . . . . 35 4 Disjunctions and data structures: Logic 37 4.1 Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.1.1 Strictness Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.1.2 Proving properties for lists . . . . . . . . . . . . . . . . . . . . . . 42 4.2 Bibliographical not...
Representing Demand by Partial Projections
 J. of Functional Programming
, 1993
"... The projectionbased strictness analysis of Wadler and Hughes is elegant and theoretically satisfying except in one respect: the need for lifting. The domains and functions over which the analysis is performed need to be transformed, leading to a less direct correspondence between analysis and progr ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
The projectionbased strictness analysis of Wadler and Hughes is elegant and theoretically satisfying except in one respect: the need for lifting. The domains and functions over which the analysis is performed need to be transformed, leading to a less direct correspondence between analysis and program than might be hoped for. In this paper we shall see that the projection analysis may be reformulated in terms of partial projections, so removing this infelicity. There are additional benefits of the formulation: the two forms of information captured by the projection are distinguished, and the operational significance of the range of the projection fits exactly with the theory of unboxed types. 1 Introduction The method of projectionbased backwards strictness analysis for firstorder, lazy functional languages was first presented by Wadler and Hughes (1987) in 1987, and has undergone significant development since then. The method is elegant and theoretically satisfying except in one r...
Type Theory and Projections for Static Analysis
, 1995
"... A system of annotated types is proposed as a means of describing and inferring static information, such as strictness and constancy, about functional programs. An abstract semantics is given in terms of projections. A close connection between annotated type assignment and projection analysis is demo ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
A system of annotated types is proposed as a means of describing and inferring static information, such as strictness and constancy, about functional programs. An abstract semantics is given in terms of projections. A close connection between annotated type assignment and projection analysis is demonstrated.
PERs from Projections for BindingTime Analysis
 Journal of Lisp and Symbolic Computation
, 1994
"... Firstorder projectionbased bindingtime analysis has proven genuinely useful in partial evaluation [Lau91a, Lau91c]. There have been three notable generalisations of projectionbased analysis to higher order. The first lacked a formal basis [Mog89]; the second used structures strictly more general ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Firstorder projectionbased bindingtime analysis has proven genuinely useful in partial evaluation [Lau91a, Lau91c]. There have been three notable generalisations of projectionbased analysis to higher order. The first lacked a formal basis [Mog89]; the second used structures strictly more general that projections, namely partial equivalence relations (PERs) [HS91]; the third involved a complex construction that gave rise to impractically large abstract domains [Dav93]. This paper presents a technique free of these shortcomings: it is simple, entirely projectionbased, satisfies a formal correctness condition, and gives rise to reasonably small abstract domains. Though the technique is cast in terms of projections, there is also an interpretation in terms of PERs. The principal limitation of the technique is the restriction to monomorphic typing. 1 Introduction and Background We take as given that bindingtime analysis is essential for good partial evaluation, and we do not address...
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...