• DocumentCode
    2194884
  • Title

    Separation logic: a logic for shared mutable data structures

  • Author

    Reynolds, John C.

  • Author_Institution
    Dept. of Comput. Sci., Carnegie Mellon Univ., Pittsburgh, PA, USA
  • fYear
    2002
  • fDate
    2002
  • Firstpage
    55
  • Lastpage
    74
  • Abstract
    In joint work with Peter O\´Hearn and others, based on early ideas of Burstall, we have developed an extension of Hoare logic that permits reasoning about low-level imperative programs that use shared mutable data structure. The simple imperative programming language is extended with commands (not expressions) for accessing and modifying shared structures, and for explicit allocation and deallocation of storage. Assertions are extended by introducing a "separating conjunction" that asserts that its subformulas hold for disjoint parts of the heap, and a closely related "separating implication". Coupled with the inductive definition of predicates on abstract data structures, this extension permits the concise and flexible description of structures with controlled sharing. In this paper, we survey the current development of this program logic, including extensions that permit unrestricted address arithmetic, dynamically allocated arrays, and recursive procedures. We also discuss promising future directions.
  • Keywords
    computational complexity; data structures; formal logic; Hoare logic; address arithmetic; heap; imperative programming language; low-level imperative programs; program logic; reasoning; recursive procedures; separation logic; shared mutable data structures; Arithmetic; Artificial intelligence; Bibliographies; Computer languages; Computer science; Data structures; Logic arrays; Logic programming; Programmable logic arrays; Reflection;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Logic in Computer Science, 2002. Proceedings. 17th Annual IEEE Symposium on
  • ISSN
    1043-6871
  • Print_ISBN
    0-7695-1483-9
  • Type

    conf

  • DOI
    10.1109/LICS.2002.1029817
  • Filename
    1029817