Weak updates and separation logic

  • Authors:
  • Gang Tan;Zhong Shao;Xinyu Feng;Hongxu Cai

  • Affiliations:
  • Lehigh University,;Yale University,;Toyota Technological Institute at Chicago,;Google Inc.,

  • Venue:
  • APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Separation Logic (SL) provides a simple but powerful technique for reasoning about imperative programs that use shared data structures. Unfortunately, SL supports only "strong updates", in which mutation to a heap location is safe only if a unique reference is owned. This limits the applicability of SL when reasoning about the interaction between many high-level languages (e.g., ML, Java, C#) and low-level ones since these high-level languages do not support strong updates. Instead, they adopt the discipline of "weak updates", in which there is a global "heap type" to enforce the invariant of type-preserving heap updates. We present SLw, a logic that extends SL with reference types and elegantly reasons about the interaction between strong and weak updates. We also describe a semantic framework for reference types; this framework is used to prove the soundness of SLw.