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

specification is <strong>de</strong>emed sufficiently precise to answer the questions for which<br />

and how concepts are exposed accurately.<br />

Other aspects have a stronger impact on the confi<strong>de</strong>nce in the results. In<br />

general, the survey is based on the specifications, language manuals, and<br />

inspection of actual implementations. While it initially inclu<strong>de</strong>d the Parrot<br />

VM 16 as an interesting subject, it was omitted, since the mismatch between<br />

documentation and implementation was major. It was not clear whether the<br />

documentation was outdated or visionary, or whether the un<strong>de</strong>rstanding of<br />

the implementation was not sufficient, making a proper assessment impossible.<br />

This example raises the question of how valid the results are. Most implementations<br />

use customary names and make an effort to be comprehensible,<br />

which results in a high confi<strong>de</strong>nce in the results. However, it is not possible<br />

to eliminate the possibility that the analysis is to a lesser extent inaccurate or<br />

incomplete.<br />

Exposure Assessment The confi<strong>de</strong>nce in the assessment that a given concept<br />

is supported directly by a VM is high, because the VM implementations<br />

provi<strong>de</strong> direct evi<strong>de</strong>nce that a concept is supported as primitive or as part<br />

of the the instruction set. However, a concept may have been missed. Thus,<br />

some concepts may in fact be supported by the VM directly. Completeness is<br />

thus an issue for the question of whether concepts are directly supported by<br />

a VM. This assessment could also not by verify trivially. However, this form<br />

of completeness has only little impact on the overall results, since it inclu<strong>de</strong>s<br />

a larger number of different VMs.<br />

Concept Completeness The confi<strong>de</strong>nce in the completeness of the overall<br />

i<strong>de</strong>ntified set of concepts that is exposed by a VM and its libraries is high,<br />

because the typically sufficiently extensive and well structured language documentations<br />

enable a trivial verification for completeness.<br />

Problematic are concepts that are solely available in the implementations<br />

and remain undocumented. One example for such a case is the relatively<br />

well know Unsafe class in Oracle’s JVM implementation. 17 Other similarly<br />

private APIs might have been missed. Arguably, such concepts are not meant<br />

to be used by programmers targeting the VM, and t<strong>here</strong>fore do not need to be<br />

consi<strong>de</strong>red as concepts that are offered by the VM. Instead, these concepts are<br />

16 http://www.parrot.org/<br />

17 http://hg.openjdk.java.net/jdk7/jdk7/jdk/log/tip/src/share/classes/sun/misc/U<br />

nsafe.java<br />

54

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

Saved successfully!

Ooh no, something went wrong!