Abstract Interpretation with Alien Expressions and Heap Structures

  • Bor-Yuh Evan Chang ,
  • Rustan Leino

MSR-TR-2004-115 |

This is an extended version of a paper published at VMCAI 2005.

Publication

The technique of abstract interpretation analyzes a computer program to infer various properties about the program. The particular properties inferred depend on the particular abstract domains used in the analysis. Roughly speaking, the properties representable by an abstract domain follow a domain-specific schema of relations among variables. This paper introduces the congruence-closure abstract domain, which in effect extends the properties representable by a given abstract domain to schemas over arbitrary terms, not just variables. Also, this paper introduces the heap succession abstract domain, which when used as a base domain for the congruence-closure domain, allows given abstract domains to infer properties in a program’s heap. This combination of abstract domains has applications, for example, to the analysis of object-oriented programs.