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. Which Concepts for Concurrent and Parallel Progr. does a VM need to Support?<br />

The answers to Perf consi<strong>de</strong>r intuitive optimizations that become possible<br />

with knowledge of full language semantics. For instance, knowledge<br />

about immutability enables constant folding, and taking the semantics of critical<br />

sections into account enables optimizations like lock elision [Rajwar and<br />

Goodman, 2001]. Furthermore, the answers rely on the literature of proposed<br />

implementation strategies that require changes to a VM.<br />

The last categorization criterion is whether the concept is already common<br />

to VMs that are used as multi-language platforms and should be regar<strong>de</strong>d as<br />

prior art (PA). When it is already available to the major multi-language VMs<br />

i<strong>de</strong>ntified in Sec. 3.1.1.2, i. e., the JVM or CLI, general VM support for the concept<br />

is consi<strong>de</strong>red to be feasible and well un<strong>de</strong>rstood, and t<strong>here</strong>fore, does not<br />

need to be inclu<strong>de</strong>d in further discussion. Only JVM and CLI are consi<strong>de</strong>red<br />

<strong>here</strong>, because these two are specifically <strong>de</strong>signed as multi-language VMs.<br />

PA Is the concept already supported by a VM like the JVM or CLI?<br />

3.2.1.2. Selecting Subjects and I<strong>de</strong>ntifying Concepts<br />

The survey of Briot et al. [1998] of concurrent and distributed systems as well<br />

as the survey of Skillicorn and Talia [1998] of parallel mo<strong>de</strong>ls and languages<br />

are the main subjects to i<strong>de</strong>ntify concurrent and parallel programming concepts.<br />

They provi<strong>de</strong> a broad foundation and an overview over a wi<strong>de</strong> range of<br />

concurrent and parallel programming concepts. Since concurrent and parallel<br />

programming have been investigated for years in the field of logic programming<br />

as well, two surveys for parallel logic programming [De Bossc<strong>here</strong>, 1997;<br />

Gupta et al., 2001] complement the surveys from the imperative world. However,<br />

since all four surveys are dated and lack coverage of recent work, a<br />

number of languages used in research or industry and selected research papers<br />

from recent years are inclu<strong>de</strong>d as subjects to cover current trends. The<br />

full list of subjects is given in Tab. 3.3.<br />

This survey i<strong>de</strong>ntifies for each of these subject the basic concurrent and parallel<br />

programming concepts it introduces, i. e., the concepts that are presented<br />

by the paper or provi<strong>de</strong>d by the language. For languages, this inclu<strong>de</strong>s concepts<br />

from the language-level as well as the implementation-level. Note that<br />

the i<strong>de</strong>ntified concepts abstract necessarily from specific <strong>de</strong>tails that vary between<br />

the different subjects. Thus, this analysis does not regard minor variations<br />

of a concept separately. However, this leaves room for different interpretations<br />

of the survey questions. Furthermore, the analysis of subjects such<br />

as C/C++ and Java consi<strong>de</strong>rs only the core language and standard libraries.<br />

58

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

Saved successfully!

Ooh no, something went wrong!