Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Creol: a type-safe object-oriented model for distributed concurrent systems

Published: 10 November 2006 Publication History

Abstract

Object-oriented distributed computing is becoming increasingly important for critical infrastructure in society. In standard object-oriented models, objects synchronize on method calls. These models may be criticized in the distributed setting for their tight coupling of communication and synchronization; network delays and instabilities may locally result in much waiting and even deadlock. The Creol model targets distributed objects by a looser coupling of method calls and synchronization. Asynchronous method calls and high-level local control structures allow local computation to adapt to network instability. Object variables are typed by interfaces, so communication with remote objects is independent from their implementation. The inheritance and subtyping relations are distinct in Creol. Interfaces form a subtype hierarchy, whereas multiple inheritance is used for code reuse at the class level. This paper presents the Creol syntax, operational semantics, and type system. It is shown that runtime type errors do not occur for well-typed programs.

References

[1]
{1} M. Abadi, L. Cardelli, A theory of objects. Monographs in Computer Science, Springer, Berlin, 1996.]]
[2]
{2} E. Ábrahám-Mumm, F.S. de Boer, W.-P. de Roever, M. Steffen, Verification for Java's reentrant multithreading concept, Internat. Conf. on Foundations of Software Science and Computation Structures (FOSSACS'02), Lecture Notes in Computer Science, Vol. 2303, Springer, Berlin, April 2002, pp. 5-20.]]
[3]
{3} G.A. Agha, Abstracting interaction patterns: A programming paradigm for open distributed systems, in: E. Najm, J.-B. Stefani (Eds.), Proc. First IFIP Internat. Conf. on Formal Methods for Open Object-based Distributed Systems (FMOODS'96), Chapman & Hall, London, 1996, pp. 135-153.]]
[4]
{4} G.A. Agha, I.A. Mason, S.F. Smith, C.L. Talcott, A foundation for actor computation, J. Funct. Programming 7 (1) (1997) 1-72.]]
[5]
{5} P. America, F. van der Linden, A parallel object-oriented language with inheritance and subtyping, in: N. Meyrowitz (Ed.), Proc. Conf. on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), Vol. 25(10), ACM Press, New York, October 1990, pp. 161-168.]]
[6]
{6} G.R. Andrews, Foundations of Multithreaded, parallel, and Distributed Programming, Addison-Wesley, Reading, MA, 2000.]]
[7]
{7} I. Attali, D. Caromel, S.O. Ehmety, A natural semantics for Eiffel dynamic binding, ACM Trans. on Program. Lang. and Systems 18 (6) (1996) 711-729.]]
[8]
{8} N. Benton, L. Cardelli, C. Fournet, Modern concurrency abstractions for C<sup>#</sup>, ACM Trans. on Program. Lang. and Systems 26 (5) (2004) 769-804.]]
[9]
{9} L. Bettini, V. Bono, R.D. Nicola, G.L. Ferrari, D. Gorla, M. Loreti, E. Moggi, R. Pugliese, E. Tuosto, B. Venneri, The Klaim project: theory and practice, in: C. Priami (Ed.), Global Computing, Programming Environments, Languages, Security, and Analysis of Systems, Lecture Notes in Computer Science, Vol. 2874, Springer, Berlin, 2003, pp. 88-150.]]
[10]
{10} G. Bracha, W. Cook, Mixin-based inheritance, in: N. Meyrowitz (Ed.), Proc. Conf. on Object-Oriented Programming: Systems, Languages, and Applications/European, Conference on Object-Oriented Programming, ACM Press, New York, 1990, pp. 303-311.]]
[11]
{11} P. Brinch Hansen, Java's insecure parallelism, ACM SIGPLAN Not. 34 (4) (April 1999) 38-45.]]
[12]
{12} K.B. Bruce, Foundations of Object-Oriented Languages: Types and Semantics, The MIT Press, Cambridge, MA, 2002.]]
[13]
{13} K.B. Bruce, A. Schuett, R. van Gent, A. Fiech, PolyTOIL: a type-safe polymorphic object-oriented language, ACM Trans. on Program. Lang. and Systems 25 (2) (2003) 225-290.]]
[14]
{14} L. Cardelli, A semantics of multiple inheritance, Inform. and Comput. 76 (2-3) (1988) 138-164.]]
[15]
{15} L. Cardelli, A language with distributed scope, Comput. Systems 8 (1) (1995) 27-59.]]
[16]
{16} D. Caromel, Y. Roudier, Reactive programming in Eiffel//, in: J.-P. Briot, J.M. Geib, A. Yonezawa (Eds.), Proc. Conf. on Object-Based Parallel and Distributed Computation, Lecture Notes in Computer Science, Vol. 1107, Springer, Berlin, 1996, pp. 125-147.]]
[17]
{17} N. Carriero, D. Gelernter, Linda in context, Comm. of the ACM 32 (4) (1989) 444-458.]]
[18]
{18} P. Cenciarelli, A. Knapp, B. Reus, M. Wirsing, An event-based structural operational semantics of multi-threaded Java, in: J. Alves-Foss (Ed.). Formal Syntax and Semantics of Java, Lecture Notes in Computer Science, Vol. 1523, Springer, Berlin, 1999, pp. 157-200.]]
[19]
{19} C. Chambers, D. Ungar, B.-W. Chang, U. Hölzle, Parents are shared parts of objects: inheritance and encapsulation in SELF, Lisp and Symbolic Comput. 4 (3) (1991) 207-222.]]
[20]
{20} M. Clavel, F. Durán, S. Eker, P. Lincoln, N. Martí-Oliet, J. Meseguer, J.F. Quesada, Maude: Specification and programming in rewriting logic, Theoret. Comput. Sci. 285 (August 2002) 187-243.]]
[21]
{21} W. Cook, J. Palsberg, A denotational semantics of inheritance and its correctness, Inform. and Comput. 114 (2) (November 1994) 329-350.]]
[22]
{22} W.R. Cook, W. L. Hill, P. S. Canning, Inheritance is not subtyping, in: 17th ACM Symp. on Principles of Programming Languages (POPL'90), ACM Press, New York, January 1990, pp. 125-135.]]
[23]
{23} G. Cugola, C. Ghezzi, CJava: Introducing concurrent objects in Java, in: M.E. Orlowska, R. Zicari (Eds.), Fourth Internat. Conf. on Object Oriented Information Systems (OOIS'97), Springer, Berlin, 1997, pp. 504-514.]]
[24]
{24} O.-J. Dahl, Monitors revisited, in: A.W. Roscoe (Ed.), A Classical Mind, Essays in Honour of C.A.R. Hoare, Prentice-Hall, Engle Wood Cliffs. NJ, 1994, pp. 93-103.]]
[25]
{25} O.-J. Dahl, B. Myrhaug, K. Nygaard, (Simula 67) Common base language. Technical report S-2, Norsk Regnesentral (Norwegian Computing Center), Oslo, Norway, May 1968.]]
[26]
{26} W. Damm, B. Josko, A. Pnueli, A. Votintseva, Understanding UML: a formal semantics of concurrency and communication in real-time UML, in: F.S. de Boer, M.M. Bonsangue, S. Graf, W.P. de Roever (Eds.), First Internat. Symp. Formal Methods for Components and Objects (FMCO 2002), Lecture Notes in Computer Science, Vol. 2852, Springer, Berlin, 2003, pp. 71-98.]]
[27]
{27} L.G. DeMichiel, R. P. Gabriel, The common lisp object system: an overview, in: J. Bézivin, J.-M. Hullot, P. Cointe, H. Lieberman (Eds.), European Conf. on Object-Oriented Programming (ECOOP'87), Lecture Notes in Computer Science, Vol. 276, Springer, Berlin, 1987, pp. 151-170.]]
[28]
{28} P. Di Blasio, K. Fisher, A calculus for concurrent objects, in: U. Montanari, V. Sassone (Eds.), Seventh Internat. Conf. on Concurrency Theory (CONCUR'96), Lecture Notes in Computer Science, Vol. 1119, Springer, Berlin, August 1996, pp. 655-670.]]
[29]
{29} E.W. Dijkstra, Guarded commands, nondeterminacy and formal derivation of programs, Comm. of the ACM 18 (8) (1975) 453-457.]]
[30]
{30} E.W. Dijkstra, A Discipline of Programming, Prentice-Hall, Englewood Cliffs, NJ, 1976.]]
[31]
{31} J. Dovland, E.B. Johnsen, O. Owe, Verification of concurrent objects with asynchronous method calls, in: Proc. IEEE Internat. Conf. on Software--Science, Technology & Engineering (SwSTE'05), IEEE Computer Society Press, Silver Spring, MD, February 2005, pp. 141-150.]]
[32]
{32} S. Drossopoulou, F. Damiani, M. Dezani-Ciancaglini, P. Giannini, More dynamic object re-classification: Fickle<inf>II</inf>, ACM Trans. on Program. Lang. and Systems 24 (2) (2002) 153-191.]]
[33]
{33} C. Fournet, G. Gonthier, The reflexive chemical abstract machine and the Join-calculus, in: ACM Symp. on Principles of Programming Languages (POPL), 1996, pp. 372-385.]]
[34]
{34} J. A. Goguen T. Winkler, J. Meseguer K. Futatsugi, J.-P. Jouannaud, Introducing OBJ, in: J.A. Goguen, G. Malcolm (Eds.), Software Engineering with OBJ: Algebraic Specification in Action, Advances in Formal Methods, Kluwer Academic Publishers, Dordrecht, 2000, pp. 3-167, (Chapter 1).]]
[35]
{35} A.D. Gordon, P.D. Hankin, A concurrent object calculus: reduction and typing, in: U. Nestmann, B.C. Pierce (Eds.), HLCL '98: High-Level Concurrent Languages, Electronic Notes in Theoretical Computer Science, Vol. 16(3), Elsevier Science Publishers, Amsterdam, 1998.]]
[36]
{36} J. Gosling, B. Joy, G.L. Steele, G. Bracha, The Java Language Specification, Java Series, second ed., Addison-Wesley, Reading, MA, 2000.]]
[37]
{37} B. Hailpern, H. Ossher, Extending objects to support multiple interfaces and access control, IEEE Trans. on Software Eng. 16 (11) (1990) 1247-1257.]]
[38]
{38} C.A.R. Hoare, Monitors: an operating systems structuring concept, Comm. of the ACM 17 (10) (1974) 549-557.]]
[39]
{39} C.A.R. Hoare, Communicating sequential processes, International Series in Computer Science, Prentice-Hall, Englewood Cliffs, NJ, 1985.]]
[40]
{40} K. Honda, M. Tokoro, An object calculus for asynchronous communication, in: P. America (Ed.), Proc. European Conf. on Object-Oriented Programming (ECOOP'91), Lecture Notes in Computer Science, Vol. 512, Springer, Berlin, 1991, pp. 133-147.]]
[41]
{41} A. Igarashi, B.C. Pierce, P. Wadler, Featherweight Java: a minimal core calculus for Java and GJ, ACM Trans. Program. Lang. and Systems 23 (3) (2001) 396-450.]]
[42]
{42} International Telecommunication Union, Open distributed processing--reference model parts 1-4, Technical report, ISO/IEC, Geneva July 1995.]]
[43]
{43} G.S. Itzstein, M. Jasiunas, On implementing high level concurrency in Java, in: A. Omondi, S. Sedukhin (Eds.), Proc. Eighth Asia-Pacific Computer Systems Architecture Conference (ACSAC 2003), Lecture Notes in Computer Science, Vol. 2823, Springer, Berlin, 2003, pp. 151-165.]]
[44]
{44} E.B. Johnsen, O. Owe, A compositional formalism for object viewpoints, in: B. Jacobs, A. Rensink (Eds.), Proc. Fifth Internat. Conf. on Formal Methods for Open Object-Based Distributed Systems (FMOODS'02), Klüwer Academic Publishers, Dordrecht, March 2002, pp. 45-60.]]
[45]
{45} E.B. Johnsen, O. Owe, Object-oriented specification and open distributed systems, in: O. Owe, S. Krogdahl, T. Lyche (Eds.), From Object-Orientation to Formal Methods: Essays in Memory of Ole-Johan Dahl, Lecture Notes in Computer Science, Vol. 2635, Springer, Berlin, 2004, pp. 137-164.]]
[46]
{46} E.B. Johnsen, O. Owe, Inheritance in the presence of asynchronous method calls. in: Proc. 38th Hawaii Internat. Conf. System Sciences (HICSS'05), IEEE Computer Society Press, Silver Spring, MD, January 2005.]]
[47]
{47} E.B. Johnsen, O. Owe, An asynchronous communication model for distributed concurrent objects, Software and Systems Model, 2006.
[48]
{48} E.B. Johnsen, O. Owe, E.W. Axelsen, A run-time environment for concurrent objects with asynchronous method calls, in: N. Martí-Oliet (Ed.) Proc. Fifth International Workshop on Rewriting Logic and its Applications (WRLA'04), Mar. 2004, Electronic Notes in Theoretical Computer Science, Vol. 117, Elsevier Science Publishers, Amsterdam, January 2005, pp. 375-392.]]
[49]
{49} E.B. Johnsen, O. Owe, I. Simplot-Ryl, A dynamic class construct for asynchronous concurrent objects, in: M. Steffen, G. Zavattaro (Eds.), Proc. Seventh Internat. Conf. on Formal Methods for Open Object-Based Distributed Systems (FMOODS'05), Lecture Notes in Computer Science, Vol. 3535, Springer, Berlin, June 2005, pp. 15-30.]]
[50]
{50} G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, J. Irwin, Aspect-oriented programming, in: M. Aksit, S. Matsuoka (Eds.), Proc. 11th European Conf. on Object-Oriented Programming (ECOOP'97), Lecture Notes in Computer Science, Vol. 1241, Springer, Berlin, June 1997, pp. 220-242.]]
[51]
{51} S. Krogdahl, Multiple inheritance in Simula-like languages, BIT 25 (2) (1985) 318-326.]]
[52]
{52} C. Laneve, Inheritance in concurrent objects, in: H. Bowman, J. Derrick (Eds.), Formal Methods for Distributed Processing--A Survey of Object-Oriented Approaches, Cambridge University Press, Cambridge, 2001, pp. 326-353.]]
[53]
{53} B.H. Liskov, L. Shrira, Promises: linguistic support for efficient asynchronous procedure calls in distributed systems, in: D.S. Wise (Ed.), Proc. SIGPLAN Conf. on Programming Language Design and Implementation (PLDI'88), ACM Press, New York, June 1988, pp. 260-267.]]
[54]
{54} B.H. Liskov, J.M. Wing, A behavioral notion of subtyping, ACM Trans. Program. Lang. and Systems 16 (6) (November 1994) 1811-1841.]]
[55]
{55} J.M. Lucassen, D.K. Gifford, Polymorphic effect systems, in: Proc. 15th Symp. Principles of Programming Languages (POPL'88) ACM Press, New York, 1988, pp. 47-57.]]
[56]
{56} S. Matsuoka, A. Yonezawa, Analysis of inheritance anomaly in object-oriented concurrent programming languages, in: G. Agha, P. Wegner, A. Yonezawa (Eds.), Research Directions in Concurrent Object-Oriented Programming, The MIT Press, Cambridge MA, 1993, pp. 107-150.]]
[57]
{57} J. Meseguer, Conditional rewriting logic as a unified model of concurrency, Theoret. Comput. Sci. 96 (1992) 73-155.]]
[58]
{58} J. Meseguer, G. Rosu, Rewriting logic semantics: from language specifications to formal analysis tools, in: D.A. Basin, M. Rusinowitch (Eds.), Proc. Second Internat. Joint Conf. Automated Reasoning (IJCAR 2004), Lecture Notes in Computer Science, Vol. 3097, Springer, Berlin, 2004, pp. 1-44.]]
[59]
{59} B. Meyer, Object-Oriented Software Construction, second ed., Prentice Hall, Englewood Cliffs, NJ, 1997.]]
[60]
{60} L. Mikhajlov, E. Sekerinski, A study of the fragile base class problem, in: E. Jul (Ed.), 12th European Conference on Object-Oriented Programming (ECOOP), Lecture Notes in Computer Science, Vol. 1445, Springer, Berlin, 1998, pp. 355-382.]]
[61]
{61} G. Milicia, V. Sassone, The inheritance anomaly: ten years after, in: Proc. 2004 ACM Symp. on Applied Computing, ACM Press, New York, 2004, pp. 1267-1274]]
[62]
{62} R. Milner, Communicating and Mobile Systems: the π-Calculus, Cambridge University Press, Cambridge, May 1999.]]
[63]
{63} E. Najm, J.-B. Stefani, A formal semantics for the ODP computational model, Comput. Networks and ISDN Systems 27 (1995) 1305-1329.]]
[64]
{64} O. Nierstrasz, A tour of Hybrid-A language for programming with active objects, in: D. Mandrioli, B. Meyer (Eds.), Advances in Object-Oriented Software Engineering, Prentice-Hall, Englewood Cliffs, NJ, 1992, pp. 167-182.]]
[65]
{65} M. Odersky, V. Cremet, C. Röckl, M. Zenger, A nominal theory of objects with dependent types, in: L. Cardelli (Ed.), Proc. 17th European Conf. on Object-Oriented Programming (ECOOP 2003), Lecture Notes in Computer Science, Vol. 2743, Springer, Berlin, 2003, pp. 201-224.]]
[66]
{66} M. Philippsen, A survey on concurrent object-oriented languages, Concurrency: Pract. and Experience 12 (10) (August 2000) 917-980.]]
[67]
{67} B.C. Pierce, Types and Programming Languages, The MIT Press, Cambridge, MA, 2002.]]
[68]
{68} B.C. Pierce, D.N. Turner, Pict: a programming language based on the pi-calculus, in: G. Plotkin, C. Stirling, M. Tofte (Eds.), Proof, Language and Interaction: Essays in Honour of Robin Milner, The MIT Press, Cambridge MA, 1998.]]
[69]
{69} J.G. Rossie Jr., D.P. Friedman, M. Wand, Modeling subobject-based inheritance, in: P. Cointe (Ed.), 10th European Conference on Object-Oriented Programming (ECOOP'96), Lecture Notes in Computer Science, Vol. 1098, Springer, Berlin, 1996, pp. 248-274.]]
[70]
{70} N. Schärli, S. Ducasse, O. Nierstrasz, A.P. Black, Traits: composable units of behaviour, in: L. Cardelli (Ed.), Proc. 17th European Conf. on Object-Oriented Programming (ECOOP 2003), Lecture Notes in Computer Science, Vol. 2743, Springer, Berlin, 2003, pp. 248-274.]]
[71]
{71} A. Snyder, Inheritance and the development of encapsulated software systems, in: B. Shriver, P. Wegner (Eds.), Research Directions in Object-Oriented Programming, The MIT Press, Cambridge, MA, 1987, pp. 165-188.]]
[72]
{72} N. Soundarajan, S. Fridella, Inheritance: from code reuse to reasoning reuse, in: P. Devanbu, J. Poulin (Eds.), Proc. Fifth Internat. Conf. on Software Reuse (ICSR5), IEEE Computer Society Press, Silver Spring, MD, 1998, pp. 206-215.]]
[73]
{73} B. Stroustrup, Multiple inheritance for C++, Comput. Systems 2 (4) (December 1989) 367-395.]]
[74]
{74} J.-P. Talpin, P. Jouvelot, Polymorphic type, region and effect inference, J. Funct. Programming 2 (3) (1992) 245-271.]]
[75]
{75} M. VanHilst, D. Notkin, Using role components to implement collaboration-based designs, in: Proc. Conf. on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'96), ACM Press, New York, 1996, pp. 359-369.]]
[76]
{76} V.T. Vasconcelos, Typed concurrent objects, in: M. Tokoro, R. Pareschi (Eds.), Proc. of the Eighth European Conf. on Object-Oriented Programming (ECOOP'94), Lecture Notes in Computer Science, Vol. 821, Springer, Berlin, 1994, pp. 100-117.]]
[77]
{77} D. Walker, Objects in the π-calculus, Inform. and Comput. 116 (2) (February 1995) 253-271.]]
[78]
{78} R.J. Wirfs-Brock, R.E. Johnson, Surveying current research in object-oriented design, Comm. of the ACM 33 (9) (1990) 104-124.]]
[79]
{79} Y. Yokote, M. Tokoro, Concurrent programming in ConcurrentSmalltalk, in: A. Yonezawa, M. Tokoro (Eds.), Object-Oriented Concurrent Programming, The MIT Press, Cambridge, MA, 1987, pp. 129-158.]]
[80]
{80} A. Yonezawa, ABCL: an Object-Oriented Concurrent System, Series in Computer Systems, The MIT Press, Cambridge, MA, 1990.]]

