I completed this project as part of my 3rd year Computer Science undergraduate assessment. The aim was to implement a JIT runtime for the Oxford Oberon-2 platform using the open source libjit library. The Oxford Oberon-2 platform consists of a compiler and runtime, written by my supervisor Mike Spivey, and the Oberon-2 language itself is used in the “Imperative Programming” course here at Oxford. The runtime system uses a stack-based virtual machine, with an architecture similar to that of the JVM and CLR.
Even with only a few simple runtime code optimisations, the completed JIT performed far better than the interpreter implementation in a number of informal benchmarking tests, even coming close to the performance of Mono 2.6. A possible future project could involve adding to and improving on the optimisation techniques, and more formal benchmarking tests.
The 10,000-word dissertation that I submitted for assessment can be found below. It discusses the technical aspects of the project in much more detail.