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
開發者Jonathan Meyer, Troy Downing and Daniel Reynaud
當前版本2.4(5月7日, 2010)
作業系統JVM
類型Computer Programming
許可協議GNU General Public License
網站Sourceforge.Net

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:目前該書中文繁體版本已絕版,但目前仍有些二手書於市面交易。

參考

書籍

外部連結