Abstract
We expect interfaces in programming languages to expose essential parts of the objects’ internal synchronization as well as required external synchronization. Clients need this information to provide required and avoid conflicting synchronization. We propose a mixed static and dynamic token-based approach to uniformly specify internal and external synchronization in a simplified Java-like language. This concept gives us much flexibility on token management, ensures race-free programs without any need for complete aliasing information, and supports static type checking of synchronization using a rich notion of subtyping.
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
Puntigam, F.: Coordination requirements expressed in types for active objects. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 367–388. Springer, Heidelberg (1997)
Puntigam, F.: Concurrent Object-Oriented Programming with Process Types. Der Andere Verlag, Osnabrück (2000)
Puntigam, F.: Client and server synchronization expressed in types. In: Proceedings of the OOPSLA 2005 Workshop on Synchronization and Concurrency in Object-Oriented Languages (SCOOL), San Diego, USA (2005)
Liskov, B., Wing, J.M.: Specifications and their use in defining subtypes. ACM SIGPLAN Notices 28, 16–28 (1993); Proceedings OOPSLA 1993
Wegner, P., Zdonik, S.B.: Inheritance as an incremental modification mechanism or what like is and isn’t like. In: Gjessing, S., Nygaard, K. (eds.) ECOOP 1988. LNCS, vol. 322, pp. 55–77. Springer, Heidelberg (1988)
Brinch-Hansen, P.: The programming language Concurrent Pascal. IEEE Transactions on Software Engineering 1, 199–207 (1975)
Hoare, C.A.R.: Communicating sequential processes. Communications of the ACM 21, 666–677 (1978)
Harris, T., Fraser, K.: Language support for leightweight transactions. In: OOPSLA 1993, Anaheim, California, USA, pp. 388–402. ACM, New York (2003)
Liskov, B., Scheifler, R.: Guardians and actions: Linguistic support for robust, distributed programs. ACM Transactions on Programming Languages and Systems 5, 381–404 (1983)
Murata, T.: Petri nets: Properties, analysis and applications. Proceedings of the IEEE 77, 541–580 (1989)
DeLine, R., Fähndrich, M.: The fugue protocol checker: Is your software baroque? Technical report, Microsoft Research (2004), http://www.research.microsoft.com
Kobayashi, N., Pierce, B., Turner, D.: Linearity and the pi-calculus. ACM Transactions on Programming Languages and Systems 21, 914–947 (1999)
Najm, E., Nimour, A.: A calculus of object bindings. In: Proceedings FMOODS 1997, Canterbury, United Kingdom. Chapman and Hall, Boca Raton (1997)
Puntigam, F.: Type specifications with processes. In: Proceedings FORTE 1995, Montreal, Canada, IFIP WG 6.1. Chapman & Hall, Boca Raton (1995)
Meyer, B.: Eiffel: The Language. Prentice-Hall, Englewood Cliffs (1992)
Caromel, D.: Toward a method of object-oriented concurrent programming. Communications of the ACM 36, 90–101 (1993)
Meyer, B.: Systematic concurrent object-oriented programming. Communications of the ACM 36, 56–80 (1993)
ISO/IEC 8652:1995: Annotated ada reference manual. Intermetrics, Inc. (1995)
Bacon, D.F., Strom, R.E., Tarafdar, A.: Guava: A dialect of Java without data races. In: OOPSLA 2000 (2000)
Flanagan, F., Abadi, M.: Types for safe locking. In: Swierstra, S.D. (ed.) ESOP 1999. LNCS, vol. 1576, p. 91. Springer, Heidelberg (1999)
Choi, J.D., Gupta, M., Serrano, M., Sreedhar, V.C., Midkiff, S.: Escape analysis for Java. In: OOPSLA 1999, Denver, Colorado (1999)
von Praun, C., Gross, T.R.: Static conflict analysis for multi-threaded object-oriented programs. In: PLDI 2003, pp. 115–128. ACM Press, New York (2003)
Agha, G., Mason, I.A., Smith, S., Talcott, C.: Towards a theory of actor computation. In: Cleaveland, W.R. (ed.) CONCUR 1992. LNCS, vol. 630, pp. 565–579. Springer, Heidelberg (1992)
Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall, Englewood Cliffs (1997)
Arbab, F.: Abstract behavior types: A foundation model for components and their composition. Science of Computer Programming 55, 3–52 (2005)
Lee, E.A., Xiong, Y.: A behavioral type system and its application in Ptolemy II. Formal Aspects of Computing 16, 210–237 (2004)
Nierstrasz, O.: Regular types for active objects. In: Proceedings OOPSLA 1993. ACM SIGPLAN Notices, vol. 28, pp. 1–15 (1993)
Nielson, F., Nielson, H.R.: From CML to process algebras. In: Best, E. (ed.) CONCUR 1993. LNCS, vol. 715, pp. 493–508. Springer, Heidelberg (1993)
Colaco, J.-L., Pantel, M., Salle, P.: A set-constraint-based analysis of actors. In: Proceedings FMOODS 1997, Canterbury, United Kingdom. Chapman and Hall, Boca Raton (1997)
Ravara, A., Vasconcelos, V.T.: Behavioural types for a calculus of concurrent objects. In: Lengauer, C., Griebl, M., Gorlatch, S. (eds.) Euro-Par 1997. LNCS, vol. 1300, pp. 554–561. Springer, Heidelberg (1997)
Benton, N., Cardelli, L., Fournet, C.: Modern concurrency abstractions for C#. ACM Transactions on Programming Languages and Systems 26, 269–804 (2004)
Drossopoulou, S., Petrounias, A., Buckley, A., Eisenbach, S.: School: A small chorded object-oriented language. In: Proceedings of ICALP Workshop on Developments in Computational Models (2005)
Odersky, M.: Functional nets. In: Proceedings of the European Symposium on Programming. Springer, Heidelberg (2000)
Fournet, C., Gonthier, G.: The reflexive cham and the join-calculus. In: Proceedings of the 23rd ACM Symposium on Principles of Programming Languages, pp. 372–385 (1996)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Puntigam, F. (2006). Internal and External Token-Based Synchronization in Object-Oriented Languages. In: Lightfoot, D.E., Szyperski, C. (eds) Modular Programming Languages. JMLC 2006. Lecture Notes in Computer Science, vol 4228. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11860990_16
Download citation
DOI: https://doi.org/10.1007/11860990_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40927-4
Online ISBN: 978-3-540-40928-1
eBook Packages: Computer ScienceComputer Science (R0)