Unification of Compile-time and Run-time Metaobject Protocols

Abstract

In this paper, we propose the unification of compile-time and run-time Metaobject Protocols (MOPs), to improve the efficiency and flexibility of object-oriented operating systems. We also propose a reflective programming system, named Cognac, which employs unified MOPs and provides language and runtime facilities for the Apertos object-oriented distributed operating system. In Cognac, each object has a single unified meta-space which defines both the semantics of the source programming language and the execution environment for the object. The definition of the unified meta-space comprises two parts: a compile-time meta-definition which defines how to generate the object binary code, and a run-time metadefinition which defines the run-time execution environment of the object code. Using this technique, the unification of active and passive objects can also be achieved. With this unification, programmers can concentrate on programming an algorithm without having to consider how objects are used and executed. Also, distributed objects can be more easily migrated.

    Similar works

    Full text

    thumbnail-image

    Available Versions