Skip to main content

Formal Derivation of Concurrent Garbage Collectors

  • Conference paper
Mathematics of Program Construction (MPC 2010)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 6120))

Included in the following conference series:

Abstract

Concurrent garbage collectors are notoriously difficult to implement correctly. Previous approaches to the issue of producing correct collectors have mainly been based on posit-and-prove verification or on the application of domain-specific templates and transformations. We show how to derive the upper reaches of a family of concurrent garbage collectors by refinement from a formal specification, emphasizing the application of domain-independent design theories and transformations. A key contribution is an extension to the classical lattice-theoretic fixpoint theorems to account for the dynamics of concurrent mutation and collection.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Azatchi, H., Levanoni, Y., Paz, H., Petrank, E.: An on-the-fly mark and sweep garabage collector based on sliding views. In: OOPSLA’03, Anaheim CA (2003)

    Google Scholar 

  2. Cai, J., Paige, R.: Program Derivation by Fixed Point Computation. Science of Computer Programming 11(3), 197–261 (1989)

    Article  MATH  MathSciNet  Google Scholar 

  3. Dijkstra, E.W., Lamport, L., Martin, A.J., Scholten, C.S., Steffens, E.F.M.: On-the-fly garbage collection: An exercise in cooperation. Comm. ACM 21(11), 965–975 (1978)

    Article  Google Scholar 

  4. Dolingez, D., Gonthier, G.: Portable, unobtrusive garbage collection for multiprocessor systems. In: POPL’94, Portland Oregon. ACM SIGPLAN Notices, pp. 70–83. ACM Press, New York (January 1994)

    Google Scholar 

  5. Dolingez, D., Leroy, X.: A concurrent generational garbage collector for a mulit-threaded implementation of ml. In: POPL’93. ACM SIGPLAN Notices, pp. 113–123. ACM Press, New York (1993)

    Google Scholar 

  6. Hawblitzel, C., Petrank, E.: Automated verification of practical garbage collectors. In: POPL’09, Savannah, Georgia, pp. 113–123 (October 2009)

    Google Scholar 

  7. Kestrel Institute, 3260 Hillview Ave., Palo Alto, CA 94304 USA. Specware System and documentation (2003), http://www.specware.org/

  8. Kleene, S.: Introduction to Metamathematics. American Mathematical Society Press, Providence (1956)

    Google Scholar 

  9. MacCarthy, J.: Recursive functions of symbolic expressions and their computation by machine. Comm. ACM 3(4), 184–195 (1960)

    Article  Google Scholar 

  10. McCreight, A., Shao, Z., Lin, C., Li, L.: A general framework for certifying garbage collectors and their mutators. In: PLDI’07, San Diego (2007)

    Google Scholar 

  11. Paige, R., Koenig, S.: Finite differencing of computable expressions. ACM Transactions on Programming Languages 4(3), 402–454 (1982)

    Article  MATH  Google Scholar 

  12. Pavlovic, D., Pepper, P.A., Smith, D.: Colimits for concurrent collectors. In: Dershowitz, N. (ed.) Verification: Theory and Practice. LNCS, vol. 2772, pp. 568–597. Springer, Heidelberg (2004)

    Google Scholar 

  13. Pavlovic, D., Pepper, P., Smith, D.: Formal derivation of concurrent garbage collectors. Technical Report TR-2010-1, Kestrel Institute (February 2010), ftp://ftp.kestrel.edu/pub/papers/smith/PPS-2010.pdf

  14. Pepper, P., Hofstedt, P.: Funktionale Programmierung. Springer, Heidelberg (2006)

    Google Scholar 

  15. Russinoff, D.M.: A mechanically verified incremental garbage collectors. Formal Aspects of Computing 6, 359–390 (1994)

    Article  MATH  Google Scholar 

  16. Smith, D.R.: KIDS – a semi-automatic program development system. IEEE Transactions on Software Engineering Special Issue on Formal Methods in Software Engineering 16(9), 1024–1043 (1990)

    Google Scholar 

  17. Smith, D.R.: Toward a classification approach to design. In: Nivat, M., Wirsing, M. (eds.) AMAST 1996. LNCS, vol. 1101, pp. 62–84. Springer, Heidelberg (1996)

    Chapter  Google Scholar 

  18. Smith, D.R.: Designware: Software development by refinement. In: Hoffman, M., Pavlovic, D., Rosolini, P. (eds.) Proceedings of the Eighth International Conference on Category Theory and Computer Science, pp. 355–370 (1999)

    Google Scholar 

  19. Smith, D.R., Parra, E.A., Westfold, S.J.: Synthesis of planning and scheduling software. In: Tate, A. (ed.) Advanced Planning Technology, pp. 226–234. AAAI Press, Menlo Park (1996)

    Google Scholar 

  20. Steele, G.L.: Multiprocessing compactifying garbage collection. Comm. ACM 18(9), 495–508 (1975)

    Article  MATH  Google Scholar 

  21. Vechev, M.T., Yahav, E., Bacon, D.F.: Correctness-preserving derivation of concurrent garbage collection algorithms. In: PLDI 06, Ottawa, Canada. ACM Press, New York (2006)

    Google Scholar 

  22. Yuasa, T.: Real-time garbage collection on general-purpose machines. Journal of Systems and Software 11(3), 181–198 (1990)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Pavlovic, D., Pepper, P., Smith, D.R. (2010). Formal Derivation of Concurrent Garbage Collectors . In: Bolduc, C., Desharnais, J., Ktari, B. (eds) Mathematics of Program Construction. MPC 2010. Lecture Notes in Computer Science, vol 6120. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-13321-3_20

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-13321-3_20

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-13320-6

  • Online ISBN: 978-3-642-13321-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics