Results 1  10
of
16
Strictness Analysis in Logical Form
, 1991
"... This paper presents a framework for comparing two strictness analysis techniques: Abstract interpretation and nonstandard type inference. The comparison is based on the representation of a lattice by its ideals. A formal system for deducing inclusions between ideals of a lattice is presented and p ..."
Abstract

Cited by 44 (2 self)
 Add to MetaCart
This paper presents a framework for comparing two strictness analysis techniques: Abstract interpretation and nonstandard type inference. The comparison is based on the representation of a lattice by its ideals. A formal system for deducing inclusions between ideals of a lattice is presented and proved sound and complete. Viewing the ideals as strictness properties we use the formal system to define a program logic for deducing strictness properties of expressions in a typed lambda calculus. This strictness logic is shown to be sound and complete with respect to the abstract interpretation, which establishes the main result that strictness analysis by typeinference and by abstract interpretation are equally powerful techniques. 1 Introduction Abstract interpretation is a wellestablished technique for static analysis of programs. Its virtue is its strong connection with denotational semantics which provides a means of proving the analysis correct. Its vice is that the process of...
A Naïve Time Analysis and its Theory of Cost Equivalence
 Journal of Logic and Computation
, 1995
"... Techniques for reasoning about extensional properties of functional programs are well understood, but methods for analysing the underlying intensional or operational properties have been much neglected. This paper begins with the development of a simple but useful calculus for time analysis of nons ..."
Abstract

Cited by 39 (7 self)
 Add to MetaCart
