Hartung-Gorre Verlag
Inh.: Dr.
Renate Gorre D-78465
Konstanz Fon:
+49 (0)7533 97227 Fax: +49 (0)7533 97228 www.hartung-gorre.de
|
S
|
Series in
Computer Science
Edited by Thomas M. Stricker
Vol. 3
Patrik Reali
Using Oberon's Active Objects for Language
Interoperability and Compilation.
2003, 184 Seiten/pages, € 64,00.
ISBN 3-89649-863-0
The modern run-time environments provide a high-level object-oriented
programming model, reflection capabilities, and a large amount of libraries.
These platforms are particularly suitable to host programs written in many
different languages. To let all languages reuse the common libraries, the
platform has a reflection mechanisms to access the
metadata information, which can be used by the compilers to provide language
interoperability in a seamless way. Writing a compiler for such platforms
becomes an exercise in programming model mapping. Most of the languages rely on
closely related flavors of the object-oriented model, but the mappings from one
model to another are not always trivial. This thesis investigates the
implementation of a language interoperability platform based on an active
object-based object-oriented model. First, it analyzes the relations between
the type systems of the platform and its subset used for interoperability, and
the languages for the platform. Each language type system must be mappable to the platform type system, and the
interoperability type system must be bidirectionally mappable to every language type system. Many languages
implement a different flavor of the object-oriented model. A few simple mapping
rules to transform each flavor onto another one are presented. Second, the Aos kernel implementing Active Oberon's active object model
is introduced as language interoperability platform. The language Active Oberon
is presented as natural notation for the active object model. The Paco scope-parallel Active Oberon compiler is a case study
that shows a non-trivial application relying on active objects. It parses each
scope concurrently and solves forward references in the code with parser
synchronization, instead of requiring a second parsing pass. Third, the Jaos Java Virtual Machine for Aos
is presented. The jit-compiler maps the Java model to
the active object model, and compiles the java byte-code using the data-layout
and facilities provided by the kernel; the jit-compiler
and the Java reflection libraries use the same metadata repository as the
Active Oberon compiler: this allows both languages to interoperate seamlessly.
Plugins for the metadata repository and for the kernel's dynamic loader allow to use multiple metadata persistency formats and multiple
object-file formats at the same time.
Die modernen
Laufzeitumgebungen definieren ein objektorientiertes Programmiermodel, Reflektionsfunktionalität und umfangreiche
Funktionsbibliotheken. Diese Plattformen eignen sich besonders gut um Programme
zu unterstützen, die in verschiedenen Programmiersprachen entwickelt worden
sind. Um den Zugriff auf die gemeinsamen Funktionsbibliotheken zu ermöglichen,
bietet die Plattform durch Reflektion Zugriff auf
Metadaten an, damit die Compiler eine automatisierte und transparente
Sprachinteroperabilität gewährleisten können. Ein Compiler für solche Platformen wird zum Programmiermodelübersetzer.
Obwohl die meisten Programmiersprachen auf Varianten des objektorientieren
Modells basieren, sind die Abbildungen von Modelvariante
zu Modelvariante sind nicht immer trivial, und oft
mit semantischen Verlusten behaftet. Diese These untersucht die Implementation
einer Sprachinteroperabilitätsplattform basierend auf aktiven Objekten. Zuerst
werden die Beziehungen zwischen dem Programmiersprachtypsystems,
dem Plattformstypsystemen, und dem gemeinsamen Interoperabilitätstypsystem analysiert. Das Programmiersprachtypsystem soll vollständig auf das Plattformtypsystem abbildbar
sein. Das Interoperabilitätstypsystem soll dazu
bidirektional auf eine Untermenge des Programmiersprachtypsystem
abbildbar sein. Es wird vorgestellt, wie die
verschiedenen Varianten des objektorientierten Models aufeinander abgebildet
werden können. Zweitens wird der Aos-Kernel als
Sprachinteroperabilitätsplattform vorgestellt. Das auf aktiven Objekten
basierte Modell und die Active Oberon Programmiersprache werden eingeführt. Der
parallele Paco Compiler für Active Oberon wird als
Fallstudie einer nicht trivialen Anwendung aktiver Objekte gezeigt. Paco übersetzt jeden Sichtbarkeitbereich
im Quellecode nebenläufig, und behandelt Symbolreferenzen, die vor der
Symboldefinition auftreten, als Synchronisationsproblem, statt einen zweiten
Durchlauf über den Quellcode zu verlangen. Drittens wird die Jaos Java Virtual Machine für Aos vorgestellt. Der just-in-time Compiler bildet das
Java-Model auf Oberons aktive Objekte ab. Die Abbildung verwendet so weit wie
möglich die Datenauslegung und Funktionalität des Kernels; der jit-Compiler und die Java Reflektionsklassen
bauen auf den selben Metadaten wie der Paco Compiler. Damit können beide Sprachen transparent interoperieren. Die Plugin-basierte
Architektur des Metadaten-Systems und des dynamischen Laders erlauben die
gleichzeitige Verwendung von unterschiedlichen Metadaten-
und Objektfileformate.
Buchbestellungen in Ihrer
Buchhandlung, bei www.amazon.de
oder direkt:
Hartung-Gorre Verlag /
D-78465 Konstanz
Telefon: +49 (0) 7533
97227 Telefax: +49 (0) 7533 97228
http://www.hartung-gorre.de eMail: verlag@hartung-gorre.de