My PhD research was into virtual machines, with the aim of producing a system which quickly produces good native code by just-in-time translation. This system is called Mite, and is intended to be a good target for all compiled languages.

Mite: a basis for ubiquitous virtual machines
My PhD dissertation; it is much shorter and, I hope, more readable than most.

The following papers about Mite are also available:

Mite's semantics
A formal semantics.
Mite's assembly language
Mite's assembler syntax, and extensions to the semantics.
Mite's object format
The specification of Mite's object module format.
Mite: a tutorial introduction
A brief tutorial. The best place to start.
Mite: a fast and flexible virtual machine
An introduction to Mite, given at EuroForth '98. A little out of date, but more readable than the specs.
Exceptional Mite: simple yet flexible non-local exits in a binary-portable VM
A detailed discussion of Mite's support for exception mechanisms. Incomplete.

The source code for the ARM/RISC OS implementation of Mite can be downloaded:

Last updated 2023/09/23