Techniques for reasoning about extensional properties of functional programs are well understood, but methods for analysing the underlying intensional or operational properties have been much neglected. This paper begins with the development of a simple but useful calculus for time analysis of nonstrict functional programs with lazy lists. One limitation of this basic calculus is that the ordinary equational reasoning on functional programs is not valid. In order to buy back some of these equational properties we develop a nonstandard operational equivalence relation called cost equivalence, by considering the number of computation steps as an `observable' component of the evaluation process. We define this relation by analogy with Park's definition of bisimulation in CCS. This formulation allows us to show that cost equivalence is a contextual congruence (and thus is substitutive with respect to the basic calculus) and provides useful proof techniques for establishing costequivalen...
A Relational Approach to Strictness Analysis for HigherOrder Polymorphic Functions
 In Proc. ACM Symposium on Principles of Programming Languages
, 1991
"... This paper defines the categorical notions of relators and transformations and shows that these concepts enable us to give a semantics for polymorphic, higher order functional programs. We demonstrate the pertinence of this semantics to the analysis of polymorphic programs by proving that strictness ..."
Abstract

Cited by 17 (1 self)
 Add to MetaCart
This paper defines the categorical notions of relators and transformations and shows that these concepts enable us to give a semantics for polymorphic, higher order functional programs. We demonstrate the pertinence of this semantics to the analysis of polymorphic programs by proving that strictness analysis is a polymorphic invariant. 1 Introduction Recently, there has been some effort to construe the semantics of polymorphic functional programming languages using the categorical notion of a natural transformation. The idea can be sketched as follows: we have a "universe of computational discourse" given by some category (in practice, a suitable category of domains). Types are objects of . Type constructions (e.g. product, function space) are functors (of appropriate arity) over . Monomorphic functional programs are morphisms of ; polymorphic programs are natural transformations. E.g. append : 8t: t ? \Theta t ? ! t ? append : (\Delta) ? \Theta (\Delta) ? : ! (\Delta) ? w...
Inference of Polymorphic and Conditional Strictness Properties
 IN CONF. REC. POPL ’98: 25TH ACM SYMP. PRINC. OF PROG. LANGS
, 1998
"... We define an inference system for modular strictness analysis of functional programs by extending a conjunctive strictness logic with polymorphic and conditional properties. This extended set of properties is used to define a syntaxdirected, polymorphic strictness analysis based on polymorphic recu ..."
Abstract

Cited by 16 (0 self)
 Add to MetaCart
We define an inference system for modular strictness analysis of functional programs by extending a conjunctive strictness logic with polymorphic and conditional properties. This extended set of properties is used to define a syntaxdirected, polymorphic strictness analysis based on polymorphic recursion whose soundness is established via a translation from the polymorphic system into the conjunctive system. From the polymorphic analysis, an inference algorithm based on constraint resolution is derived and shown complete for variant of the polymorphic analysis. The algorithm deduces at the same time a property and a set of hypotheses on the free variables of an expression which makes it suitable for analysis of program with module structure.
Uniform Ideals and Strictness Analysis
 In Proc. 18th Int'l Coll. on Automata, Languages and Programming (ICALP
, 1991
"... We propose a notion of uniform ideal (certain Scottclosed sets) to characterise strictness properties. This enables us to explain why Hughes' and Wadler's H projection for lazy list strictness analysis is not in general expressible as an abstract interpretation property of the standard semantics. W ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
We propose a notion of uniform ideal (certain Scottclosed sets) to characterise strictness properties. This enables us to explain why Hughes' and Wadler's H projection for lazy list strictness analysis is not in general expressible as an abstract interpretation property of the standard semantics. We give circumstances when it is so expressible. Doing so casts light on Burn's HB projection and his question of its relationship to H. Uniform ideals are a generalisation of the sets of values corresponding to types in (simple) polymorphic type systems. Wadler's doublylifted abstract domain constructor for lazy lists can be seen as a special case which only uses certain uniform ideals. The conuence of strictness and type theory furthers Kuo and Mishra's notion of \strictness types". Summary of results We characterise strictness properties as uniform ideals. This enables us to give abstract interpretation properties to show that a function on list(t 1 +t 2 ) is Hstrict (Wadler an...
On the Power and Limitations of Strictness Analysis
, 1997
"... this paper, we provide a precise and formal characterizationof the loss of information that leads to this incompleteness. Specifically, we establish the following characterization theorem for Mycroft's strictness analysis method and a natural generalization of his method to nonflat domains called e ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
this paper, we provide a precise and formal characterizationof the loss of information that leads to this incompleteness. Specifically, we establish the following characterization theorem for Mycroft's strictness analysis method and a natural generalization of his method to nonflat domains called eeanalysis: Mycroft's method will deduce a strictness property for program P iff the property is independent of any constant appearing in any evaluation of P . To prove this, we specify a small set of equations called Eaxioms, that capture the information loss in Mycroft's method and develop a new proof technique called Erewriting. Erewriting extends the standard notion of rewriting to permit the use of reductions using Eaxioms interspersed with standard reduction steps. Eaxioms are a syntactic characterization of information loss and Erewriting provides an algorithm independent proof technique for characterizing the power of analysis methods. It can be used to answer questions on completeness and incompleteness of Mycroft's method on certain natural classes of programs. Finally, the techniques developed in this paper provide a general principle for establishing similar results for other analysis methods such as those based on abstract interpretation. As a demonstration of the generality of our technique, we give a characterization theorem for another variation of Mycroft's method called ddanalysis. Categories and Subject Descriptors: D.3.1 [Programming Languages]: Formal Definitions and Theory; D.3.2 [Programming Languages]: Language Classificationsapplicative languages; D.3.4 [Programming Languages]: Processorscompilers ; optimization General Terms: Languages, Theory, Measurement Additional Key Words and Phrases: Program analysis, abstract interpretation, str...
Efficient Computation of Fixpoints that Arise in Complex Program Analysis
"... This paper proposes a model for studying the computation of fixpoints that arise in complex program analysis based on abstract interpretation, and presents an efficient algorithm for computing fixpoints based on the model. Abstract interpretation provides a unified framework for handling interproced ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
This paper proposes a model for studying the computation of fixpoints that arise in complex program analysis based on abstract interpretation, and presents an efficient algorithm for computing fixpoints based on the model. Abstract interpretation provides a unified framework for handling interprocedural analysis of programs with unrestricted pointer manipulation, higherorder functions, and continuations. In the general case, the structure of the fixpoint computation is not known before analysis; that is, the flow graph cannot be determined from the syntax of a program. Abstract interpretation handles this situation easily. In our algorithm, the entailment graph, representing the structure of the fixpoint computation, is developed during analysis. The strategies for determining the evaluation order, which underlie the algorithm, are described. Based on the strategies, local knowledge of the entailment graph at each node is exploited to determine dynamically an effective order of evalu...
Relational Abstract Interpretation of HigherOrder Functional Programs (Extended Abstract)
, 1991
"... We propose a method for the separate static analysis of higherorder functions and procedures using relational abstract domains as opposed to the abstraction of functions by functions on abstract values (as in minimal function graphs). ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
We propose a method for the separate static analysis of higherorder functions and procedures using relational abstract domains as opposed to the abstraction of functions by functions on abstract values (as in minimal function graphs).
Flow Analysis in the Geometry of Interaction
 Proc. 6 th ESOP '96, Linkoping, swe, LNCS 1058
, 1996
"... This paper describes a framework for flow analysis of programs with higherorder functions with normalorder reduction. The framework is based on an abstract machine derived from the Geometry of Interaction semantics for reduction in linear logic proof nets. By standard methods from abstract interpr ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
This paper describes a framework for flow analysis of programs with higherorder functions with normalorder reduction. The framework is based on an abstract machine derived from the Geometry of Interaction semantics for reduction in linear logic proof nets. By standard methods from abstract interpretation the transition system defined by the machine induces a set of equations defining the flow between the program points. This set of equations defines a collecting semantics for the program and is amenable to further analysis by abstractionbased approximation. As examples of its application we show how to obtain information about strictness, controlflow and usage of data.
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...