This preview shows pages 1–2. Sign up to view the full content.
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
75035
and
75160.
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
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
This is the end of the preview. Sign up
to
access the rest of the document.
 Winter '11
 DavidNotikin

Click to edit the document details