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.

6.4. Comparing Implementation Size<br />

sends and channels entail more than these semantics, the OMOP supports<br />

only one important aspect, and thus, these concepts are partially supported.<br />

Managed State and Managed Execution The remaining three concepts of<br />

replication, and speculative execution could benefit from the available tracking<br />

of state mutation and method invocation. For instance, the implementation<br />

of replication with a certain consistency guarantee needs reliable tracking of<br />

all state changes, which can be realized similarly to how the OMOP is used<br />

for an STM implementation. Speculative execution has similar requirements<br />

and can be realized with some variation of STM semantics to enable a clean<br />

abort of a speculatively executed computational branch. However, the OMOP<br />

provi<strong>de</strong>s support for only one of the important aspects of these concepts and<br />

beyond that the concepts are largely orthogonal to the concerns handled by<br />

the OMOP.<br />

6.3.3. Conclusion<br />

This section discussed how the OMOP facilitates the implementation of the<br />

concepts i<strong>de</strong>ntified in Sec. 3.2. For all 18 concepts that require VM support<br />

to enforce their semantics, the OMOP either provi<strong>de</strong>s full support or simplifies<br />

the implementation substantially. It does that by providing flexible mechanisms<br />

to realize managed state, managed execution, ownership,<br />

and controlled enforcement.<br />

Language implementers benefit substantially from this support, because for<br />

all evaluated concepts it addresses challenges such as immutability, isolation,<br />

custom execution policies, and custom state access policies (cf. Tab. 6.1).<br />

6.4. Comparing Implementation Size<br />

This section argues that the OMOP provi<strong>de</strong>s an abstraction that has a positive<br />

impact on the implementation size for concurrent programming concepts. It<br />

<strong>de</strong>monstrates this by showing that the OMOP-based implementations of AmbientTalkST<br />

and LRSTM are smaller than their ad hoc counterparts. In addition,<br />

it argues that the OMOP-based implementations of active objects, and<br />

CSP are sufficiently concise, i. e., have small implementations as well. This<br />

section first <strong>de</strong>tails the used metrics and then discusses the three case studies,<br />

i. e., the implementation of Clojure agents, LRSTM, and AmbientTalkST.<br />

161

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

Saved successfully!

Ooh no, something went wrong!