跳至內容

Jasmin

維基百科,自由的百科全書
Jasmin
開發者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:目前該書中文繁體版本已絕版,但目前仍有些二手書於市面交易。

參考

書籍

外部連結