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.3. Supported Concepts<br />

Table 6.3.: Concepts Supported by the OMOP: Supported by OMOP (X), Partial Support<br />

by OMOP (+)<br />

Supported Sem OMOP Supported Sem OMOP<br />

Active Objects X X No-Intercession X X<br />

Actors X X Si<strong>de</strong>-Effect Free X X<br />

Asynchronous Invocation X X Transactions X X<br />

Axum-Domains X X Vats X X<br />

Isolation X X<br />

Partial Support Sem OMOP Partial Support Sem OMOP<br />

By-Value X + Persistent Data Structures X +<br />

Channels X + Replication X +<br />

Data Streams X + Speculative Execution X +<br />

Map/Reduce X + Tuple Spaces X +<br />

Message sends X +<br />

referred to most of them, and thus, this section discusses them only briefly.<br />

The structure of the discussion roughly mirrors the structure of Sec. 3.2.2.<br />

Asynchronous Invocation, Active Objects Active objects and other concepts<br />

that rely on the guarantee that an object’s methods are invoked asynchronously<br />

are directly supported by the OMOP. The provi<strong>de</strong>d intercession<br />

handler #requestExecOf:on:with:lkup: can be used to customize invocation<br />

constraints. As previously discussed in Sec. 6.2.1, intercession handlers can be<br />

used for instance to implement Clojure agents. Its flexibility enables the implementation<br />

of a wi<strong>de</strong> range of different policies and asynchronous invocation<br />

is one of them.<br />

Actors, Axum-Domains, Isolation, Vats The required support for proper<br />

state encapsulation, i. e., isolation, can be realized by combining support for<br />

ownership, intercession handlers for reading and writing of object fields and<br />

globals, as well as intercession handlers for primitives. By customizing these,<br />

as <strong>de</strong>monstrated in Sec. 6.2.3, it becomes possible to support concurrent programming<br />

concepts such as actors, axum-domains, and vats.<br />

No-intercession, Si<strong>de</strong>-effect Freedom The notion of disallowing intercession,<br />

i. e., reflective operations is often used to increase control over state<br />

changes. Similarly, the requirement of some concepts that operations be si<strong>de</strong>effect<br />

free stems from the <strong>de</strong>sire to simplify reasoning over co<strong>de</strong>. Both no-<br />

159

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

Saved successfully!

Ooh no, something went wrong!