Skip to content
Sébastien Doeraene edited this page Mar 16, 2012 · 3 revisions

VM Object Model

In the VM, we have essentially 3 type systems that interact:

  • The Oz dynamic type system, as it is described in the reference of the Oz language.
  • The C++ type system, obviously, as the VM is written in C++.
  • The VM Object Model, that we describe in this document.

The Oz and C++ type systems have so many discrepancies that it is difficult to write an implementation of Oz in C++ directly. The purpose of the VM object model is to have a mid point, a type system in between them, that allows to write C++ code while thinking about the Oz type system. It is, in fact a domain-specific type system.

The pages in this section of the wiki are written more or a less in tutorial style. They give lots of code snippets that illustrate the explanations. You might want to -and you should- try them yourself. For this purpose, we provide a minimal template application in which you can start hacking right away!