Identifying A Unifying Mechanism for the Implementation of Concurrency Abstractions on Multi-Language Virtual Machines
S. Marr, and T. D'Hondt. Objects, Models, Components, Patterns, 50th International Conference, TOOLS 2012, volume 7304 of TOOLS'12 (LNCS), page 171-186. Berlin / Heidelberg, Springer, (May 2012)(acceptance rate 31%).
DOI: 10.1007/978-3-642-30561-0_13
Abstract
Supporting all known abstractions for concurrent
and parallel programming in a virtual machines (VM) is a futile
undertaking, but it is required to give programmers appropriate tools and
performance. Instead of supporting all abstractions directly,
VMs need a unifying mechanism similar to INVOKEDYNAMIC for JVMs.
Our survey of parallel and concurrent programming concepts identifies
concurrency abstractions as the ones benefiting most from support in a VM.
Currently, their semantics is often weakened, reducing their engineering benefits.
They require a mechanism to define flexible language guarantees.
Based on this survey, we define an ownership-based meta-object protocol
as candidate for VM support. We demonstrate its expressiveness by
implementing actor semantics, software transactional memory, agents,
CSP, and active objects.
While the performance of our prototype confirms the need for VM support, it
also shows that the chosen mechanism is appropriate to express a
wide range of concurrency abstractions in a unified way.
%0 Conference Paper
%1 MOP_TOOLS
%A Marr, Stefan
%A D'Hondt, Theo
%B Objects, Models, Components, Patterns, 50th International Conference, TOOLS 2012
%C Berlin / Heidelberg
%D 2012
%I Springer
%K Abstraction Concurrency LanguageSupport MeMyPublication Parallelism VirtualMachine myown
%P 171-186
%R 10.1007/978-3-642-30561-0_13
%T Identifying A Unifying Mechanism for the Implementation of Concurrency Abstractions on Multi-Language Virtual Machines
%U http://www.stefan-marr.de/2012/03/identifying-a-unifying-mechanism-for-the-implementation-of-concurrency-abstractions-on-multi-language-virtual-machines/
%V 7304
%X Supporting all known abstractions for concurrent
and parallel programming in a virtual machines (VM) is a futile
undertaking, but it is required to give programmers appropriate tools and
performance. Instead of supporting all abstractions directly,
VMs need a unifying mechanism similar to INVOKEDYNAMIC for JVMs.
Our survey of parallel and concurrent programming concepts identifies
concurrency abstractions as the ones benefiting most from support in a VM.
Currently, their semantics is often weakened, reducing their engineering benefits.
They require a mechanism to define flexible language guarantees.
Based on this survey, we define an ownership-based meta-object protocol
as candidate for VM support. We demonstrate its expressiveness by
implementing actor semantics, software transactional memory, agents,
CSP, and active objects.
While the performance of our prototype confirms the need for VM support, it
also shows that the chosen mechanism is appropriate to express a
wide range of concurrency abstractions in a unified way.
%@ 978-3-642-30560-3
@inproceedings{MOP_TOOLS,
abstract = {Supporting all known abstractions for concurrent
and parallel programming in a virtual machines (VM) is a futile
undertaking, but it is required to give programmers appropriate tools and
performance. Instead of supporting all abstractions directly,
VMs need a unifying mechanism similar to \texttt{INVOKEDYNAMIC} for JVMs.
Our survey of parallel and concurrent programming concepts identifies
concurrency abstractions as the ones benefiting most from support in a VM.
Currently, their semantics is often weakened, reducing their engineering benefits.
They require a mechanism to define flexible language guarantees.
Based on this survey, we define an ownership-based meta-object protocol
as candidate for VM support. We demonstrate its expressiveness by
implementing actor semantics, software transactional memory, agents,
CSP, and active objects.
While the performance of our prototype confirms the need for VM support, it
also shows that the chosen mechanism is appropriate to express a
wide range of concurrency abstractions in a unified way.},
acceptancerate = {0.31},
added-at = {2012-03-09T11:39:29.000+0100},
address = {Berlin / Heidelberg},
author = {Marr, Stefan and D'Hondt, Theo},
biburl = {https://www.bibsonomy.org/bibtex/2534230490269cbc736c0c6c510686b3b/gron},
blog = {http://stefan-marr.de/2012/03/identifying-a-unifying-mechanism-for-the-implementation-of-concurrency-abstractions-on-multi-language-virtual-machines/},
booktitle = {Objects, Models, Components, Patterns, 50th International Conference, TOOLS 2012},
doi = {10.1007/978-3-642-30561-0_13},
interhash = {e95335bd7d37bc29f2bb45e9ad362572},
intrahash = {534230490269cbc736c0c6c510686b3b},
isbn = {978-3-642-30560-3},
keywords = {Abstraction Concurrency LanguageSupport MeMyPublication Parallelism VirtualMachine myown},
month = may,
note = {(acceptance rate 31%)},
pages = {171-186},
pdf = {http://www.stefan-marr.de/downloads/tools12-smarr-dhondt-identifying-a-unifying-mechanism-for-the-implementation-of-concurrency-abstractions-on-multi-language-virtual-machines.pdf},
publisher = {Springer},
series = {TOOLS'12 (LNCS)},
timestamp = {2018-08-26T13:57:23.000+0200},
title = {Identifying A Unifying Mechanism for the Implementation of Concurrency Abstractions on Multi-Language Virtual Machines},
url = {http://www.stefan-marr.de/2012/03/identifying-a-unifying-mechanism-for-the-implementation-of-concurrency-abstractions-on-multi-language-virtual-machines/},
volume = 7304,
year = 2012
}