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