# Mite

*I haven’t actively worked on Mite for some years, but I have some undeveloped ideas about how to take it forwards, and I always welcome discussion on that subject. My more recent work has largely focussed on [Mit](https://github.com/rrthomas/mit) and [Bee](https://github.com/rrthomas/bee).*

_More recent work on Mite is on [GitHub](https://github.com/rrthomas/mite). The rest of the material on this page refers to the version developed for my PhD._

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](mite0/doc/PhD/mite.pdf)_=
    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](mite0/doc/PhD/Mite's semantics.tex)_=
    A formal semantics.
=_[Mite's assembly language](mite0/doc/PhD/Mite's assembly language.tex)_=
    Mite's assembler syntax, and extensions to the semantics.
=_[Mite's object format](mite0/doc/PhD/Mite's object format.tex)_=
    The specification of Mite's object module format.
=_[Mite: a tutorial introduction](mite0/doc/Mite: a tutorial introduction.tex)_=
    A brief tutorial. _The best place to start._
=_[Mite: a fast and flexible virtual machine](mite0/doc/other/Mite: a fast and flexible virtual machine.tex)_=
    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](mite0/doc/other/Exceptional Mite: simple yet flexible non-local exits in a binary-portable VM.pdf)_=
    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:

   * $webfile{mite0/src/mite.zip,Zip}