05.08.2014 Views

here - Stefan-Marr.de

here - Stefan-Marr.de

here - Stefan-Marr.de

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3. Which Concepts for Concurrent and Parallel Progr. does a VM need to Support?<br />

mean that in certain situations reflective state changes need to be tracked in<br />

the same way that normal state changes are tracked.<br />

Tab. 3.7 summarizes these requirements briefly.<br />

3.5. Conclusions<br />

VMs support only concurrent programming concepts directly. Parallel programming<br />

concepts are provi<strong>de</strong>d in libraries only. Sec. 3.1 investigated the<br />

state of the art in VM support for concurrent and parallel programming. The<br />

survey examined thirteen VMs, including the contemporary multi-language<br />

VMs, and a number of VMs that are reputed for their support for concurrent<br />

and parallel programming. The analysis i<strong>de</strong>ntified for each VM the concepts<br />

it exposes and whether it exposes them in terms of implicit semantics, as part<br />

of the VM’s instruction set architecture, in terms of primitives, or merely as<br />

part of standard libraries. The major insight is that the surveyed VMs support<br />

only one or two categories of concepts. Furthermore, they consistently<br />

relegate support for parallel programming to their standard library without<br />

providing explicit support for optimization.<br />

Another observation is that common language guarantees such as isolation<br />

for actors or the constraints around the STM system of Haskell are realized as<br />

part of these VMs. Thus, the VM has full control over the exact set of provi<strong>de</strong>d<br />

guarantees. however, providing support for all conceivable concepts is not<br />

<strong>de</strong>sirable for a multi-language VM. Problems with complexity and feature<br />

interaction make it infeasible, as argued in Sec. 2.1.<br />

Parallel programming concepts benefit from performance optimizations,<br />

while concurrent programming concepts require semantic enforcement.<br />

Sec. 3.2 discussed a wi<strong>de</strong> range of concepts for concurrent and parallel programming.<br />

Concepts are categorized by answering the question of whether<br />

their semantics benefit from an enforcement in the VM and the question of<br />

whether their performance could benefit significantly from VM support. The<br />

result is that parallel programming concepts benefit most from performance<br />

optimization, while concurrent programming concepts require support from<br />

the VM to enforce their semantics.<br />

The concepts that require support from the VM to guarantee their semantics<br />

were chosen as the focus of this dissertation. T<strong>here</strong>fore, the remain<strong>de</strong>r of this<br />

dissertation investigates a unifying substrate for concurrent programming.<br />

86

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!