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.

1. Introduction<br />

of solutions for different application domains, none of the VMs provi<strong>de</strong> sufficient<br />

support for these techniques, and thus, application <strong>de</strong>velopers cannot<br />

benefit from these solutions. Furthermore, current research [Catanzaro et al.,<br />

2010; Chafi et al., 2010] indicates that t<strong>here</strong> is no one-size-fits-all solution to<br />

handle the complexity of concurrent and parallel programming, and t<strong>here</strong>fore,<br />

application <strong>de</strong>velopers are best served with access to the whole field of<br />

solutions.<br />

Domain-specific languages are one promising way to alleviate the complexity<br />

of concurrent and parallel programming. While the aca<strong>de</strong>mic community<br />

continuously proposes abstractions that facilitate certain use cases, reduce the<br />

acci<strong>de</strong>ntal complexity, and potentially provi<strong>de</strong> improved performance, language<br />

implementers struggle to build these abstractions on top of today’s<br />

VMs, because the rudimentary mechanisms such multi-language VMs provi<strong>de</strong><br />

are insufficient and require the language implementers to tra<strong>de</strong> off implementation<br />

simplicity, correctly implemented language semantics, and performance.<br />

The goal of this dissertation is to improve the support VMs provi<strong>de</strong> for concurrent<br />

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

to build a wi<strong>de</strong> range of language abstractions on top of multi-language VMs.<br />

1.1. Research Context<br />

The research presented in this dissertation touches upon the domains of concurrent<br />

and parallel programming as well as on virtual machine construction. The<br />

main concerns of these domains are the following:<br />

Concurrent and Parallel Programming Today, an overwhelmingly large body<br />

of literature <strong>de</strong>scribes a wi<strong>de</strong> range of different concepts to manage<br />

concurrency, coordinate parallel activities, protect shared resources, <strong>de</strong>scribe<br />

data <strong>de</strong>pen<strong>de</strong>ncies for efficient computation, etc. Already with<br />

the first computers, i. e., the Zuse Z3 [Rojas, 1997] and the ENIAC [Mitch<br />

and Atsushi, 1996], researchers have experimented with such concepts<br />

for concurrent and parallel programming, but never came close to a<br />

one-size-fits-all solution.<br />

Virtual Machine Construction Software <strong>de</strong>velopers wi<strong>de</strong>ly adopted high-level<br />

language VMs such as the JVM and the CLI as multi-language runtimes,<br />

because the research on just-in-time compilation [Aycock, 2003]<br />

2

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

Saved successfully!

Ooh no, something went wrong!