A Modular Checker for Multithreaded Programs
Purchase on Springer.com
$29.95 / €24.95 / £19.95*
* Final gross prices may vary according to local VAT.
Designing multithreaded software systems is prone to errors due to the difficulty of reasoning about multiple interleaved threads of control operating on shared data. Static checking, with the potential to analyze the program’s behavior over all execution paths and for all thread interleavings, is a powerful debugging tool. We have built a scalable and expressive static checker called Calvin for multithreaded programs. To handle realistic programs, Calvin performs modular checking of each procedure called by a thread using specifications of other procedures and other threads. The checker leverages off existing sequential program verification techniques based on automatic theorem proving. To evaluate the checker, we have applied it to several real-world programs. Our experience indicates that Calvin has a moderate annotation overhead and can catch defects in multithreaded programs, including synchronization errors and violation of data invariants.
- M. Abadi and L. Lamport. Conjoining specifications. ACM TOPLAS, 17(3):507–534, 1995. CrossRef
- A. Aiken and D. Gay. Barrier inference. In Proc. 25th POPL, pages 243–354, 1998.
- K. Arnold and J. Gosling. The Java Programming Language. Addison-Wesley, 1996.
- T. Ball, S. Chaki, and S. Rajamani. Parameterized verification of multithreaded software libraries. In TACAS, pages 158–173, 2001.
- A. Birrell, J. Guttag, J. Horning, and R. Levin. Synchronization primitives for a multiprocessor: A formal specification. In Proc. 11th SOSP, pages 94–102, 1987.
- C. Boyapati and M. Rinard. A parameterized type system for race-free Java programs. In Proc. OOPSLA, pages 56–69, 2001.
- M. Dwyer, J. Hatcliff, R. Joehanes, S. Laubach, C. Pasareanu, Robby, W. Visser, and H. Zheng. Tool-supported program abstraction for finite-state verification. In Proc. 23rd ICSE, pages 177–187, 2001.
- C. Flanagan and S. N. Freund. Type-based race detection for Java. In Proc. PLDI, pages 219–232, 2000.
- C. Flanagan, S. N. Freund, and S. Qadeer. Thread-modular verification for shared-memory programs. In Proc. 11th ESOP, pages 262–277, 2002.
- C. Flanagan, K. R. M. Leino, M. Lillibridge, C. Nelson, J. Saxe, and R. Stata. Extended static checking for Java. In Proc. PLDI, 2002.
- C. Flanagan, S. Qadeer, and S. A. Seshia. A modular checker for multithreaded programs. Technical Note 2002-001, Compaq Systems Research Center, 2002.
- C. Flanagan and J. B. Saxe. Avoiding exponential explosion: Generating compact verification conditions. In Proc. 28th POPL, pages 193–205, 2001.
- A. Heydon and M. Najork. Mercator: A scalable, extensible web crawler. In Proc. 8th WWW Conf., pages 219–229, December 1999.
- C. B. Jones. Tentative steps toward a development method for interfering programs. A CM TOPLAS, 5(4):596–619, 1983. CrossRef
- L. Lamport. Specifying concurrent program modules. ACM TOPLAS, 5(2):190–222, 1983. CrossRef
- K. R. M. Leino, J. B. Saxe, and R. Stata. Checking Java programs via guarded commands. Technical Note 1999-002, Compaq Systems Research Center, 1999.
- B. Liskov and J. Guttag. Abstraction and Specification in Program Development. MIT Press, 1986.
- C. G. Nelson. Techniques for program verification. Technical Report CSL-81-10, Xerox Palo Alto Research Center, 1981.
- M. Sagiv, T. Reps, and R. Wilhelm. Parametric shape analysis via 3-valued logic. In Proc. 26th POPL, pages 105–118, 1999.
- N. Sterling. WARLOCK — a static data race analysis tool. In USENIX Tech. Conf. Proc., pages 97–106, Winter 1993.
- E. Yahav. Verifying safety properties of concurrent Java programs using 3-valued logic. In Proc. 28th POPL, pages 27–40, 2001.
- A Modular Checker for Multithreaded Programs
- Book Title
- Computer Aided Verification
- Book Subtitle
- 14th International Conference, CAV 2002 Copenhagen, Denmark, July 27–31, 2002 Proceedings
- pp 180-194
- Print ISBN
- Online ISBN
- Series Title
- Lecture Notes in Computer Science
- Series Volume
- Series ISSN
- Springer Berlin Heidelberg
- Copyright Holder
- Springer-Verlag Berlin Heidelberg
- Additional Links
- Industry Sectors
- eBook Packages
- Editor Affiliations
- 4. Department of Computer Science, University of Twente
- 5. Department of Computer Science, Aalborg University
- Author Affiliations
- 6. Compaq Systems Research Center, Palo Alto, CA
- 7. School of Computer Science, Carnegie Mellon University, Pittsburgh, PA
To view the rest of this content please follow the download PDF link above.