Thread-Modular Verification for Shared-Memory Programs

  • Cormac Flanagan
  • Stephen N. Freund
  • Shaz Qadeer
Conference paper

DOI: 10.1007/3-540-45927-8_19

Part of the Lecture Notes in Computer Science book series (LNCS, volume 2305)
Cite this paper as:
Flanagan C., Freund S.N., Qadeer S. (2002) Thread-Modular Verification for Shared-Memory Programs. In: Le Métayer D. (eds) Programming Languages and Systems. ESOP 2002. Lecture Notes in Computer Science, vol 2305. Springer, Berlin, Heidelberg

Abstract

Ensuring the reliability of multithreaded software systems is difficult due to the interaction between threads. This paper describes the design and implementation of a static checker for such systems. To avoid considering all possible thread interleavings, the checker uses assumeguarantee reasoning, and relies on the programmer to specify an environment assumption that constrains the interaction between threads. Using this environment assumption, the checker reduces the verification of the original multithreaded program to the verification of several sequential programs, one for each thread. These sequential programs are subsequently analyzed using extended static checking techniques (based on verification conditions and automatic theorem proving). Experience indicates that the checker is capable of handling a range of synchronization disciplines. In addition, the required environment assumptions are simple and intuitive for common synchronization idioms.

Download to read the full conference paper text

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Cormac Flanagan
    • 1
  • Stephen N. Freund
    • 1
  • Shaz Qadeer
    • 1
  1. 1.Compaq Systems Research CenterPalo Alto

Personalised recommendations