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.

Series in Computer Science

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