skip to main content
10.1145/1190216.1190261acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article

Modular verification of a non-blocking stack

Published:17 January 2007Publication History

ABSTRACT

This paper contributes to the development of techniques for the modular proof of programs that include concurrent algorithms. We present a proof of a non-blocking concurrent algorithm, which provides a shared stack. The inter-thread interference, which is essential to the algorithm, is confined in the proof and the specification to the modular operations, which perform push and pop on the stack. This is achieved by the mechanisms of separation logic. The effect is that inter-thread interference does not pollute specification or verification of clients of the stack.

References

  1. R. Bornat, C. Calcagno, P. W. O'Hearn, and M. J. Parkinson. Permission accounting in separation logic. In Proceedings of popl, pages 259--270, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. R. Bornat, C. Calcagno, and H. Yang. Variables as resource in separation logic. In Proceedings of MFPS XXI. Elsevier ENTCS, May 2005.Google ScholarGoogle Scholar
  3. P. Brinch Hansen, editor. The Origin of Concurrent Programming. Springer-Verlag, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. S. Brookes. A semantics for concurrent separation logic. Invited paper, in Proceedings of CONCUR, 2004.Google ScholarGoogle Scholar
  5. E. W. Dijkstra. Cooperating sequential processes. In F. Genuys, editor, Programming Languages, pages 43--112. Academic Press, 1968. Reprinted in {3}.Google ScholarGoogle Scholar
  6. T. Harris, S. Marlow, S. Peyton-Jones, and M. P. Herlihy. Composable memory transactions. In Proceedings of PPOPP, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. Herlihy and J. M. Wing. Linearizability: A correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst., 12(3):463--492, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. M. P. Herlihy and J. E. B. Moss. Transactional memory: architectural support for lock-free data structures. In ISCA '93: Proceedings of the 20th annual international symposium on Computer architecture, pages 289--300, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. C. B. Jones. Specification and design of (parallel) programs. In IFIP Congress, pages 321--332, 1983.Google ScholarGoogle Scholar
  10. M. M. Michael. Hazard pointers: Safe memory reclamation for lock-free objects. IEEE Trans. Parallel Distrib. Syst., 15(6):491--504, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. P. W. O'Hearn. Resources, concurrency and local reasoning. To appear in Theoretical Computer Science; preliminary version in CONCUR'04. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. V. Vafeiadis, M. Herlihy, T. Hoare, and M. Shapiro. Proving correctness of highly-concurrent linearisable objects. In Proceedings of PPoPP, pages 129--136, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Modular verification of a non-blocking stack

                  Recommendations

                  Comments

                  Login options

                  Check if you have access through your login credentials or your institution to get full access on this article.

                  Sign in
                  • Published in

                    cover image ACM Conferences
                    POPL '07: Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
                    January 2007
                    400 pages
                    ISBN:1595935754
                    DOI:10.1145/1190216
                    • cover image ACM SIGPLAN Notices
                      ACM SIGPLAN Notices  Volume 42, Issue 1
                      Proceedings of the 2007 POPL Conference
                      January 2007
                      379 pages
                      ISSN:0362-1340
                      EISSN:1558-1160
                      DOI:10.1145/1190215
                      Issue’s Table of Contents

                    Copyright © 2007 ACM

                    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                    Publisher

                    Association for Computing Machinery

                    New York, NY, United States

                    Publication History

                    • Published: 17 January 2007

                    Permissions

                    Request permissions about this article.

                    Request Permissions

                    Check for updates

                    Qualifiers

                    • Article

                    Acceptance Rates

                    Overall Acceptance Rate824of4,130submissions,20%

                    Upcoming Conference

                    POPL '25

                  PDF Format

                  View or Download as a PDF file.

                  PDF

                  eReader

                  View online with eReader.

                  eReader