Cited By

View all
  • (2019)Verification of asynchronous systems with an unspecified componentActa Informatica10.1007/s00236-018-0317-x56:2(161-203)Online publication date: 1-Mar-2019
  • (2018)Attached and detached closures in actorsProceedings of the 8th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control10.1145/3281366.3281371(54-61)Online publication date: 5-Nov-2018
  • (2018)A semantics comparison workbench for a concurrent, asynchronous, distributed programming languageFormal Aspects of Computing10.1007/s00165-017-0443-130:1(163-192)Online publication date: 1-Jan-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

Publisher

Elsevier Science Publishers Ltd.

United Kingdom

Publication History

Published: 10 November 2006

Author Tags

  1. distributed object-oriented systems
  2. type and effect system
  3. type soundness

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2019)Verification of asynchronous systems with an unspecified componentActa Informatica10.1007/s00236-018-0317-x56:2(161-203)Online publication date: 1-Mar-2019
  • (2018)Attached and detached closures in actorsProceedings of the 8th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control10.1145/3281366.3281371(54-61)Online publication date: 5-Nov-2018
  • (2018)A semantics comparison workbench for a concurrent, asynchronous, distributed programming languageFormal Aspects of Computing10.1007/s00165-017-0443-130:1(163-192)Online publication date: 1-Jan-2018
  • (2018)Forward to a Promising FutureCoordination Models and Languages10.1007/978-3-319-92408-3_7(162-180)Online publication date: 18-Jun-2018
  • (2017)Static deadlock detection for asynchronous C# programsACM SIGPLAN Notices10.1145/3140587.306236152:6(292-305)Online publication date: 14-Jun-2017
  • (2017)A Survey of Active Object LanguagesACM Computing Surveys10.1145/312284850:5(1-39)Online publication date: 5-Oct-2017
  • (2017)Static deadlock detection for asynchronous C# programsProceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3062341.3062361(292-305)Online publication date: 14-Jun-2017
  • (2016)A Graph-Based Semantics Workbench for Concurrent Asynchronous ProgramsProceedings of the 19th International Conference on Fundamental Approaches to Software Engineering - Volume 963310.5555/3089458.3089463(31-48)Online publication date: 2-Apr-2016
  • (2016)Actors may synchronize, safely!Proceedings of the 18th International Symposium on Principles and Practice of Declarative Programming10.1145/2967973.2968599(118-131)Online publication date: 5-Sep-2016
  • (2016)Reasoning About Inheritance and Unrestricted Reuse in Object-Oriented Concurrent SystemsProceedings of the 12th International Conference on Integrated Formal Methods - Volume 968110.1007/978-3-319-33693-0_14(210-225)Online publication date: 1-Jun-2016
  • Show More Cited By

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media