Abstract
A program denotes computations in some universe of objects. Abstract interpretation of programs consists in using that denotation to describe computations 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 [72]) is the rule of signs. The text -1515 * 17 may be understood to denote computations on the abstract universe {(+), (-), (±)} where the semantics of arithmetic operators is defined by the rule of signs. The abstract execution -1515 * 17 → -(+) * (+) → (-) * (+) → (-), proves that -1515 * 17 is a negative number. Abstract interpretation 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 → -(+) + (+) → (-) + (+) → (±)). Despite its fundamentally incomplete results abstract interpretation allows the programmer or the compiler to answer questions which do not need full knowledge of program executions or which tolerate an imprecise answer, (e.g. partial correctness proofs of programs ignoring the termination problems, type checking, program optimizations which are not carried in the absence of certainty about their feasibility, …).
Keywords
Related Publications
On the Execution of Fuzzy Programs Using Finite-State Machines
An abstract model for the execution of fuzzy programs using finite-state machines is described, Different ways of executing fuzzy programs are investigated. It is shown that the...
Techniques for Classifying Executions of Deployed Software to Support Software Engineering Tasks
There is an increasing interest in techniques that support analysis and measurement of fielded software systems. These techniques typically deploy numerous instrumented instance...
The processing of metonymy: Evidence from eye movements.
The authors investigated the time course of the processing of metonymic expressions in comparison with literal ones in 2 eye-tracking experiments. Experiment 1 considered the pr...
The temporal logic of programs
A unified approach to program verification is suggested, which applies to both sequential and parallel programs. The main proof method suggested is that of temporal reasoning in...
A general reinforcement learning algorithm that masters chess, shogi, and Go through self-play
One program to rule them all Computers can beat humans at increasingly complex games, including chess and Go. However, these programs are typically constructed for a particular ...
Publication Info
- Year
- 1977
- Type
- article
- Pages
- 238-252
- Citations
- 6099
- Access
- Closed
External Links
Social Impact
Social media, news, blog, policy document mentions
Citation Metrics
Cite This
Identifiers
- DOI
- 10.1145/512950.512973