A semantics for procedure local heaps and its abstractions

Noam Rinetzky, J�rg Bauer, Thomas Reps, Mooly Sagiv, Reinhard Wilhelm
2005 Proceedings of the 32nd ACM SIGPLAN-SIGACT sysposium on Principles of programming languages - POPL '05  
The goal of this work is to develop compile-time algorithms for automatically verifying properties of imperative programs that manipulate dynamically allocated storage. The paper presents an analysis method that uses a characterization of a procedure's behavior in which parts of the heap not relevant to the procedure are ignored. The paper has two main parts: The first part introduces a non-standard concrete semantics, LSL, in which called procedures are only passed parts of the heap. In this
more » ... mantics, objects are treated specially when they separate the "local heap" that can be mutated by a procedure from the rest of the heap, which-from the viewpoint of that procedure-is non-accessible and immutable. The second part concerns abstract interpretation of LSL and develops a new static-analysis algorithm using canonical abstraction. It also provides insight into Deutsch's mayalias algorithm.
doi:10.1145/1040305.1040330 dblp:conf/popl/RinetzkyBRSW05 fatcat:ipb3o44bbjd2jhngsh2wouhgre