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. Jasmin was written as the companion to the book “Java Virtual Machine”, soon to be published by O’Reilly, written by Troy Downing and Jonathan Meyer.
Jamaica, the JVM Macro Assembler, is an assembly language for JVM bytecode programming. It uses Java syntax to define a JVM class except for the method body that takes bytecode instructions, including Jamaica‘s built-in macros. In Jamaica, bytecode instructions use mnemonics and symbolic names for all variables, parameters, data fields, constants and labels. Jamaica is a simplified JVM assembly language. It does not support inner classes. Variables are all method-wide and are strongly-typed. Jamaica is a language facade for a Java class creation API, JavaClassCreator. This API closely mimics the Jamaica language, allows users to define a Java class with the same flow, and supports all the Jamaica instruction set and macros.
Ok, call it obscure… At http://www.esolangs.org/wiki/Befunge we learn that “Befunge is believed to be the first two-dimensional, ASCII-based, general-purpose (in the sense of “you could plausibly write Hunt the Wumpus in it” ) programming language. Its form was influenced in part by the multimedia scripting application AmigaVision, and in part by Forth.” Here is the interpreter for it.