Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon
ABSTRACT INTERPRETATION : ‘A UNIFIED LATTICE MODEL FOR STATIC ANALYSIS OF PROGRAMS BY CONSTRUCTION OR APPROXIMATION OF FIXPOINTS Patrick Cousot*and Radhia Cousot** Laboratoire d’Informatique, U.S.M.G., BP. 53 38041 Grenoble cedex, France 1. Introduction A program denotes computations in some universe of objects. Abstract interpretation of programs con– sists in using that denotation to describe compu– tations in another universe of abstract objects, so that the results of abstract execution give some information on the actual computations. An intuitive example (which we borrow from Sintzoff 172]) is the rule of signs. The text ‘1515* 17 may be understood to denote computations on the abstract universe {(+), (-), (~)} where the se- mantics of arithmetic operators is defined by the rule of signs. The abstract execution -1515* 17 => -(+) * (+) e> (–) * (+) => (–), proves that –1515 * 17 is a negative number. Abstract interpre– tation is concerned by a particular underlying structure of the usual universe of computations (the sign, in our example). It gives a summary of some facets of the actual executions of a program. In general this summary is simple to obtain but inaccurate (e.g. –1515+17 => –(+)+(+) ‘> (-)+(+) => (f)). Despite its fundamentally in- complete results abstract interpretation allows the programmer or the compiler to answer ques– tions which,do not need full knowled~e of program executions or which tolerate an imprecise answer, (e.g. partial correctness proofs of programs ignO- ring the termination problems, type checking, pro- gram optimizations which are not carried in the absence of certainty about their feasibility, . . .). 2. Section 3 describes the syntax and mathematical semantics of a simple flowchart language, Scott and Strachey[71]. This mathematical semantics is used in section 4 to built a more abstract model of the semantics of programs, in that it ignores the sequencing of control flow. This model is taken to be the most concrete of the abstract interpretatiOns of programs. Section 5 gives the formal definition of the abstract interpretations of a program. * ** Attach= de Recherche au C.N.R.S., Laboratoire Associ6 no 7. This work was supported by IRIA–SESORI under grants 75-035 and 75-160. Abstract program properties are modeled by a com– plete semilattice, Birkhoff[611. Elementary Pro- gram constructs are locally interpreted by order preserving functions which are used to associate a system of recursive equations with a program. The program global properties are then defined as one of the extreme fixpoints of that system, Tarski [55]. The abstraction process is defined in section 6. It is shown that the program properties obtained by an abstract interpretation of a program are consis– tent with those obtained by a more refined inter– pretation of that program. In particular, an ab– stract interpretation may be shown to be consistent with the formal semantics of the language. Levels
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 2
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 15


This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online