here - Stefan-Marr.de
here - Stefan-Marr.de
here - Stefan-Marr.de
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
6.5. Discussion<br />
Based on these observations, the OMOP and its support for concurrent<br />
programming concepts can be consi<strong>de</strong>red novel.<br />
Significance The support provi<strong>de</strong>d by the OMOP is significant, because it<br />
facilitates the implementation of all 18 concepts that require VM support to<br />
enforce their semantics. These 18 concepts are the full set of concepts i<strong>de</strong>ntified<br />
by the survey in Sec. 3.2, which is <strong>de</strong>signed to cover the whole field of<br />
concurrent and parallel programming concepts. 9 of these concepts are fully<br />
supported, while the OMOP address common implementation challenges for<br />
a key aspect of the other 9 concepts.<br />
This means that if a VM such as the JVM or the CLI were to add support<br />
for the OMOP, languages built on top of these VMs could use any of the<br />
97 i<strong>de</strong>ntified concurrent and parallel programming concepts (cf. Sec. 3.2.2)<br />
without compromises on the enforcement of semantics. In addition to the<br />
concepts that are already supported by JVM and CLI, and in addition to the<br />
concepts that can be implemented as libraries without drawbacks, the OMOP<br />
completes VM support for concurrent programming.<br />
T<strong>here</strong>fore, the set of concepts supported by the OMOP is significant.<br />
Unifying Substrate Finally, this section discusses the unifying properties<br />
of the OMOP. The goal is to argue that the OMOP makes an abstraction of<br />
concrete programming concepts and that the set of provi<strong>de</strong>d mechanisms is<br />
minimal.<br />
The claim that the OMOP makes an abstraction of concrete concepts is<br />
supported by the fact that the 18 supported concepts are not realized with a<br />
one-to-one relationship between the OMOP’s mechanisms and the concepts.<br />
Tab. 6.3 lists the supported concepts: active objects, actors, asynchronous invocation,<br />
Axum-domains, isolation, no-intercession, si<strong>de</strong>-effect free, transactions,<br />
and vats. The concepts supported by the OMOP are ownership, enforcement<br />
status, reading and writing of object fields and globals, method execution,<br />
thread resumption, and handling of primitives (cf. Sec. 5.2). T<strong>here</strong>fore,<br />
the OMOP’s concepts need to be combined to build the higher-level concepts.<br />
Furthermore, to build different concepts multiple parts of the OMOP have to<br />
be combined. The OMOP does not possess the notion of actors or isolation<br />
and t<strong>here</strong>fore, it makes an abstraction of these concepts.<br />
The OMOP provi<strong>de</strong>s a minimal set of elements to satisfy the requirements<br />
of Sec. 3.4. The proposed <strong>de</strong>sign in its form is minimal because none of the<br />
parts can be removed without reducing the number of concurrent program-<br />
173