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.
Download PDF Show BibTeX
Login to edit