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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
Cai, J., Paige, R.: Program Derivation by Fixed Point Computation. Science of Computer Programming 11(3), 197–261 (1989)
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)
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)
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)
Hawblitzel, C., Petrank, E.: Automated verification of practical garbage collectors. In: POPL’09, Savannah, Georgia, pp. 113–123 (October 2009)
Kestrel Institute, 3260 Hillview Ave., Palo Alto, CA 94304 USA. Specware System and documentation (2003), http://www.specware.org/
Kleene, S.: Introduction to Metamathematics. American Mathematical Society Press, Providence (1956)
MacCarthy, J.: Recursive functions of symbolic expressions and their computation by machine. Comm. ACM 3(4), 184–195 (1960)
McCreight, A., Shao, Z., Lin, C., Li, L.: A general framework for certifying garbage collectors and their mutators. In: PLDI’07, San Diego (2007)
Paige, R., Koenig, S.: Finite differencing of computable expressions. ACM Transactions on Programming Languages 4(3), 402–454 (1982)
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)
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
Pepper, P., Hofstedt, P.: Funktionale Programmierung. Springer, Heidelberg (2006)
Russinoff, D.M.: A mechanically verified incremental garbage collectors. Formal Aspects of Computing 6, 359–390 (1994)
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)
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)
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)
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)
Steele, G.L.: Multiprocessing compactifying garbage collection. Comm. ACM 18(9), 495–508 (1975)
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)
Yuasa, T.: Real-time garbage collection on general-purpose machines. Journal of Systems and Software 11(3), 181–198 (1990)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)