Footnote:
Diese Datenquelle enthält auch Bestandsnachweise, die nicht zu einem Volltext führen.
Description:
Diese Arbeit beschreibt Design, Implementierung und Evaluierung einer virtuellen Maschine für die Kernsprache von Oz, die wir mit L bezeichnen. Wir stellen L aus didaktischen Gründen als Erweiterung einer Teilsprache von SML dar. Die wichtigsten Unterschiede von L zu SML sind: logische Variablen, Threads, Synchronisation und dynamische Typisierung. Ausgehend von einer informellen Beschreibung der dynamischen Semantik über ein Graphenmodell entwickeln wir daraus schrittweise auf unterschiedlichen Abstraktionsebenen eine virtuelle Maschine für L. Wir beschreiben zunächst ein einfaches Grundmodell. Darauf aufbauend diskutieren wir verschiedene Optimierungen. Schließlich verfeinern wir weiter, indem wir auf Aspekte der Implementierung des Modells eingehen. Abschließend evaluieren wir die Effektivität der vorgestellten Techniken an einer Reihe von größeren Anwendungen aus der Praxis. Weiter zeigen wir, daß die Implementierung der Sprache kompetitiv ist mit den schnellsten Emulatoren für statisch getypte funktionale Sprachen. ; This thesis presents the design, implementation and evaluation of a virtual machine for the core language of Oz, which we call L. We present L for didactic reasons as an extension of a sublanguage of SML. The most important differences between L and SML are: logic variables, threads, synchronization and dynamic typing. Starting from an informal description of the dynamic semantics in terms of a graph model, we develop step by step on various levels of abstraction a virtual machine for L. We begin with a simple basic model. We then propose several optimizations of this model. Afterwards we keep refining our approach by addressing specific aspects of the implementation of the model. Finally we evaluate the effectiveness of the techniques using a set of larger real world applications. Further we show, that the implementation of the language is competitive with the fastest emulators for statically typed functional languages.