here - Stefan-Marr.de
here - Stefan-Marr.de
here - Stefan-Marr.de
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