Abstract
This paper introduces a new language model, Coqa, for deeply embedding concurrent programming into objects. Every program written in our language has the desirable behaviors of atomicity,mutual exclusion, and race freedom automatically built in. A key property of ourmodel is the notion of quantized atomicity: every concurrent program execution can be viewed as being divided into quantumregions of atomic execution, greatly reducing the number of interleavings to consider. Rather than building atomicity locally, i.e. declaring some code blocks as atomic blocks and leaving other code segments with no guarantee of any atomicity property, we build it in globally, so that a form of atomicity, quantized atomicity, ubiquitously exists at all program points. We justify our approach both from a theoretical basis by showing that a formal representation, Kernel- Coqa, has provable quantized atomicity properties, and by implementing CoqaJava, a Java extension incorporating all of the Coqa features.
Chapter PDF
Similar content being viewed by others
References
Agha, G.: ACTORS: A model of Concurrent computations in Distributed Systems. MITP, Cambridge, Mass (1990)
Agha, G., Mason, I.A., Smith, S.F., Talcott, C.L.: A foundation for actor computation. Journal of Functional Programming 7(1), 1–72 (1997)
Armstrong, J.: Erlang — a Survey of the Language and its Industrial Applications. In: INAP 1996 — The 9th Exhibitions and Symposium on Industrial Applications of Prolog, Hino, Tokyo, Japan, pp. 16–18 (1996)
Boyapati, C., Lee, R., Rinard, M.: Ownership types for safe programming: preventing data races and deadlocks. In: OOPSLA 2002, Seattle, Washington, USA, pp. 211–230. ACM Press, New York, NY, USA (2002)
Bacon, D.F., Strom, R.E., Tarafdar, A.: Guava: a dialect of java without data races. In: OOPSLA 2000, pp. 382–400. ACM Press, New York (2000)
CarlStrom, B., McDonald, A., Chafi, H., Chung, J., Minh, C., Kozyrakis, C., Olukotun, K.: The atomos transactional programming language. In: PLDI 2006, Ottawa, Ontario, Canada (June 2006)
Cray Inc. Chapel Specification (2005)
Gray, J.: Notes on data base operating systems. In: Flynn, M.J., Jones, A.K., Opderbeck, H., Randell, B., Wiehle, H.R., Gray, J.N., Lagally, K., Popek, G.J., Saltzer, J.H. (eds.) Operating Systems. LNCS, vol. 60, pp. 393–481. Springer, Heidelberg (1978)
Harris, T., Fraser, K.: Language support for lightweight transactions. In: OOPSLA 2003, pp. 388–402 (2003)
Haller, P., Odersky, M.: Event-based programming without inversion of control. In: Dumke, R.R., Abran, A. (eds.) IWSM 2000. LNCS, vol. 2006, Springer, Heidelberg (2001)
Lipton, R.J.: Reduction: a method of proving properties of parallel programs. Commun. ACM 18(12), 717–721 (1975)
Liskov, B.: Distributed programming in argus. Commun. ACM 31(3), 300–312 (1988)
Liu, Y.D.: Interaction-Oriented Programming, PhD thesis, Johns Hopkins University, Baltimore, MD, USA, (2007), electronic copy available at http://www.cs.jhu.edu/~yliu/thesis/
Lomet, D.B.: Process structuring, synchronization, and recovery using atomic actions. SIGOPS Oper. Syst. Rev. 11(2), 128–137 (1977)
Lamport, L., Schneider, F.B.: Pretending atomicity. Technical Report TR89-1005, Digital Equipment Corporation (1989)
Lu, X.: Coqa: A Concurrent Programming Model with Ubiquitous Atomicity. PhD thesis, Johns Hopkins University, Baltimore, MD, USA (November 2007), electronic copy available at http://www.cs.jhu.edu/~xiaoqilu/thesis/
Miller, M.: The E Language, http://www.erights.org
Manson, J., Pugh, W., Adve, S.V.: The java memory model. In: POPL 2005, pp. 378–391. ACM Press, New York (2005)
Nystrom, N., Clarkson, M.R., Myers, A.C.: Polyglot: An extensible compiler framework for java. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, pp. 138–152. Springer, Heidelberg (2003)
Ni, Y., Menon, V., Adl-Tabatabai, A.-R., Hosking, A.L., Hudson, R.L., Moss, J.E.B., Saha, B., Shpeisman, T.: Open nesting in software transactional memory. In: ACM SIGPLAN 2007 Symposium on Principles and Practice of Parallel Programming (March 2007)
Java PathFinder at, http://javapathfinder.sourceforge.net/
Singhal, M.: Deadlock detection in distributed systems. IEEE Computer 22(11), 37–48 (1989)
Welc, A., Hosking, A.L., Jagannathan, S.: Transparently reconciling transactions with locking for java synchronization. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 148–173. Springer, Heidelberg (2006)
Welc, A., Jagannathan, S., Hosking, A.L.: Transactional monitors for concurrent objects. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 519–542. Springer, Heidelberg (2004)
Yonezawa, A., Briot, J.-P., Shibayama, E.: Object-oriented concurrent programming abcl/1. In: OOPLSA 1986: Conference proceedings on Object-oriented programming systems, languages and applications, pp. 258–268. ACM Press, New York (1986)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Liu, Y.D., Lu, X., Smith, S.F. (2008). Coqa: Concurrent Objects with Quantized Atomicity. In: Hendren, L. (eds) Compiler Construction. CC 2008. Lecture Notes in Computer Science, vol 4959. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-78791-4_18
Download citation
DOI: https://doi.org/10.1007/978-3-540-78791-4_18
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-78790-7
Online ISBN: 978-3-540-78791-4
eBook Packages: Computer ScienceComputer Science (R0)