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.

1. Introduction<br />

tra<strong>de</strong>d in for better performance, which hin<strong>de</strong>rs the <strong>de</strong>velopment of domainspecific<br />

abstractions.<br />

An additional problem arises from the fact that the field of concurrent and<br />

parallel programming is largely uncharted, i. e., t<strong>here</strong> is no wi<strong>de</strong>ly accepted<br />

taxonomy that covers the wi<strong>de</strong> range of different concepts. While a number<br />

of surveys provi<strong>de</strong> an overview of programming concepts and language constructs<br />

[Briot et al., 1998; De Bossc<strong>here</strong>, 1997; Gupta et al., 2001; Skillicorn<br />

and Talia, 1998], they are far from complete and do not cover more recent<br />

work in the field. Thus, it is not even clear which concepts a VM should support<br />

in or<strong>de</strong>r to be a viable platform for a wi<strong>de</strong> range of different problems<br />

from the field of concurrent and parallel applications. Supporting all possible<br />

concepts directly would not be possible, because of the resulting complex feature<br />

interactions within VMs. Since t<strong>here</strong> is no one-size-fits-all solution either,<br />

one problem this dissertation needs to solve is to i<strong>de</strong>ntify which of all these<br />

concepts a virtual machine should support in or<strong>de</strong>r to enable library and language<br />

implementers to provi<strong>de</strong> domain-specific solutions for a relevant range<br />

of concurrent and parallel programming.<br />

To conclu<strong>de</strong>, VMs such as the JVM and the CLI lack sufficient support for<br />

parallel and concurrent programming. The goal of this dissertation is to i<strong>de</strong>ntify<br />

a unifying substrate for concurrent and parallel programming that allows<br />

efficient implementation in a VM and provi<strong>de</strong>s the necessary abstractions to<br />

enable language and library implementers to implement custom abstractions.<br />

In summary, the two problems that need to be addressed are:<br />

Insufficient Support for Concurrent and Parallel Programming in VMs Today’s<br />

VMs do not provi<strong>de</strong> sufficient support for concurrent and parallel<br />

programming in or<strong>de</strong>r to enable library and language implementers to<br />

build domain-specific abstractions.<br />

Set of Required Concepts Unknown Since supporting all possible concepts<br />

is prohibitively complex, a VM needs to make abstractions of concrete<br />

programming concepts or support a subset of them. However, the subset<br />

of concurrent and parallel programming concepts that would enable<br />

domain-specific solutions is currently unknown.<br />

4

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

Saved successfully!

Ooh no, something went wrong!