Jasmin

維基百科,自由的百科全書
跳至導覽 跳至搜尋
Jasmin
開發者Jonathan Meyer, Troy Downing and Daniel Reynaud
當前版本2.4(5月7日, 2010)
原始碼庫
  • {{URL|example.com|可选的显示文本}}
Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
引擎
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    作業系統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
    

    編譯方式[編輯]

    相關編譯使用方法如下:

    • Windows: java -jar jasmin.jar examples\HelloWorld.j
    • Unix/Mac OS X: java -jar jasmin.jar examples/HelloWorld.j

    歷史[編輯]

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

    參考[編輯]

    書籍[編輯]

    • Jon Meyer: Java Virtual Machine. O'Reilly Associates, 1st Edition March 1997. ISBN 978-1-56592-194-8

    外部連結[編輯]