Jasmin (software)

Jasmin
Paradigm Assembly language
Developer Jonathan Meyer, Troy Downing, and Daniel Reynaud
Stable release
2.4 / May 7, 2010 (2010-05-07)
Platform JVM
OS Cross-platform
License BSD license
Website jasmin.sourceforge.net

Jasmin is a free open source assembler to create class files from human readable assembler-like syntax using the Java Virtual Machine instruction sets. Jasmin is not a Java programming language compiler.

Jasmin as an assembler takes ASCII descriptions of JVM Classes, written in a simple assembler-like syntax using the Java Virtual Machine instruction set. It converts them into binary JVM Class files, suitable for loading by a Java runtime system.

Example

The traditional HelloWorld starter in Jasmin:

 .class public HelloWorld.j
 .super java/lang/Object
 
 .method public <init>()V
    aload_0
    invokenonvirtual java/lang/Object/<init>()V
    return
 .end method
 
 .method public static main([Ljava/lang/String;)V
    .limit stack 2
    .limit locals 2
    getstatic      java/lang/System/out Ljava/io/PrintStream;
    ldc            "Hello World."
    invokevirtual  java/io/PrintStream/println(Ljava/lang/String;)V
    return
 .end method

History

Jon Meyer and Troy Downing wrote Jasmin for their published book "Java Virtual Machine".

At the time of writing there were no known freely available assembler for the Java Virtual Machine instruction set. The only known compilers at the time required input in Java syntax source code, and explicitly using a JVM instruction was impossible. Therefore, the authors set out to create an assembler suitable for manipulating and producing a class file to be executed on the Virtual machine.

Jasmin remains the oldest and the original Java assembler known for JVM.

Jasmin is currently located under a SourceForge Open Source project.

See also

Further reading

External links

This article is issued from Wikipedia - version of the 10/7/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.