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.

5.2. Design of the OMOP<br />

metaclass-based mo<strong>de</strong>l as foundation for the implementation of these concurrent<br />

programming concepts, the used library would only be usable for a<br />

single concurrent programming concept, because it typically has one fixed<br />

metaclass.<br />

Message-reification-based mo<strong>de</strong>ls can be more powerful than metaclassbased<br />

mo<strong>de</strong>ls, but are best applied to languages <strong>de</strong>signed with an everythingis-a-message-send<br />

approach. This is however an impractical constraint for multilanguage<br />

VMs.<br />

Hence, a better foundation for a meta interface is a metaobject-based mo<strong>de</strong>l<br />

that fulfills all requirements i<strong>de</strong>ntified in Sec. 3.4. For the problems consi<strong>de</strong>red<br />

in this dissertation, a proxy approach adds un<strong>de</strong>sired complexity. Specifically,<br />

the constraint that every client needs to use the correct proxy imposes a high<br />

bur<strong>de</strong>n on the correct construction of the system, since the actual object reference<br />

can easily leak. Furthermore, the ad<strong>de</strong>d flexibility is not necessary to<br />

satisfy the i<strong>de</strong>ntified requirements, and the ad<strong>de</strong>d overhead of an additional<br />

proxy per object might provoke an un<strong>de</strong>sirable performance impact.<br />

To conclu<strong>de</strong>, a metaobject-based approach that allows one metaobject to <strong>de</strong>scribe<br />

the semantics for a set of objects similar to the group-based approaches<br />

provi<strong>de</strong>s an suitable foundation.<br />

5.2. Design of the OMOP<br />

Following the stated requirements (cf. Tab. 3.7) for the support of concurrent<br />

programming concepts, a unifying substrate needs to support the intercession<br />

of state access and execution, provi<strong>de</strong> the notion of ownership at the<br />

level of objects, 4 and enable control over when the <strong>de</strong>sired guarantees are enforced.<br />

As argued in the previous section, metaobject-based mo<strong>de</strong>ls for MOPs<br />

provi<strong>de</strong> a promising foundation to <strong>de</strong>sign a minimal meta interface for the<br />

purpose of this dissertation. Note that the goal of this chapter is to <strong>de</strong>sign<br />

a unifying substrate for a multi-language VM. The main focus is to improve<br />

support for language semantics of concurrent programming concepts. T<strong>here</strong>fore,<br />

aspects such as security, reliability, distribution, and fault-tolerance are<br />

outsi<strong>de</strong> the scope for the <strong>de</strong>sign of this substrate.<br />

To satisfy the requirement of representing ownership at the granularity<br />

of objects, the major element of the OMOP is the notion of a concurrency<br />

domain. This domain enables the <strong>de</strong>finition of language behavior similar to<br />

metaobjects or metaclasses in other MOPs. The language behavior it <strong>de</strong>fines<br />

4 Our notion of ownership does not refer to the concept of ownership types (cf. Sec. 5.6).<br />

113

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

Saved successfully!

Ooh no, something went wrong!