Results 1  10
of
619
Automatic Discovery of Linear Restraints Among Variables of a Program
, 1978
"... The model of abstract interpretation of programs developed by Cousot and Cousot [2nd ISOP, 1976], Cousot and Cousot [POPL 1977] and Cousot [PhD thesis 1978] is applied to the static determination of linear equality or inequality invariant relations among numerical variables of programs. ..."
Abstract

Cited by 733 (47 self)
 Add to MetaCart
The model of abstract interpretation of programs developed by Cousot and Cousot [2nd ISOP, 1976], Cousot and Cousot [POPL 1977] and Cousot [PhD thesis 1978] is applied to the static determination of linear equality or inequality invariant relations among numerical variables of programs.
ControlFlow Analysis of HigherOrder Languages
, 1991
"... representing the official policies, either expressed or implied, of ONR or the U.S. Government. Keywords: dataflow analysis, Scheme, LISP, ML, CPS, type recovery, higherorder functions, functional programming, optimising compilers, denotational semantics, nonstandard Programs written in powerful, ..."
Abstract

Cited by 362 (10 self)
 Add to MetaCart
representing the official policies, either expressed or implied, of ONR or the U.S. Government. Keywords: dataflow analysis, Scheme, LISP, ML, CPS, type recovery, higherorder functions, functional programming, optimising compilers, denotational semantics, nonstandard Programs written in powerful, higherorder languages like Scheme, ML, and Common Lisp should run as fast as their FORTRAN and C counterparts. They should, but they don’t. A major reason is the level of optimisation applied to these two classes of languages. Many FORTRAN and C compilers employ an arsenal of sophisticated global optimisations that depend upon dataflow analysis: commonsubexpression elimination, loopinvariant detection, inductionvariable elimination, and many, many more. Compilers for higherorder languages do not provide these optimisations. Without them, Scheme, LISP and ML compilers are doomed to produce code that runs slower than their FORTRAN and C counterparts. The problem is the lack of an explicit controlflow graph at compile time, something which traditional dataflow analysis techniques require. In this dissertation, I present a technique for recovering the controlflow graph of a Scheme program at compile time. I give examples of how this information can be used to perform several dataflow analysis optimisations, including copy propagation, inductionvariable elimination, uselessvariable elimination, and type recovery. The analysis is defined in terms of a nonstandard semantic interpretation. The denotational semantics is carefully developed, and several theorems establishing the correctness of the semantics and the implementing algorithms are proven. iii ivTo my parents, Julia and Olin. v viContents
The Octagon Abstract Domain
"... ... domain for static analysis by abstract interpretation. It extends a former numerical abstract domain based on DifferenceBound Matrices and allows us to represent invariants of the form (±x ± y ≤ c), where x and y are program variables and c is a real constant. We focus on giving an efficient re ..."
Abstract

Cited by 327 (24 self)
 Add to MetaCart
... domain for static analysis by abstract interpretation. It extends a former numerical abstract domain based on DifferenceBound Matrices and allows us to represent invariants of the form (±x ± y ≤ c), where x and y are program variables and c is a real constant. We focus on giving an efficient representation based on DifferenceBound Matrices—O(n²) memory cost, where n is the number of variables—and graphbased algorithms for all common abstract operators—O(n³) time cost. This includes a normal form algorithm to test equivalence of representation and a widening operator to compute least fixpoint approximations.
« An Informal Overview of Abstract Interpretation »
"... cousot mit edu www.mit.edu/~cousot Course 16.399: “Abstract interpretation” ..."
Abstract
 Add to MetaCart
cousot mit edu www.mit.edu/~cousot Course 16.399: “Abstract interpretation”
Compiling with Proofs
, 1998
"... One of the major challenges of building software systems is to ensure that the various components fit together in a welldefined manner. This problem is exacerbated by the recent advent of software components whose origin is unknown or inherently untrusted, such as mobile code or user extensions ..."
Abstract

Cited by 152 (9 self)
 Add to MetaCart
One of the major challenges of building software systems is to ensure that the various components fit together in a welldefined manner. This problem is exacerbated by the recent advent of software components whose origin is unknown or inherently untrusted, such as mobile code or user extensions for operatingsystem kernels or database servers. Such extensions are useful for implementing an e#cient interaction model between a client and a server because several data exchanges between them can be saved at the cost of a single code exchange. In this dissertation, I propose to tackle such system integrity and security problems with techniques from mathematical logic and programminglanguage semantics. I propose a framework, called proofcarrying code, in which the extension provider sends along with the extension code a representation of a formal proof that the code meets certain safety and correctness requirements. Then, the code receiver can ensure the safety of executing the...
On the Completeness of Model Checking
 Proc. 10 th ESOP ' 2001 , Genova, IT, 26 Apr. 2001, LNCS 2028
