The original Interpreter VM allocated context objects in heap. This proved to be very inefficient because context objects were allocated frequently and had a short life span. Therefore, it was refactored into ContextInterpreter and a new StackInterpreter which allocated context objects on the stack.
The source code is in the VMMaker package in VMMaker project repository.