A Study on the Pentium Code Generation using Retargetable Code Generation Technique from Bytecode

Bytecode로부터 재목적 코드 생성 기법을 이용한 Pentium 코드 생성에 관한 연구

  • 정성옥 (광주여자대학교 컴퓨터학부) ;
  • 고광만 (광주여자대학교 컴퓨터학부) ;
  • 이성주 (조선대학교 컴퓨터공학부)
  • Published : 2000.07.01

Abstract

The massive growth of the internet and the world-wide-web leads us to research the programming languages for the development of applications in heterogeneous, network-wide distributed environments. Java is an object-oriented language for such a environment and the Java programming language environment provides a portable, interpreted, high-performance, simple programming language. Bytecode is an intermediate code for Java language and it enables the development of applications on multiple platform in heterogeneous, distributed networks. But it takes much time to execute Bytecode because of using an interpretation method. In this paper, we design and implement a retargetable code generation system which can be systematically reconfigured to generate code for a variety of distinct target computers. From the system, we realize the code generation system which translates the Bytecode being produced by Java compiler into Pentium target code. We use ACK code generation system to do the work easily.

인터넷 및 WWW의 급속한 성장은 이 기종 기계 및 분산 네트워크 환경에서 수행될 수 있는 응용 소프트웨어를 위한 프로그래밍 언어에 대한 연구를 부각시키고 있다. 이러한 이기종 기계 및 분산 네트웍 환경에서 응용 소프트웨어 개발을 위해 개발된 Java 언어는 객체지향 특성을 지원하는 언어이며 Java 프로그래밍 언어 환경에서는 이식성, 번역성, 고성능, 및 단순성 등을 지원하고 있다. Bytecode는 Java 언어의 중간 코드로서 이 기종 기계 및 분산 네트웍 환경의 다중 플랫폼 환경에서 다양한 응용 소프트웨어의 개발을 가능하게 하고 있다. 하지만 Bytecode는 인터프리터 기법으로 실행되는 특성 때문에 많은 실행 시간을 소비하는 단점을 가지고 있다. 본 연구에서는 Bytecode로부터 정형화된 방법으로 다양한 목적기계에 대한 코드를 생성하기 위해 재목적 코드 생성 시스템을 설계하고 구현하고자 한다. 특히, Java 컴파일러로부터 생성된 Bytecode로부터 실질적으로 Pentium 코드를 생성하는 시스템을 구현한다. 본 연구의 원활한 수행을 위해 컴파일러 자동화 도구인 ACK의 코드 생성 시스템을 기반으로 한다.

Keywords

References

  1. Alfred V. Aho, Mahadevan Ganapathi, Steven W. K. Tjiang, 'Code Generation U sing Tree Matching and Dynamic Programming,' ACM TOPLAS, Vol. 11, No.4., pp.491-516, Oct., 1989 https://doi.org/10.1145/69558.75700
  2. Anant Agrawal, Robert B. Garner and Donald C. Jackson, 'SPARC:An ASIC Solution for High-Performance Micropro- cessors,' The SPARC Technical papers, Sum Microsystems Inc., 1991
  3. 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
  4. Christoph M. Hoffmann and 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
  5. 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
  6. Susan L. Graham, 'Table-driven Code Generator', IEEE Computer, Vol. 13, No. 8, pp25-34, Aug., 1980
  7. Philip Homburg, Raymond Michiels, 'A Fast Backend for SPARC Processor,' report-81, Netherlands Vrije Universiteit, 1989
  8. Frans Kaashoek, Koen Langendoen, 'The Code Expander Generator,' Dept. of Mathematics and Computer Science, Vrije Universiteit, 1989
  9. Karen A. Lemone, Design of Compilers : Techniques of Programming Language Translation, CRC Press, 1992
  10. Richard P. Paul, 'SPARC Architecture, Assembly Language Programming, and C,' Prentice-Hall, 1994
  11. Hans van Staveren, 'The table driven code generator from ACK 2nd. Revision,' report-81, Netherlands Vrije Universiteit, 1989
  12. Andrew S. Tanenbaum, Hans van Staveren and Johan W. Stevenson, 'A Practical Tool Kit for Making Portable Compilers,' CACM, Vol. 26, No. 9, Sep., 1983 https://doi.org/10.1145/358172.358182
  13. Jon Meyer, Troy Downing, 'Java Virtual Machine', O'REILLY, 1997
  14. Peter van der Linden, 'just JAVA', Prentice-Hall, 1997
  15. Tim Lindholm, Frank Yellin, 'The Java Virtual Machine Specification' ADDISON-WESLEY, 1996
  16. Christopher W. Fraser, David R. Hanson, Todd A. Proebsting, 'Engineering a Simple, Efficient Code Generator', ACM Letters on Programming Languages and System, pp. 231-226, Sep., 1982 https://doi.org/10.1145/151640.151642
  17. Wen-Mei W. Hwu, 'IMPACT: An Architecture Framework for Multiple-Instruction Issue Processors', Proceeding of the 18th International Symposium on Computer Architecture, pp. 266-275, 1991 https://doi.org/10.1145/115952.115979
  18. Wen-Mei W. Hwu, 'Java Bytecode to Native Code Translation: The Caffeine Prototype and Preliminary Results', The Procedding of the 29th Annual International Symposium on Microarchitecture, Dec., 1996 https://doi.org/10.1109/MICRO.1996.566453
  19. William A. Wulf, 'An Overview of the Production Quality Compiler-Compiler Project', IEEE Computer, Vol. 13, No. 8, pp, 38-49, Aug., 1980