V22.0201 (sec. 1) - Computer Systems Organization (Honors)

Assignment #5

EVM  (Espresso Virtual Machine) Interpreter

You are to write an interpreter for a small subset of the Java Virtual Machine, the "Espresso Virtual Machine".  You may write this interpreter in any language you like.  If you plan to use something other than Java, C, C++, Pascal, or Visual Basic, please ask first.  The JVM subset excludes Specifically, you are to support at least the following 'basic' JVM instructions: In addition, if you choose to support object creation, you should include: All assignments should support the following two EVM instructions The format of a class file is somewhat complicated;  we will discuss the format of this file, and provide an example program for reading the file.

You have to write

If you are doing this project alone, the minimal interpreter includes all basic instructions, plus iprint and sprint.  If being done by a group of two people, the project should include, in addition to the basic instructions, either new object creation or static verification.  If being done by a three person team, it should include both new object creation and static verification.

The project is worth 15 points.  We will award a few extra points (1-3 points) for projects above the minimal requirements (e.g., for single-person efforts doing one of the optional parts).  Please mail both source and executable, and indicate clearly how much of the assignment you have done.

The assignment is due on December 4th.  There is a penalty of 1/2 point for each day late.