skip to main content
10.1145/1250734.1250787acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article

CGCExplorer: a semi-automated search procedure for provably correct concurrent collectors

Published:10 June 2007Publication History

ABSTRACT

Concurrent garbage collectors are notoriously hard to design, implement, and verify. We present a framework for the automatic exploration of a space of concurrent mark-and-sweep collectors. In our framework, the designer specifies a set of "building blocks" from which algorithms can be constructed. These blocks reflect the designer's insights about the coordination between the collector and the mutator. Given a set of building blocks, our framework automatically explores a space of algorithms, using model checking with abstraction to verify algorithms in the space.

We capture the intuition behind some common mark-and-sweep algorithms using a set of building blocks. We utilize our framework to automatically explore a space of more than 1,600,000 algorithms built from these blocks, and derive over 100 correct fine-grained algorithms with various space, synchronization, and precision tradeoffs.

References

  1. Bar-David, Y., and Taubenfeld, G. Automatic discovery of mutual exclusion algorithms. In Proceedings of the 22nd Annual Symposium on Principles of Distributed Computing (2003). Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Barabash, K., Ossia, Y., and Petrank, E. Mostly concurrent garbage collection revisited. In Proceedings of the 18th ACM conference on Object-oriented programing, systems, languages, and applications (2003). Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Ben-Ari, M. Algorithms for on-the-fly garbage collection. ACM Trans. Program. Lang. Syst. 6, 3 (1984). Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Birkedal, L., Torp-Smith, N., and Reynolds, JC. Local reasoning about a copying garbage collector. In Proceedings of the 31st ACM Symposium on Principles of Programming Languages (2004). Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Bowman, H., Derrick, J., and Jones, RE. Modelling garbage collection algorithms. In Proceedings of International Computing Symposium (1994).Google ScholarGoogle Scholar
  6. Burdy, L. B vs. Coq to prove a garbage collector. In the 14th International Conference on Theorem Proving in Higher Order Logics: Supplemental Proceedings (2001).Google ScholarGoogle Scholar
  7. Das, M., Lerner, S., and Seigle, M. ESP: Path-sensitive program verification in polynomial time. In Proceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation (2002). Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Demmers, A., Weiser, M., Hayes, B., Boehm, H., Bobrow, D., and Shenker, S. Combining generational and conservative garbage collection: framework and implementations. In Proceedings of the 17th ACM symposium on Principles of programming languages (1990). Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Dewar, R. BK., Shirar, M., and Weixelbaum, E. Transformational derivation of a garbage collection algorithm. ACM Trans. Program. Lang. Syst. 4, 4 (1982). Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Dijkstra, EW., Lamport, L., Martin, AJ., Scholten, CS., and Steffens, E. FM. On-the-fly garbage collection: an exercise in cooperation. Commun. ACM 21, 11 (1978). Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Gries, D. An exercise in proving parallel programs correct. Commun. ACM 20, 12 (1977). Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Gries, D. Corrigendum. Commun. ACM 21, 12 (December 1978), 1048. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Hackett, B., and Rugina, R. Region-based shape analysis with tracked locations. In Proceedings of the 32nd ACM Symposium on Principles of Programming Languages (2005), ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Havelund, K. Mechanical verification of a garbage collector. In Fourth International Workshop on Formal Methods for Parallel Programming: Theory and Applications (1999).Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Jackson, PB. Verifying a garbage collection algorithm. In Theorem Proving in Higher Order Logics, 11th International Conference (1998). Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Massalin, H. Superoptimizer: a look at the smallest program. In the 2nd International Conference on Architectural Support for Programming Languages and Operating Systems (1987). Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Paulson, L. Isabelle: A Generic Theorem Prover, vol828 of Lecture Notes in Computer Science. 1994.Google ScholarGoogle Scholar
  18. Prensa Nieto, L., and Esparza, J. Verifying single and multi-mutator garbage collectors with Owicki/Gries in Isabelle/HOL. In Mathematical Foundations of Computer Science (2000). Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Russinoff, DM. A mechanically verified incremental garbage collector. Formal Aspects of Computing 6, 4 (1994).Google ScholarGoogle ScholarCross RefCross Ref
  20. Sagiv, M., Reps, T., and Wilhelm, R. Parametric shape analysis via 3-valued logic. ACM Trans. on Prog. Lang. and Systems 24, 3 (2002). Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Solar-Lezama, A., Rabbah, RM., Bodík, R., and Ebcioglu, K. Programming by sketching for bit-streaming programs. In Proceedings of the ACM Conference on Programming Language Design and Implementation (2005). Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Takahashi, K. Abstraction and Search in Verification by State Exploration. PhD thesis, University of Tokyo, Jan. 2002.Google ScholarGoogle Scholar
  23. Vechev, M. Derivation And Evaluation Of Concurrent Collectors. PhD thesis, University of Cambridge, 2007.Google ScholarGoogle Scholar
  24. Vechev, MT., Yahav, E., and Bacon, DF. Correctness-preserving derivation of concurrent garbage collection algorithms. In Proceedings of the ACM Conference on Programming Language Design and Implementation/ (2006). Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Yahav, E., and Ramalingam, G. Verifying safety properties using separation and heterogeneous abstractions. In Proceedings of the ACM conference on Programming language design and implementation/ (2004). Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. CGCExplorer: a semi-automated search procedure for provably correct concurrent collectors

                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
                  PLDI '07: Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation
                  June 2007
                  508 pages
                  ISBN:9781595936332
                  DOI:10.1145/1250734
                  • cover image ACM SIGPLAN Notices
                    ACM SIGPLAN Notices  Volume 42, Issue 6
                    Proceedings of the 2007 PLDI conference
                    June 2007
                    491 pages
                    ISSN:0362-1340
                    EISSN:1558-1160
                    DOI:10.1145/1273442
                    Issue’s Table of Contents

                  Copyright © 2007 ACM

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 10 June 2007

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • Article

                  Acceptance Rates

                  Overall Acceptance Rate406of2,067submissions,20%

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader
                About Cookies On This Site

                We use cookies to ensure that we give you the best experience on our website.

                Learn more

                Got it!