Weak updates and separation logic

Gang Tan, Zhong Shao, Xinyu Feng, Hongxu Cai

Research output: Contribution to journalArticlepeer-review

2 Scopus citations


Separation logic provides a simple but powerful technique for reasoning about low-level imperative programs that use shared data structures. Unfortunately, separation logic 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 separation logic when reasoning about the interaction between many high-level languages (e.g., ML, Java, C#) and low-level ones since the 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 SL w, a logic that extends separation logic with reference types and elegantly reasons about the interaction between strong and weak updates. We describe a semantic framework for reference types, which is used to prove the soundness of SL w. Finally, we show how to extend SL w with concurrency.

Original languageEnglish (US)
Pages (from-to)3-29
Number of pages27
JournalNew Generation Computing
Issue number1
StatePublished - Jan 2011

All Science Journal Classification (ASJC) codes

  • Software
  • Theoretical Computer Science
  • Hardware and Architecture
  • Computer Networks and Communications


Dive into the research topics of 'Weak updates and separation logic'. Together they form a unique fingerprint.

Cite this