An efficient Meta-Object Protocol for Scheme

Peter Feigl


Abstract

Meta-object protocols offer introspective capabilities to object-oriented languages and provide the programmer with a way to interfere with the design decisions the language designer proposed. They open up the implementation, leaving the programmer with choice concerning the exact semantics of object representation, inheritance, generic function invocation etc.

This work presents a meta-object protocol for the programming language Scheme that offers similar power to existing meta-object protocols in other languages, yet is designed to allow efficient implementation.

A number of sample applications was implemented and is presented with details on how the meta-object protocol allowed their implementation. They are intended as an indication that the meta-object protocol is powerful enough for actual applications.

The final chapters summarise the design, the implementation and the applications. The proposed meta-object protocol is compared to other existing approaches, and its applicability to other languages is investigated.

Kurzfassung

Metaobjekt-Protokolle bieten introspektive Fähigkeiten für objektorientierte Programmiersprachen und erlauben dem Programmierer, in verschiedener Weise die Sprachentwurfsentscheidungen des Programmiersprachenentwicklers zu beeinflussen. Sie öffnen die Implementierungen für den Programmierer und erlauben Einfluß auf die Speicherrepräsentation von Objekten, Vererbung, Aufruf von generischen Funktionen, etc.

Diese Arbeit präsentiert ein Metaobjekt-Protokoll für die Programmiersprache Scheme, das den anderen existierenden Metaobjekt-Protokollen entsprechende Mächtigkeit besitzt, aber dafür ausgelegt ist, dass eine effiziente Implementierung möglich ist.

Einige verschiedene Beispiele wurden ausimplementiert und werden vorgestellt, um zu zeigen, wie das Metaobjekt-Protokoll deren Implementierung erlaubt. Sie dienen dazu zu neigen, dass das Metaobjekt-Protokoll mächtig genug für Anwendungen der realen Welt ist.

Die letzten Kapitel fassen das Design, die Implementierung und die Anwendungen zusammen. Das vorgeschlagene Metaobjekt-Protokoll wird mit anderen existierenden Herangehensweisen verglichen und dessen Anwendbarkeit auf andere Sprachen wird untersucht.


PhD thesis, Johannes Kepler University Linz, Dezember 2011

Download als pdf