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.

9. Conclusion and Future Work<br />

• Chapter 3 surveys the state of the art in VMs and <strong>de</strong>termines the requirements<br />

for a unifying substrate to support concurrent programming.<br />

The survey shows that today’s VMs relegate support for parallel programming<br />

to libraries, w<strong>here</strong>as they do provi<strong>de</strong> support for concurrent<br />

programming at the VM level. The survey of the wi<strong>de</strong> field of concurrent<br />

and parallel programming resulted in an un<strong>de</strong>rstanding that parallel<br />

programming requires VM support mainly for optimized performance.<br />

Concurrent programming on the other hand requires VM support<br />

to guarantee its semantics. Sec. 3.2.4.1 conclu<strong>de</strong>s with a general set<br />

of requirements. Both sets of programming concepts require orthogonal<br />

mechanisms from a VM, and this dissertation chooses to focus on<br />

concurrent programming.<br />

With this focus in mind, common problems for the implementation of<br />

concurrent programming concepts on top of today’s VMs are discussed.<br />

Based on the surveys and the i<strong>de</strong>ntified problems, Chapter 3 conclu<strong>de</strong>s<br />

that a multi-language VM needs to support notions of managed state,<br />

managed execution, ownership, and controlled enforcement to provi<strong>de</strong> a unifying<br />

abstraction for concurrent programming.<br />

• Chapter 4 motivates the choice of Smalltalk and its different implementations<br />

as the foundation for the experiments. It introduces Smalltalk,<br />

SOM (Simple Object Machine), Squeak, Pharo, and the RoarVM.<br />

• Chapter 5 introduces the ownership-based metaobject protocol (OMOP)<br />

as a unifying substrate for the support of concurrent programming in a<br />

multi-language VM. First, it motivates the choice of a metaobject protocol<br />

(MOP) by giving an overview of open implementations and MOPs<br />

and their capabilities to enable incremental modifications of language<br />

behavior. Second, it presents the <strong>de</strong>sign of the OMOP, <strong>de</strong>tails its based<br />

on examples, and <strong>de</strong>scribes the semantics based on a byteco<strong>de</strong> interpreter.<br />

Finally to emphasize its novelty, it discusses the OMOP in the<br />

context of related work.<br />

• Chapter 6 evaluates the OMOP’s applicability to the implementation of<br />

concurrent programming and it evaluates how the OMOP satisfies the<br />

stated requirements. The case studies <strong>de</strong>monstrate that Clojure agents,<br />

software transactional memory, and event-loop actors can directly be<br />

mapped onto the OMOP. Furthermore, the evaluation shows that the<br />

OMOP facilitates the implementation of concurrent programming concepts<br />

that require VM support for their semantics. Consequently, the<br />

238

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

Saved successfully!

Ooh no, something went wrong!