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 />

in the VM to gather a wi<strong>de</strong> range of runtime information for adaptive optimizations,<br />

e. g., high-level communication behavior and low-level data access<br />

frequency information. Further extensions, for instance to inspect and manipulate<br />

the runtime stack or the heap layout, would be useful as well. Thus a<br />

VM needs to provi<strong>de</strong> advanced infrastructure for dynamic optimization as<br />

well as facilities for customizable runtime feedback and monitoring.<br />

Policies for execution and state access require support from the VM to be<br />

enforced and need to be integrated with reflection. The second conclusion<br />

is that concepts that require VM support to guarantee their semantics show<br />

a number of commonalities. These concepts vary in only a small number<br />

of aspects, but with these variations they achieve different sets of language<br />

guarantees. The first aspect is the semantics of executing co<strong>de</strong> or invoking<br />

methods, and the second aspect is the accessibility and mutability of state. An<br />

additional common problem is that these basic aspects need to be properly<br />

integrated with concepts such as reflection to achieve the <strong>de</strong>sired semantics.<br />

Improving performance and improving the support for language semantics<br />

are two distinct research projects. To improve execution performance,<br />

an investigation of dynamic compilation, adaptive optimization, and runtime<br />

monitoring techniques is necessary. The main focus is on finding efficient techniques<br />

to gather and utilize a wi<strong>de</strong> range of different runtime information to<br />

adapt execution dynamically. Such research is expected to yield improvement<br />

for non-functional system requirements.<br />

In contrast, improved support for language semantics requires an investigation<br />

of correctness issues and techniques for changing language behavior.<br />

While performance is an issue <strong>here</strong> as well, the focus is on providing more<br />

flexibility to language <strong>de</strong>velopers to adapt execution semantics as necessary.<br />

Thus, this research is expected to yield improvements for functional requirements.<br />

While performance is a relevant aspect for this research question as<br />

well, it is not in the focus. To conclu<strong>de</strong>, the two research questions are distinct.<br />

T<strong>here</strong>fore, from our perspective, they should be tackled by two distinct<br />

research projects in or<strong>de</strong>r to provi<strong>de</strong> the projects with a clear scope and research<br />

goal.<br />

This dissertation concentrates on improving support for language semantics<br />

in VMs as the first step in or<strong>de</strong>r to achieve a full un<strong>de</strong>rstanding of the<br />

corresponding problems and to treat the question comprehensively. The main<br />

reason is to concentrate on improving functional concerns first and t<strong>here</strong>fore<br />

68

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

Saved successfully!

Ooh no, something went wrong!