, 2001
"... . In POPL'00, Cousot and Cousot introduced and studied a novel general temporal specication language, called x ? calculus, in particular featuring a natural and rich timesymmetric tracebased semantics. The classical statebased model checking of the x ? calculus is an abstract interpr ..."
Abstract

Cited by 9 (4 self)
 Add to MetaCart
. In POPL'00, Cousot and Cousot introduced and studied a novel general temporal specication language, called x ? calculus, in particular featuring a natural and rich timesymmetric tracebased semantics. The classical statebased model checking of the x ? calculus is an abstract
A new numerical abstract domain based on differencebound matrices
 In PADO II, volume 2053 of LNCS
, 2001
"... Abstract. This paper presents a new numerical abstract domain for static analysis by abstract interpretation. This domain allows us to represent invariants of the form (x − y ≤ c) and (±x ≤ c), where x and y are variables values and c is an integer or real constant. Abstract elements are represented ..."
Abstract

Cited by 78 (11 self)
 Add to MetaCart
Abstract. This paper presents a new numerical abstract domain for static analysis by abstract interpretation. This domain allows us to represent invariants of the form (x − y ≤ c) and (±x ≤ c), where x and y are variables values and c is an integer or real constant. Abstract elements are represented by DifferenceBound Matrices, widely used by modelcheckers, but we had to design new operators to meet the needs of abstract interpretation. The result is a complete lattice of infinite height featuring widening, narrowing and common transfer functions. We focus on giving an efficient O(n 2) representation and graphbased O(n 3) algorithms—where n is the number of variables—and claim that this domain always performs more precisely than the wellknown interval domain. To illustrate the precision/cost tradeoff of this domain, we have implemented simple abstract interpreters for toy imperative and parallel languages which allowed us to prove some nontrivial algorithms correct. 1
Precise Interprocedural Analysis through Linear Algebra
, 2004
"... We apply linear algebra techniques to precise interprocedural dataflow analysis. Specifically, we describe analyses that determine for each program point identities that are valid among the program variables whenever control reaches that program point. Our analyses fully interpret assignment stateme ..."
Abstract

Cited by 82 (12 self)
 Add to MetaCart
We apply linear algebra techniques to precise interprocedural dataflow analysis. Specifically, we describe analyses that determine for each program point identities that are valid among the program variables whenever control reaches that program point. Our analyses fully interpret assignment statements with affine expressions on the right hand side while considering other assignments as nondeterministic and ignoring conditions at branches. Under this abstraction, the analysis computes the set of all affine relations and, more generally, all polynomial relations of bounded degree precisely. The running time of our algorithms is linear in the program size and polynomial in the number of occurring variables. We also show how to deal with affine preconditions and local variables and indicate how to handle parameters and return values of procedures.
Demanddriven Computation of Interprocedural Data Flow
, 1995
"... This paper presents a general framework for deriving demanddriven algorithms for interprocedural data flow analysis of imperative programs. The goal of demanddriven analysis is to reduce the time and/or space overhead of conventional exhaustive analysis by avoiding the collection of information tha ..."
Abstract

Cited by 82 (9 self)
 Add to MetaCart
This paper presents a general framework for deriving demanddriven algorithms for interprocedural data flow analysis of imperative programs. The goal of demanddriven analysis is to reduce the time and/or space overhead of conventional exhaustive analysis by avoiding the collection of information that is not needed. In our framework, a demand for data flow information is modeled as a set of data flow queries. The derived demanddriven algorithms find responses to these queries through a partial reversal of the respective data flow analysis. Depending on whether minimizing time or space is of primary concern, result caching may be incorporated in the derived algorithm. Our framework is applicable to interprocedural data flow problems with a finite domain set. If the problem's flow functions are distributive, the derived demand algorithms provide as precise information as the corresponding exhaustive analysis. For problems with monotone but nondistributive flow functions the provided dat...
Functional Compositions of Abstract Interpretations
, 1997
"... In the context of standard abstract interpretation theory, we define and study a systematic operator of reduced relative power for composing functionally abstract domains. The reduced relative power of two abstract domains D1 (the exponent) and D2 (the base) consists in a suitably defined lattice ..."
Abstract
 Add to MetaCart
of monotone functions from D1 to D2 , called dependencies, and it is a generalization of the Cousot and Cousot operator of reduced (cardinal) power. The relationship between the reduced relative power and Nielson's tensor pr...
Results 1  10
of
619