Abstract
This paper investigates an approach for statically preventing race conditions in an object-oriented language. The setting of this work is a variant of Gordon and Hankin’s concurrent object calculus. We enrich that calculus with a form of dependent object types that enables us to verify that threads invoke and update methods only after acquiring appropriate locks. We establish that well-typed programs do not have race conditions.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Martín Abadi and Luca Cardelli. A Theory of Objects. Springer-Verlag, 1996.
Ken Arnold and James Gosling. The Java Programming Language. AddisonWesley, 1996.
David Aspinall and Adriana Compagnoni. Subtyping dependent types. In Proceedings of the 11th Annual IEEE Symposium on Logic in Computer Science, pages 86–97, July 1996.
Gérard Berry and Gérard Boudol. The chemical abstract machine. Theoretical Computer Science, 96:217–248, 1992.
Andrew D. Birrell. An introduction to programming with threads. Research Report 35, Digital Equipment Corporation Systems Research Center, 1989.
Paolo Di Blasio and Kathleen Fisher. A calculus for concurrent objects. In CONCUR’96: Concurrency Theory, volume 1119 of Lecture Notes in Computer Science, pages 655–670. Springer Verlag, 1996.
Luca Cardelli. Phase distinctions in type theory. Unpublished, 1988.
Cormac Flanagan and Martín Abadi. Types for safe locking. In Proceedings of the 8th European Symposium on Programming, ESOP’ 99, pages 91–108. SpringerVerlag, March 1999.
Andrew D. Gordon and Paul D. Hankin. A concurrent object calculus: Reduction and typing. In Uwe Nestmann and Benjamin C. Pierce, editors, HLCL’ 98: High-Level Concurrent Languages, volume 16.3 of Electronic Notes in Theoretical Computer Science. Elsevier Science Publishers, 1998. An extended version appears as Technical Report No. 457 of the University of Cambridge Computer Laboratory, February 1999.
James Gosling, Bill Joy, and Guy L. Steele. The Java Language Specification. Addison-Wesley, 1996.
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-order modules and the phase distinction. In Conference Record of the Seventeenth Annual ACM Symposium on Principles of Programming Languages, pages 341–354, January 1990.
Martin Hofmann, Wolfgang Naraschewski, Martin Steén, and Terry Stroup. Inheritance of proofs. Theory and Practice of Object Systems, 4(1):51–69, 1998.
Naoki Kobayashi. A partially deadlock-free typed process calculus. In Proceedings of the 12th Annual IEEE Symposium on Logic in Computer Science, pages 128–139, 1997.
Greg Nelson, editor. Systems Programming in Modula-3. Prentice Hall, 1991.
Nicholas Sterling. Warlock: A static data race analysis tool. In USENIX Winter Technical Conference, pages 97–106, 1993.
Eijiro Sumii and Naoki Kobayashi. A generalized deadlock-free process calculus. In Uwe Nestmann and Benjamin C. Pierce, editors, HLCL’ 98: High-Level Concurrent Languages, volume 16.3 of Electronic Notes in Theoretical Computer Science. Elsevier Science Publishers, 1998.
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Flanagan, C., Abadi, M. (1999). Object Types against Races. In: Baeten, J.C.M., Mauw, S. (eds) CONCUR’99 Concurrency Theory. CONCUR 1999. Lecture Notes in Computer Science, vol 1664. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48320-9_21
Download citation
DOI: https://doi.org/10.1007/3-540-48320-9_21
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66425-3
Online ISBN: 978-3-540-48320-5
eBook Packages: Springer Book Archive