Skip to main content

Internal and External Token-Based Synchronization in Object-Oriented Languages

  • Conference paper
Book cover Modular Programming Languages (JMLC 2006)

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

Included in the following conference series:

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.

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
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

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. 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)

    Chapter  Google Scholar 

  2. Puntigam, F.: Concurrent Object-Oriented Programming with Process Types. Der Andere Verlag, Osnabrück (2000)

    Google Scholar 

  3. 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)

    Google Scholar 

  4. Liskov, B., Wing, J.M.: Specifications and their use in defining subtypes. ACM SIGPLAN Notices 28, 16–28 (1993); Proceedings OOPSLA 1993

    Article  Google Scholar 

  5. 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)

    Chapter  Google Scholar 

  6. Brinch-Hansen, P.: The programming language Concurrent Pascal. IEEE Transactions on Software Engineering 1, 199–207 (1975)

    Google Scholar 

  7. Hoare, C.A.R.: Communicating sequential processes. Communications of the ACM 21, 666–677 (1978)

    Article  MATH  Google Scholar 

  8. Harris, T., Fraser, K.: Language support for leightweight transactions. In: OOPSLA 1993, Anaheim, California, USA, pp. 388–402. ACM, New York (2003)

    Google Scholar 

  9. Liskov, B., Scheifler, R.: Guardians and actions: Linguistic support for robust, distributed programs. ACM Transactions on Programming Languages and Systems 5, 381–404 (1983)

    Article  MATH  Google Scholar 

  10. Murata, T.: Petri nets: Properties, analysis and applications. Proceedings of the IEEE 77, 541–580 (1989)

    Article  Google Scholar 

  11. DeLine, R., Fähndrich, M.: The fugue protocol checker: Is your software baroque? Technical report, Microsoft Research (2004), http://www.research.microsoft.com

  12. Kobayashi, N., Pierce, B., Turner, D.: Linearity and the pi-calculus. ACM Transactions on Programming Languages and Systems 21, 914–947 (1999)

    Article  Google Scholar 

  13. Najm, E., Nimour, A.: A calculus of object bindings. In: Proceedings FMOODS 1997, Canterbury, United Kingdom. Chapman and Hall, Boca Raton (1997)

    Google Scholar 

  14. Puntigam, F.: Type specifications with processes. In: Proceedings FORTE 1995, Montreal, Canada, IFIP WG 6.1. Chapman & Hall, Boca Raton (1995)

    Google Scholar 

  15. Meyer, B.: Eiffel: The Language. Prentice-Hall, Englewood Cliffs (1992)

    MATH  Google Scholar 

  16. Caromel, D.: Toward a method of object-oriented concurrent programming. Communications of the ACM 36, 90–101 (1993)

    Article  Google Scholar 

  17. Meyer, B.: Systematic concurrent object-oriented programming. Communications of the ACM 36, 56–80 (1993)

    Article  Google Scholar 

  18. ISO/IEC 8652:1995: Annotated ada reference manual. Intermetrics, Inc. (1995)

    Google Scholar 

  19. Bacon, D.F., Strom, R.E., Tarafdar, A.: Guava: A dialect of Java without data races. In: OOPSLA 2000 (2000)

    Google Scholar 

  20. Flanagan, F., Abadi, M.: Types for safe locking. In: Swierstra, S.D. (ed.) ESOP 1999. LNCS, vol. 1576, p. 91. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  21. Choi, J.D., Gupta, M., Serrano, M., Sreedhar, V.C., Midkiff, S.: Escape analysis for Java. In: OOPSLA 1999, Denver, Colorado (1999)

    Google Scholar 

  22. 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)

    Chapter  Google Scholar 

  23. 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)

    Chapter  Google Scholar 

  24. Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall, Englewood Cliffs (1997)

    MATH  Google Scholar 

  25. Arbab, F.: Abstract behavior types: A foundation model for components and their composition. Science of Computer Programming 55, 3–52 (2005)

    Article  MATH  MathSciNet  Google Scholar 

  26. Lee, E.A., Xiong, Y.: A behavioral type system and its application in Ptolemy II. Formal Aspects of Computing 16, 210–237 (2004)

    Article  MATH  Google Scholar 

  27. Nierstrasz, O.: Regular types for active objects. In: Proceedings OOPSLA 1993. ACM SIGPLAN Notices, vol. 28, pp. 1–15 (1993)

    Google Scholar 

  28. 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)

    Google Scholar 

  29. 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)

    Google Scholar 

  30. 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)

    Chapter  Google Scholar 

  31. Benton, N., Cardelli, L., Fournet, C.: Modern concurrency abstractions for C#. ACM Transactions on Programming Languages and Systems 26, 269–804 (2004)

    Article  Google Scholar 

  32. 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)

    Google Scholar 

  33. Odersky, M.: Functional nets. In: Proceedings of the European Symposium on Programming. Springer, Heidelberg (2000)

    Google Scholar 

  34. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics