透過您的圖書館登入
IP:3.147.81.154
  • 學位論文

Java正反組譯器

Java Assembler and Disassembler

指導教授 : 廖賀田

摘要


Java語言具有完整的跨平台特性,也就是說它的程式碼既與電腦廠牌無關,也與作業系統無關。由Java原始程式碼經過編譯後的Java位元組碼可以在各種平台的Java虛擬機上執行。Java程式在執行上比C/C++語言稍慢,在保持跨平台特性的前提下,我們可以藉由直接撰寫位元組碼來提昇Java程式的效能。 Java虛擬機的規格書只定義出稱為位元組碼的機器語言,而未定義Java組合語言。本論文分析Java虛擬機的位元組碼,定義出一套Java組合語言,並為它製作正組譯器與反組譯器。正組譯器負責讀入程式員撰寫的Java組合語言檔,將它組譯成位元組碼。而反組譯器負責讀入位元組碼,將它反組譯成Java組合語言檔。 本論文的Java組合語言在功能上比目前網路上流傳的各種Java組合語言都完整。本論文的正組譯器與反組譯器不但可以用來增進程式效能,更可以用來作為學習Java虛擬機與位元組碼的優良工具。

關鍵字

Java 組合語言 組譯 反組譯

並列摘要


Java is a completely Platform-Independent programming language. In other words, we don’t have to concern about what brand or Operating System our computers are. The Java Bytecode, compiled from the source code, can be executed on the Java Virtual Machines implemented for various platforms. The executing speed of Java is slightly slower than that of C/C++. With the prerequisite in maintaining the capability of platform-independency, we can improve the performance of the Java programs by rewriting the Bytecodes. The Java Virtual Machine Specification only defines the machine language called Bytecode, but no definition about Java Assembly Language. In this thesis, we analyze the Bytecode of the Java Virtual Machine, bring up a Java Assembly Language, and implement a supporting Assembler/ Disassembler. The Assembler reads in the Java Assembly files written by the programmers and outputs the Java Bytecodes. The Disassembler reads in the Java Bytecodes and Disassemble them to the Java Assembly files as its output. The functions of the Assembly Language we bring up in this thesis are much more complete than other existing Assembly. The Assembler/ Disassembler implemented in this thesis can be used not only to improve the performance of the applications but also as an excellent tool for learning the Java Virtual Machine and the Bytecode.

並列關鍵字

Java Assembly Assemble Disassemble

參考文獻


[1] Benji Jasik, “dis - A Fast and Simple Disassembler”, .
[6] K. K. A. Kumar and P. Norp, “JReversePro 1.4.1”, Oct. 2002, .
[9] Sun Microsystems, inc., “Java 2 Platform, Standard Edition.”, .
[2] Chris Rathman, “Jasper 1.0”, Aug. 2000, .
[3] Ian Kaplan, “Javad: A Java Class File Disassembler”, Jan. 2000, .

延伸閱讀


國際替代計量