Design and Implementation of Java Bytecode Translator usin Pattern Matching Technique

패턴 매칭 기법을 이용한 자바 바이트코드 변환기의 설계 및 구현

  • Ko, Kwang-Man (SangJi University, School of Computer, Information and Communication Engineering)
  • 고광만 (尙志大學敎 컴퓨터情報工學部)
  • Published : 2002.07.01

Abstract

The various researches are investigated for translating Bytecode into native code which can be implemented in the specific processor using classical compiling methods to improve the execution speed of the Java application programs. The code generation techniques using pattern matching can generate more high-quality machine code than code expansion techniques. We provide, in this research, the standardized pattern describing methods and pattern matching techniques that can be used to generate the register-based intermediate code which is for the effective native code generation from Bytecode. And we designed and realized the intermediate code translator with which we can generate the high-quality register-based intermediate code using standardized pattern described formerly.

자바 언어의 실행 속도를 개선하기 위해 전통적인 컴파일 방법을 사용하여 바이트코드를 특정 프로세서에서 수행될 수 있는 목적기계 코드로 변환하는 다양한 연구가 진행중이다. 패턴 매칭 이용한 코드 생성 기법은 코드 확장 기법에 비해 양질의 코드를 생성할 수 있는 장점을 가지고 있다. 본 연구에서는 바이트코드로부터 효과적으로 네이티브 코드를 생성하기 위해 레지스터 기반의 중간 언어를 효율적으로 생성할 수 있는 정형화된 패턴 기술 방법과 패턴 매칭 기법에 대해 제시한다. 또한 기술된 정형화 패턴을 활용하여 양질의 레지스터 기반 중간 코드를 생성하는 중간 코드 변환기를 설계하고 구현하였다.

Keywords

References

  1. A. V. Aho, M. Ganapathi, S. W. K. Tjiang, 'Code Generatin Using Tree Matching and Dynamic Programming', ACM TOPLAS Vol.11, No.4, pp.159-175, 1989 https://doi.org/10.1145/69558.75700
  2. R. G. G. Cattell, 'Automatic Derivation of Code Generators from Machine Descriptions,' ACM TOPLAS, Vol. 2, No. 2, pp. 173-190. Apr., 1980 https://doi.org/10.1145/357094.357097
  3. Mahadevan Ganapathi, Charles N. Fischer, John L. Hennessy, 'Retargetable Compiler Code Generation', ACM Computing Surveys, Vol. 14, No. 4, pp. 573-592, Dec., 1982 https://doi.org/10.1145/356893.356897
  4. Susan L. Graham, 'Table-Driven Code Generation', IEEE Computer, Vol. 13, No. 8, pp. 25-34, Aug., 1980
  5. Karen A. Lemone, Design of Compilers : Techniques of Programming Language Translation, CRC Press, 1992
  6. Hans van Staveren, 'The table driven code generator from ACK 2nd. Revision,' report-81, Netherlands Vrije Universiteit, 1989
  7. Wen-mei W. Hwu, 'Java Bytecode to Native Code Translation: The Caffeine Prototype and Preliminary Results', The proceeding of the 29th Annual International Symposium on Microarchitecture, Dec., 1996 https://doi.org/10.1109/MICRO.1996.566453
  8. A. Krall and R. Grafl, CACAO : A 64 bit Java VM Just-in-Time Compiler, Concurrency: practice and experience, 1997. http://www.complang.tuwien.ac.at/~andi
  9. Ronald Veldema, Jcc, a native Java compiler, Vrije Universiteit Amsterdam, July, 1998
  10. Jon Meyer and Troy Downing, JAVA Virtual Machine, O'REYLLY, 1997
  11. Ken Arnold and James Gosling, The Java Programming Language, Sun Microsystems, 1996
  12. Christoph M. Hoffmann & Michael J. O'Donnell, 'Pattern Matching in Trees,' Journal of the Association for Computing Machinery, Vol. 29, No. 1, pp. 68-95, Jan., 1982. https://doi.org/10.1145/322290.322295