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.
Description
ScienceDirect - Computer Languages, Systems & Structures : Linguistic symbiosis between event loop actors and threads
%0 Journal Article
%1 VanCutsem200980
%A Cutsem, Tom Van
%A Mostinckx, Stijn
%A Meuter, Wolfgang De
%D 2009
%J Computer Languages, Systems & Structures
%K Actors Concurrency Encapsulation JVM Java Reflection Symbiosis
%N 1
%P 80 - 98
%R 10.1016/j.cl.2008.06.005
%T Linguistic Symbiosis Between Event Loop Actors and Threads
%U http://www.sciencedirect.com/science/article/pii/S1477842408000249
%V 35
%X 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.
@article{VanCutsem200980,
abstract = {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.},
added-at = {2011-08-10T23:08:05.000+0200},
author = {Cutsem, Tom Van and Mostinckx, Stijn and Meuter, Wolfgang De},
biburl = {https://www.bibsonomy.org/bibtex/2e0f8c5ddac6dd445b4ac8ae2c7cbe92c/gron},
description = {ScienceDirect - Computer Languages, Systems & Structures : Linguistic symbiosis between event loop actors and threads},
doi = {10.1016/j.cl.2008.06.005},
interhash = {1c340aa57fe8c94911b3a4226e5c7507},
intrahash = {e0f8c5ddac6dd445b4ac8ae2c7cbe92c},
issn = {1477-8424},
journal = {Computer Languages, Systems & Structures},
keywords = {Actors Concurrency Encapsulation JVM Java Reflection Symbiosis},
note = {ESUG 2007 International Conference on Dynamic Languages (ESUG/ICDL 2007)},
number = 1,
pages = {80 - 98},
timestamp = {2011-08-10T23:08:05.000+0200},
title = {Linguistic Symbiosis Between Event Loop Actors and Threads},
url = {http://www.sciencedirect.com/science/article/pii/S1477842408000249},
volume = 35,
year = 2009
}