05.08.2014 Views

here - Stefan-Marr.de

here - Stefan-Marr.de

here - Stefan-Marr.de

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3.2. A Survey of Parallel and Concurrent Programming Concepts<br />

of each other and require significantly different research, this dissertation<br />

chooses to focus on guaranteeing the semantics, i. e., the correctness of implementations<br />

for concurrent programming concepts on top of multi-language<br />

VMs.<br />

3.2.1. Survey Design<br />

The goal of this survey is to i<strong>de</strong>ntify concepts that are relevant for a multilanguage<br />

VM in or<strong>de</strong>r to facilitate the implementation of concurrent and<br />

parallel programming abstractions. To that end, this section first discusses<br />

the selected questions that categorize the concepts. Then, it <strong>de</strong>tails the approach<br />

to i<strong>de</strong>ntify parallel and concurrent programming concepts and finally,<br />

it presents the findings and conclu<strong>de</strong>s with general requirements for the support<br />

of these concepts.<br />

3.2.1.1. Survey Questions<br />

When features are consi<strong>de</strong>red for inclusion in a VM, one of the main goals is<br />

to avoid unnecessary complexity (cf. Sec. 2.1). From this it follows that a new<br />

concurrent or parallel programming concept needs to be ad<strong>de</strong>d to a VM only<br />

if it cannot reasonably be implemented in terms of a library on top of the VM.<br />

Thus, our first question is:<br />

Lib Can this concept be implemented in terms of a library?<br />

Interpreting the question very broadly, it consi<strong>de</strong>rs whether some variation<br />

of the concept can be implemented, i. e., a variation for instance with missing<br />

semantic guarantees such as isolation. Thus, such a library implementation<br />

can either suffer from losing semantic guarantees, or it has to accept performance<br />

drawbacks. The following two questions account for this variation:<br />

Sem Does this concept require runtime support to guarantee its semantics?<br />

Perf Are t<strong>here</strong> indications that runtime support would result in significant<br />

performance improvements compared to a pure library solution?<br />

The answers to Sem also consi<strong>de</strong>r interactions of different languages on top<br />

of a VM as well as the influence of reflection. This is relevant since language<br />

guarantees are often enforced by a compiler and do not carry over to the<br />

level of the VM. One example is the semantics of single-assignment variables,<br />

which is typically not transferred to the byteco<strong>de</strong> level of a VM.<br />

57

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

Saved successfully!

Ooh no, something went wrong!