+script: A JavaScript JVM

+script is a partial implementation of the Java Virtual Machine (JVM) written entirely in JavaScript. The goal of the project is to develop a complete working implementation of the JVM that can run entirely in a web browswer without requiring Java to be installed on the system. This would allow Java code to run on tablets like the iPad or netbooks like the Chromebook that do not have Java natively installed.

The +script project is currently being developed to allow students in Stanford's CS106A course to run their programs in a web browser. The goal will be to create a full working Java IDE, debugger, and execution environment in a browser so that people interested in learning how to program in Java can do so without ever having to download or install a single piece of software.

In its current incarnation, +script downloads and runs preprocessed Java class files. It uses a combination of an interpreter and compiler to try to execute code as fast as possible, and does a small amount of dynamic optimization on the bytecode it executes.

+script is currently under construction and I'm always adding more features to it. I'm trying to get as much of the standard libraries as possible up and running, though some of the major libraries (namely Swing) are still far out on the horizon. I'm also working on speeding up execution through a variety of dynamic and static analyses.

All of the development for +script is done live on the +script test server at www.stanford.edu/~htiek~/plus-script-www/. There is absolutely no guarantee that at any moment the site will be up-and-running, since if I'm adding new features or debugging the site might get a bit odd. However, if you're interested in peeking at what I've been working on, feel free to take a look!