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

survey is the set of VMs that are used as runtime platforms for a wi<strong>de</strong> range of<br />

languages for a single system. Thus, distributed VMs such as the PVM [Geist<br />

et al., 1994] are not consi<strong>de</strong>red because they solve a distinct set of problems<br />

such as physical distribution and fault tolerance, which are outsi<strong>de</strong> of the<br />

scope of this dissertation.<br />

This survey consi<strong>de</strong>rs the Java Virtual Machine (JVM) [Lindholm et al.,<br />

2012], the Common Language Infrastructure (CLI) [ECMA International, 2010],<br />

and the Parrot VM to be multi-language VMs. The JVM is with the addition<br />

of the invokedynamic byteco<strong>de</strong> [Rose, 2009; Thalinger and Rose, 2010] explicitly<br />

<strong>de</strong>signed to host a wi<strong>de</strong>r range of languages. The CLI and Parrot VM 1<br />

have been explicitly <strong>de</strong>signed as execution platforms for multiple languages<br />

from the beginning. Because of its close relation to the JVM (cf. Sec. 3.1.2.1),<br />

the survey inclu<strong>de</strong>s the Dalvik VM as a multi-language VM, as well.<br />

While JavaScript and its VMs have not been <strong>de</strong>signed as multi-language<br />

platforms, wi<strong>de</strong> availability led to their adoption as a platform for language<br />

implementation. 2 T<strong>here</strong>fore, this survey inclu<strong>de</strong>s JavaScript as well. The discussion<br />

is based on JavaScript’s standardized form ECMAScript [ECMA International,<br />

2011] and the upcoming HTML5 standard to cover WebWorkers 3<br />

as a mechanism for concurrent programming.<br />

To complement these multi-language VMs, this survey inclu<strong>de</strong>s additional<br />

VMs that either support relevant concurrent and parallel programming concepts,<br />

or have contributed to VM implementation techniques. The selected<br />

VMs are: DisVM [Lucent Technologies Inc and Vita Nuova Limited, 2003], Erlang<br />

[Armstrong, 2007], Glasgow Haskell Compiler (GHC), Mozart/Oz, Perl, 4<br />

Python, 5 Ruby, 6 Self [Chambers et al., 1989], and Squeak [Ingalls et al., 1997].<br />

An overview over the subjects, including the relevant version information is<br />

given in Tab. 3.1.<br />

3.1.1.3. Survey Execution<br />

For each subject of the survey, the analysis uses the VM specification if it is<br />

available and if it provi<strong>de</strong>s sufficient information for the assessment. Otherwise,<br />

it examines the source co<strong>de</strong> of the implementation and the language<br />

1 Parrot – speaks your language, Parrot Foundation, access date: 4 December 2012<br />

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

2 altJS, David Griffiths, access date: 4 December 2012 http://altjs.org/<br />

3 http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html<br />

4 http://perldoc.perl.org/perl.html<br />

5 http://docs.python.org/release/3.2.3/<br />

6 http://www.ruby-lang.org/en/documentation/<br />

42

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

Saved successfully!

Ooh no, something went wrong!