Proceedings ArticleDOI
Set constraints for destructive array update optimization
Mitchell Wand,William Clinger +1 more
- pp 184-193
TLDR
It is proved that any sound liveness analysis induces a correct program transformation, and set constraints for an interprocedural update optimization that runs in polynomial time are presented.Abstract:
Destructive array update optimization is critical for writing scientific codes in functional languages. We present set constraints for an interprocedural update optimization that runs in polynomial time. This is a multi pass optimization, involving interprocedural flow analyses for aliasing and liveness. We characterize the soundness of these analyses using small step operational semantics. We have also proved that any sound liveness analysis induces a correct program transformation.read more
Citations
More filters
BookDOI
Theoretical Aspects of Computer Software
TL;DR: A central theme of this paper is the combination of a logical notion of freshness with inductive and coinductive definitions of properties.
Simple Relational Correctness Proofs for Static Analyses and Program Transformations (Revised, Long Version)
TL;DR: It is shown how some classical static analyses for imperative programs, and the optimizing transformations which they enable, may be expressed and proved correct using elementary logical and denotationaltechniques.
Proceedings ArticleDOI
Small bisimulations for reasoning about higher-order imperative programs
Vasileios Koutavas,Mitchell Wand +1 more
TL;DR: This work introduces a new notion of bisimulation for showing contextual equivalence of expressions in an untyped lambda-calculus with an explicit store, and in which all expressed values, including higher-order values, are storable.
Proceedings ArticleDOI
From recursion to iteration: what are the optimizations?
Yanhong A. Liu,Scott D. Stoller +1 more
TL;DR: This paper describes a powerful and systematic method, based on incrementalization, for transforming general recursion into iteration: identify an input increment, derive an incremental version under theinput increment, and form an iterative computation using the incremental version.
Proceedings ArticleDOI
Constraint systems for useless variable elimination
Mitchell Wand,Igor Siveroni +1 more
TL;DR: This work reformulates Shivers' analysis as a set of constraints, and proves that any solution to the constraints is sound: that two computations that differ only on variables marked as useless give the same answer up to useless variables, and hence the sameanswer when the answer is a constant.
References
More filters
Book
Compilers: Principles, Techniques, and Tools
TL;DR: This book discusses the design of a Code Generator, the role of the Lexical Analyzer, and other topics related to code generation and optimization.
Proceedings ArticleDOI
Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints
Patrick Cousot,Radhia Cousot +1 more
TL;DR: In this paper, the abstract interpretation of programs is used to describe computations in another universe of abstract objects, so that the results of abstract execution give some information on the actual computations.
Foundations of Actor Semantics
TL;DR: This thesis extends and unifies the work of Carl Hewitt, Irene Greif, Henry Baker, and Giuseppe Attardi, who developed the mathematical content of the actor message-passing model, and may be proved for the semantics of an actor-based language.
Proceedings ArticleDOI
A flexible approach to interprocedural data flow analysis and programs with recursive data structures
Neil D. Jones,Steven S. Muchnick +1 more
TL;DR: A new approach to data flow analysis of procedural programs and programs with recursive data structures is described, which depends on simulation of the interpreter for the subject programming language using a retrieval function to approximate a program's data structures.
Proceedings ArticleDOI
Data flow analysis is model checking of abstract interpretations
TL;DR: This expository paper simplifies and clarifies Steffen's depiction of data flow analysis (d.f.a.) as model checking: by employing abstract interpretation (a.i.) to generate program traces and by utilizing Kozen's modal mu-calculus to express trace properties, it is expressed in simplest possible terms that a d.
Related Papers (5)
A uniform treatment of order of evaluation and aggregate update
M. Draghicescu,S. Purushothaman +1 more