Jasmin
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 二 . limit locals 一
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 九百五十七石八千兩百四十七石五十鋪八)的冊 " Java Virtual Machine " ( Oreilly ISBN 一孵五孵六千五百九十二孵一百九十四孵一 )。註一由 Jon Meyer 開發的版本干焦到一鋪一版 ( Oct . 二十一 , 兩千空四 ),綴尾仔是賰頭路人士接手開發佮維護,啊若佇咧 Daniel Reynaud 維護版本到二四界 ( Dec . 二 , 兩千空五 ) 時產生了後一直共計畫做伙 JasminXT [一],欲講的就是 Tinapoc 毋過開發版干焦到零友四 alpha 版本爾,整體說明文件猶是連結 Jasmin 網頁會當參考 JasminXT [二],啊若佇咧 sourceforge 的 Tinapoc 開發網頁上是無任何文件留存,干焦字途的文字說明 " Tinapoc Is Not Another Pun On Coffee " 佮 " ( and there is no J in it ! ) " 爾爾。目前有另外一个延伸計劃 SPOOFAX-JASMIN [三],是一延伸 JasminXT 計畫,維護轉囥到 Github [四]。
Jasmin 目前提供了一百六十四个指令,內容包涵仝款是程式語言的類別、例外、運算子、資料處理、數學處理佮執行緒等等的。程式本身的編輯會使用一般的文字處理軟體來編寫(如:記事本,UltraEdit 高階的程式編寫用的 IDE 介面軟體亦可)。 編寫完成了後的檔案需要號名 " . j " 為結尾毋才會當做組譯的時陣用,以運作於 Java 的虛擬機器內底。
Jasmin 目前猶是定做 SourceForge 組織內部的 Open Source project . Project 維護上新維護時間 Apr . 二十九 , 二千空一十三但軟體檔案維護猶原是二四版 ( May 七 , 二千空一十 )。
註註咧:目前該冊中文繁體版本已絕版,但目前猶有一寡二手冊佇市面交易。
參考
- Java bytecode
- the Java . class file format
- C to Java Virtual Machine compilers
- ARM 九 E,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 , 一 st Edition March 一千九百九十七 . ISBN 九百七十八追一孵五孵六千五百九十二孵一百九十四孵八
外部連結
- 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