A semantics for procedure local heaps and its abstractions

Noam Rinetzky*, Jörg Bauer, Thomas Reps, Mooly Sagiv, Reinhard Wilhelm

*Corresponding author for this work

Research output: Contribution to journalConference articlepeer-review


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 semantics, 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 LSC and develops a new static-analysis algorithm using canonical abstraction.

Original languageEnglish
Pages (from-to)296-309
Number of pages14
JournalConference Record of the Annual ACM Symposium on Principles of Programming Languages
StatePublished - 2005
EventPOPL 2005: The 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages - Long Beach, CA, United States
Duration: 12 Jan 200514 Jan 2005


  • 3-valued logic
  • Abstract interpretation
  • Shape analysis
  • Static analysis


Dive into the research topics of 'A semantics for procedure local heaps and its abstractions'. Together they form a unique fingerprint.

Cite this