Linguistic symbiosis between event loop actors and threads

In modern programming languages, concurrency control can be traced back to one of two different schools: actor-based message passing concurrency and thread-based shared-state concurrency. This paper describes a linguistic symbiosis between two programming languages with such different concurrency models. More specifically, we describe a novel symbiosis between actors represented as event loops on the one hand and threads on the other. This symbiosis ensures that the invariants of the actor-based concurrency model are not violated by engaging in symbiosis with multithreaded programs. The proposed mapping is validated by means of a concrete symbiosis between AmbientTalk, a flexible, domain-specific language for writing distributed programs and Java, a conventional object-oriented language. This symbiosis allows the domain-specific language to reuse existing software components written in a multithreaded language without sacrificing the beneficial event-driven properties of the actor concurrency model.

[1]  Jaime Niño The cost of erasure in Java generics type system , 2007 .

[2]  Gul Agha,et al.  Proceedings of the 1988 ACM SIGPLAN workshop on Object-based concurrent programming , 1988 .

[3]  Martin Odersky,et al.  Event-Based Programming Without Inversion of Control , 2006, JMLC.

[4]  Akinori Yonezawa,et al.  Object-oriented concurrent programming in ABCL/1 , 1986, OOPSLA 1986.

[5]  Curtis R. Cook,et al.  An overview of industrial software documentation practice , 2002, 12th International Conference of the Chilean Computer Science Society, 2002. Proceedings..

[6]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[7]  Stéphane Ducasse,et al.  Inter-language reflection: A conceptual model and its implementation , 2006, Comput. Lang. Syst. Struct..

[8]  Oscar Nierstrasz,et al.  APPLICATIONS = COMPONENTS + SCRIPTS A tour of Piccola , 2001 .

[9]  Gul Agha,et al.  Concurrent programming using actors , 1987 .

[10]  Theo D'Hondt,et al.  Ambient-oriented programming , 2005, OOPSLA '05.

[11]  J.-P. Briot,et al.  From objects to actors: study of a limited symbiosis in smalltalk-80 , 1988, OOPSLA/ECOOP '88.

[12]  Wolfgang De Meuter,et al.  Linguistic symbiosis between actors and threads , 2007, ICDL '07.

[13]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[14]  Stéphane Ducasse,et al.  Symbiotic Reflection between an Object-Oriented and a Logic Programming Language , 2001 .

[15]  Peng Li,et al.  Combining events and threads for scalable network services implementation and evaluation of monadic, application-level concurrency primitives , 2007, PLDI '07.

[16]  Jonathan S. Shapiro,et al.  Concurrency among strangers: programming in E as plan coordination , 2005 .

[17]  Henry Lieberman,et al.  Concurrent object-oriented programming in Act 1 , 1987 .

[18]  Carl Hewitt,et al.  The incremental garbage collection of processes , 1977 .

[19]  Jessie Dedecker,et al.  AmbientTalk: Object-oriented Event-driven Programming in Mobile Ad hoc Networks , 2007, XXVI International Conference of the Chilean Society of Computer Science (SCCC'07).

[20]  Theo D'Hondt,et al.  Ambient-Oriented Programming in AmbientTalk , 2006, ECOOP.

[21]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[22]  Henry Lieberman,et al.  Using Prototypical Objects to Implement Shared Behavior in Object Oriented Systems , 1986, OOPSLA.

[23]  Norman Meyrowitz,et al.  Conference proceedings on Object-oriented programming systems, languages, and applications , 1986, OOPSLA 1987.

[24]  Mario Tokoro,et al.  Object-oriented concurrent programming , 1987 .

[25]  Martin Odersky,et al.  Actors That Unify Threads and Events , 2007, COORDINATION.

[26]  Liuba Shrira,et al.  Promises: linguistic support for efficient asynchronous procedure calls in distributed systems , 1988, PLDI '88.

[27]  Denis Caromel,et al.  Toward a method of object-oriented concurrent programming , 1993, CACM.

[28]  C. A. R. Hoare,et al.  Monitors: an operating system structuring concept , 1974, CACM.