Advertisement

Expressive Synchronization Types for Inheritance in the Join Calculus

  • Qin Ma
  • Luc Maranget
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2895)

Abstract

In prior work, Fournet et al. proposed an extension of the join calculus with class-based inheritance, aiming to provide a precise semantics for concurrent objects. However, as we show here, their system suffers from several limitations, which make it inadequate to form the basis of a practical implementation.

In this paper, we redesign the static semantics for inheritance in the join calculus, equipping class types with more precise information. Compared to previous work, the new type system is more powerful, more expressive and simpler. Additionally, one runtime check of the old system is suppressed in the new design. We also prove the soundness of the new system, and have implemented type inference.

Keywords

Type System Class Type Object Type Object Label Type Safety 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Benton, N., Cardelli, L., Fournet, C.: Modern concurrency abstractions for C\({}^{\sharp}\). In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, pp. 415–440. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  2. 2.
    Blasio, P.D., Fisher, K.: A calculus for concurrent objects. In: Sassone, V., Montanari, U. (eds.) CONCUR 1996. LNCS, vol. 1119, pp. 655–670. Springer, Heidelberg (1996)Google Scholar
  3. 3.
    Bracha, G., Cook, W.: Mixin-Based Inheritance. In: Proceedings of OOPSLA. ECOOP 1990, pp. 303–311. ACM press, New York (1990)Google Scholar
  4. 4.
    Cardelli, L.: Obliq: A language with distributed scope. Computing Systems 8(1), 27–59 (1995)Google Scholar
  5. 5.
    Chen, G., Odersky, M., Zenger, C., Zenger, M.: A functional view of join. Technical Report ACRC-99-016, University of South Australia (1999)Google Scholar
  6. 6.
    Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In: Proceedings of POPL 1998, pp. 171–183. ACM Press, New York (1998)CrossRefGoogle Scholar
  7. 7.
    Fournet, C., Gonthier, G.: The reflexive chemical abstract machine and the join-calculus. In: Proceedings of POPL 1996, pp. 372–385. ACM Press, New York (1996)CrossRefGoogle Scholar
  8. 8.
    Fournet, C., Laneve, C., Maranget, L., Rémy, D.: Implicit typing à la ML for the join-calculus. In: Mazurkiewicz, A., Winkowski, J. (eds.) CONCUR 1997. LNCS, vol. 1243, pp. 196–212. Springer, Heidelberg (1997)Google Scholar
  9. 9.
    Fournet, C., Maranget, L., Laneve, C., Rémy, D.: Inheritance in the join calculus. Journal of Logic and Algebraic Programming (to appear), http://pauillac.inria.fr/~maranget/papers/ojoin.ps.gz
  10. 10.
    Gordon, D.A., Hankin, P.D.: A concurrent object calculus: reduction and typing. In: Proceedings of HLCL 1998. ENTCS, vol. 16(3) (1998)Google Scholar
  11. 11.
    James Gosling, B.J., Steele, G.: The Java Language Specification. Addison Wesley Longman Inc., Reading (1996)zbMATHGoogle Scholar
  12. 12.
    KoBayashi, N.: Type systems for concurrent programs. In: Proceedings of UNU/IIST 10th Anniversary Colloquium, Lisbon, Portugal (2002) (to appear)Google Scholar
  13. 13.
    Le Fessant, F.: The JoCaml system prototype. Software and documentation (1998), available from http://pauillac.inria.fr/jocaml
  14. 14.
    Ma, Q., Maranget, L.: Expressive synchronization types for inheritance in the join calculus. Rapport de recherche 4889, INRIA-Rocquencourt (2003), http://pauillac.inria.fr/~ma/papers/oojoin-tr.ps
  15. 15.
    Matsuoka, S., Yonezawa, A.: Analysis of inheritance anomaly in object-oriented concurrent programming languages. In: Agha, G., Wegner, P., Yonezawa, A. (eds.) Research Directions in Concurrent Object-Oriented Programming, ch. 4, pp. 107–150. The MIT Press, Cambridge (1993)Google Scholar
  16. 16.
    Nierstrasz, O.: Towards an object calculus. In: Tokoro, M., Wegner, P., Nierstrasz, O. (eds.) ECOOP-WS 1991. LNCS, vol. 612, pp. 1–20. Springer, Heidelberg (1992)Google Scholar
  17. 17.
    Rémy, D.: Extension of ML type system with a sorted equation theory on types. Rapport de recherche 1766, INRIA-Rocquencourt (1992)Google Scholar
  18. 18.
    Rémy, D., Vouillon, J.: Objective ML: An effective object-oriented extension to ML. Theory And Practice of Object Systems 4(1), 27–50 (1998)CrossRefGoogle Scholar
  19. 19.
    Vasconcelos, V.T.: Typed concurrent objects. In: Tokoro, M., Pareschi, R. (eds.) ECOOP 1994. LNCS, vol. 821, pp. 100–117. Springer, Heidelberg (1994)CrossRefGoogle Scholar
  20. 20.
    Yonezawa, A., Briot, J.-P., Shibayama, E.: Object-oriented concurrent programming in ABCL/1. In: Proceedings of OOPSLA 1986. ACM SIGPLAN Notices, vol. 21(11), pp. 258–268 (1986)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Qin Ma
    • 1
  • Luc Maranget
    • 1
  1. 1.Inria RocquencourtLe Chesnay CedexFrance

Personalised recommendations