Maxine Research VM

Oracle's meta-circular research VM written in Java.

Project Details

Maxine Research VM

Maxine Research VM

Oracle's meta-circular research VM written in Java.

Project Overview

The majority of software today is written in managed languages, and new languages continue to emerge, demanding high performance and scalable virtual machines. A flexible and extensible virtual machine is invaluable in researching new implementation techniques, new language features, and evaluating design alternatives.

Yet as existing virtual machines have progressed in performance and functionality, their implementations have become unmanageably complex for all but dedicated product engineers.

Many years of experience have shown that the Java programming language and its development tools provide a major productivity improvement for application developers. Unfortunately, the popularity of Java as an application development language hasn't penetrated deeply into systems programming, particularly VM development.

We would like to promote use of the Java language in managed runtime research and development and in systems programming in general. The Maxine project is exploring software designs, methodologies and tools that make VM development more productive.

  • Maxine Project Wiki
  • The Maxine project's public Wiki page contains most of the important and current information about the project: an overview, discussion of features, instructions for downloading and building, access to mailing lists, extensive documentation about the Inspector, and much more.

  • Maxine Open Source
  • The Maxine Open Source code base is hosted on Oracle's Kenai server.

  • Publications
  • Papers, presentations, and demonstrations that have resulted from the project and its predecessors, both by the Oracle Labs team and by the growing number of collaborators.

  • People
  • The people who have worked on or with Maxine in Oracle Labs, both staff and interns.

Principal Investigator

Douglas Simon


Doug Simon is a Director at Oracle Labs. He is currently a contributor to the GraalVM project with a particular focus on the Graal compiler and its integration into various runtimes (GraalVM, OracleJDK, Native Image) in various configurations (AOT and JIT compiled).

Between 2006-2012, Doug was part of the Maxine project, an open source meta-circular Virtual Machine for the JavaTM platform written in Java. The Graal compiler grew out of this project.

Between 2003-2005, Doug was one half of the team that developed Squawk, a CLDC compliant JVM implemented mostly in Java (including a generational garbage collector). Squawk was initially targeted at the next generation of Java Card systems. It was subsequently redesigned for slightly less resource constrained devices (e.g. low end cell phones) and became the underlying JVM for the Sun SPOT platform. Squawk includes support for multi-tasking, application migration and an execute-in-place bytecode format optimized for both space and fast interpretation.

Upon returning to Sun Labs full time in 2001, Doug co-founded a project to investigate secure, fine-grained dynamic provisioning of applications on small devices. He led the development of the SKVM, a prototype of these ideas based on the KVM.

During an internship at Sun Labs in 1998, Doug was part of the team that developed the Spotless system that initially ran on the Palm Pilot and later became the basis for the CLDC Reference Implementation.

Doug obtained a Bachelors in Information Technology from the University of Queensland in 1997, graduating with first class honors.