Jasmin
此条目翻译品质不佳。 (2019年1月9日) |
此条目没有列出任何参考或来源。 (2019年1月9日) |
开发者 | Jonathan Meyer, Troy Downing and Daniel Reynaud |
---|---|
当前版本 | 2.4(5月7日, 2010) |
操作系统 | JVM |
类型 | Computer Programming |
许可协议 | GNU General Public License |
网站 | Sourceforge.Net |
Jasmin 是一自由软件的 JAVA 组合语言 ,可用于设计 class(类别)档如同以JAVA 语言设计的相同与运用,但更可以得以深入了解 JAVA 语言与 PC 之间的运作模式与方法。Jasmin 程式的编译与设计,仍是以易读性为考量来设计,其适合熟悉 JAVA 语言与略懂 C/C++ 语法的程序员,如同 assembler-like 语法以 Java Virtual Machine (JVM) 架构与程序设计书为核心;但是 Jasmin 仍不同于 Java 编程语言的编译 (Compiler Programing) 方式,而是以类似 C++ compiler 的方式来组译 (assembler) 与连结(linker)。
Jasmin 的编写以类似 assembler-like 语法,其语言设计简洁与易读,编译完成后会被转成为一中间码 (bytecode) 的 JVM Class 档,可用于 Java 即时系统 (Java runtime system).
编译完成后会形成二种接进低阶档案格式即 Java classes (Class) 档与 Java Archive (JAR) 档为主,软件主要网址为 tinapoc (页面存档备份,存于互联网档案馆)
Jasmin 范例
传统以 HelloWorld 程式来开场:
.class public HelloWorld .super java/lang/Object .method public static main([Ljava/lang/String;)V .limit stack 2 .limit locals 1 getstatic java/lang/System/out Ljava/io/PrintStream; ldc "Hello World." invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V return .end method
编译方式
相关编译使用方法如下:
java -jar jasmin.jar examples\HelloWorld.j [Windows] 或 java -jar jasmin.jar examples/HelloWorld.j [Unix/Mac OS X]
历史
Jon Meyer 与 Troy Downing 两位为开发 Jasmin 程式的主要人物,他们并共同出版了名为 "JAVA 虚拟机器"(台湾欧莱礼 ISBN 957-8247-50-8)的书籍 "Java Virtual Machine" (Oreilly ISBN 1-56592-194-1)。注1
由 Jon Meyer 开发的版本仅到 1.1 版 (Oct. 21, 2004),而随后由业余人士接手开发与维护,而在 Daniel Reynaud 维护版本至 2.0 (Dec. 2, 2005) 时产生一延伸计划 JasminXT [1] (页面存档备份,存于互联网档案馆) ,即前述的 Tinapoc 但开发版仅至 0.4 alpha版本而已,整体说明文件仍是连结于 Jasmin 网页可以参考 JasminXT [2] (页面存档备份,存于互联网档案馆),而在 sourceforge 的 Tinapoc 开发网页上则是无任何文件留存,仅二行文字说明 "Tinapoc Is Not Another Pun On Coffee" 与 "(and there is no J in it !)" 而已。目前有另一延伸计划 SPOOFAX-JASMIN [3](页面存档备份,存于互联网档案馆),是一延伸 JasminXT 计划,而维护转放到 Github [4](页面存档备份,存于互联网档案馆)。
Jasmin 目前提供了 164 个指令,内容包涵了相同于编程语言的类别、例外、运算子、资料处理、数学处理与执行绪等。程 式本身的编辑可使用一般 的文字处理软件来编写(如:记事本,UltraEdit 或高阶的程式编写用的 IDE 界面软件亦可)。编写完成后的档案必需命名以 ".j" 为结尾才可以作为组译时使用,以运作于 Java 的虚拟机器内。
Jasmin 目前仍是定订为 SourceForge 组织内部的 Open Source project. Project 维护最新维护时间 Apr. 29, 2013 但软件档案维护仍是 2.4 版 (May 7, 2010)。
注1:目前该书中文繁体版本已绝版,但目前仍有些二手书于市面交易。
参考
- Java bytecode
- the Java .class file format
- C to Java Virtual Machine compilers
- ARM9E,a CPU family with direct Java bytecode execution ability
- Common Intermediate Language (CIL), a similar bytecode specification that runs on the CLR of the .NET Framework。
- Compiler
- Disassembler
- List of assemblers
- Instruction set
- Microassembler
书籍
- Jon Meyer: Java Virtual Machine. O'Reilly Associates, 1st Edition March 1997. ISBN 978-1-56592-194-8
外部链接
- Jasmin Official page at Sourceforge* JaminXT Syntax(页面存档备份,存于互联网档案馆)
- Spoofax-Jasmin(页面存档备份,存于互联网档案馆)
- Sun's Java Virtual Machine Specification(页面存档备份,存于互联网档案馆)
- Jasmin instructions (页面存档备份,存于互联网档案馆)
- Publisher of "Java Virtual Machine" (页面存档备份,存于互联网档案馆)
- personal website of Jon Meyer (页面存档备份,存于互联网档案馆)
- Programming Languages for the Java Virtual Machine(页面存档备份,存于互联网档案馆)
- Organization for Java Technology Specification (页面存档备份,存于互联网档案馆)
- Jasmin - Java Assembler Interpreter