
Jasmin Home Page
Jon Meyer
March 1997
Jasmin is a Java Assembler Interface. It takes ASCII descriptions for Java
classes, written in a simple assembler-like syntax and using the Java
Virtual Machine instruction set. It converts them into binary Java class
files suitable for loading into a Java interpreter.
-
Java Virtual Machine
Jasmin was written as the companion to the book "Java Virtual Machine",
published by O'Reilly, written by Troy Downing and myself.
(available now!) (see cover).
Documentation
If you want to learn more about Jasmin, see:
- About Jasmin.
- Describes what Jasmin is, why I
wrote Jasmin, and the kinds of people who might be interested
in Jasmin.
- Jasmin Guide
- A basic Jasmin user guide. It describes the
syntax of the assembler, and how to use it.
- README
- The Jasmin README file that comes with the
Jasmin distribution.
- NEW! - Java Virtual Machine Instruction Reference
- A quick reference for all of the JVM instructions.
Other useful sources are:
-
NEW! Sun's Official Java Virtual Machine Specification (Acrobat/Postscript)
-
Addison Wesley has published a book on the Java Virtual Machine Specification,
which is a detailed analysis of the structure of the JVM. Available in all good
bookshops. See
here for more
details.
-
Old VM Spec
- Here is an old copy of the Java Virtual Machine spec I found lying around.
-
KAFFE
- Check out this free Java Virtual Machine Implementation.
-
Programming Languages for the Java Virtual Machine
-
An overview of programming languages and tools that target the Java Virtual
Machine.
-
Under the Hood: The lean, mean, virtual machine
-
An article describing the Java Virtual Machine, including a cool simulation applet.
Jasmin uses
Java Cup, and
JAS internally,
so you should check out these pages too.
Downloading Jasmin
You can obtain Jasmin 1.0 from:
-
http://cat.nyu.edu/meyer/jasmin/jasmin-1.06.tar.gz
(approx 410K)
or from:
-
http://cat.nyu.edu/meyer/jasmin/jasmin.zip
(approx 600K)
This version of Jasmin is written in Java, and needs Sun's JDK 1.0
to run or equivalent. I have tested it under Solaris, SGI and Windows 95 (using
Symantec Cafe and Visual J++).
For people who use systems with filename restrictions, a copy of the
ZIP file containing the classes used by Jasmin is available
here.
Register For Updates!!!
If you find Jasmin useful, send me email at meyer@cs.nyu.edu and I will add
your name to the list of people informed when new versions and bug fixes
become available.
Questions, Problems
If you have any questions or problems, you can email me at:
meyer@cs.nyu.edu.
JVM Disassembler also available
Shawn Silverman has created a disassembler that can output files
in the Jasmin syntax. This lets you take a Java class
file, disassemble it, modify the VM code, and reassemble it. Versions
for Windows and Solaris are available. See
here.
There is also a Perl version of the disassembler in the pipeline, and one
day I'll get down and write one myself!
Alternative Assembler
Jason Hunt (djh4@cs.wustl.edu) has also written a Java assembler, which you
may want to check out. See
http://siesta.cs.wustl.edu/~djh4/).
Still in Progress
I am working on JAM (Java Abstract Machine) - a thin layer over the
JVM that provides an easy-to-use API to the JVM. People interested in the
specs for this should email me.
Archive and FAQ
I am currently composing an archive of email on Jasmin, and
other useful notes. I expect to combine these into a FAQ at some stage.
Copyright (1996) Jonathan Meyer, under the terms of
the GNU General Public License.
Jasmin Home |
Jon Meyer's Home