DOI QR코드

DOI QR Code

Design and Implementation of the Virtual Machine for the Redesigned Java Class File

재설계된 자바 클래스 파일을 위한 가상기계의 설계 및 구현

  • 고광만 (상지대학교 컴퓨터정보공학부)
  • Published : 2005.06.01

Abstract

The virtual machine is a programming environment that supports device and platform independence. So far, virtual machines such as JVM and KVM have been used in a variety of environments for the Java language. Some virtual machines similar to them are also being developed and used. This paper Presents the experiences of extracting elements essential for small sized devices such as PDA from Java Class files(*.class) and designing a converted class file(*.rclass) for runtime efficiency by modifying its class file format and developing its translator. In addition, a virtual machine is developed to receive the translated class file entered and output the runtime results.

가상 기계(Virtual Machine; VM)는 언어에 대한 장치 독립성 및 플랫폼 독립성을 지원하는 프로그래밍 실행 환경이다. 현재까지 자바 언어를 위해 JVM, KVM 등이 다양한 환경에서 사용되고 있으며 유사한 가상 기계가 개발되어 활용되고 있다. 본 논문에서는 자바 클래스 파일(*.class)에서 PDA와 같은 소규모 장치에서 반드시 필요한 요소를 추출하고 실행 효율성을 위해 클래스 파일의 포맷을 재구성한 클래스 파일(*.rclass)을 설계하고 변환기를 개발하였다. 또한 재설계된 클래스 파일을 입력으로 받아 실행 결과를 생성하는 가상기계를 구현하였다.

Keywords

References

  1. Jon Meyer & Troy Downing , 'Java Virtual Machine', March, 1997
  2. Tim Lindholm and Frank Yellin, 'The Java Virtual Machine Specification 2nd edition', Addision-Wesley, 1999
  3. Bill Blunden, 'Virtual Machine Design and Implementation in C/C++', Wordware Publishing, Inc., 2002
  4. Sun Microsystems, 'The K Virtual Machine(KVM) White Paper Technical Report', Sun Microsystems, 1999
  5. Rainer Leupers and Peter Marwedel, 'Retargetable Compiler Technology for Embedded System: Tools and Applications', Kluwer Academic Publishers, 2001
  6. John R. Levine, 'Linkers and Loaders', Morgan Kaufmann Publishers, 2000
  7. Nik Shaylor, Douglas N. Simon, William R. Bush, 'A Java Virtual Machine Architecture for Very Small Devices', In the Proceddings of ACM SIGPLAN Conferences on Languages, Compilers, and Tools Embedded Systems 2003(LCTES '03), ACM Press, PP. 34-41, 2003 https://doi.org/10.1145/780732.780738
  8. John Whaley, 'Joeq: A Virtual Machine and Compiler Infrastructure', In the Proceddings of ACM SIGPLAN Conferences on Interpreters, Virtual Machines and Emulators 2003(IVME '03), ACM Press, pp.58-66, 2003 https://doi.org/10.1145/858570.858577
  9. Derek Rayside, Evan Mamas, Erik Hons, 'Compact Java Binaries for Embedded System', Proceddings of the 9th NRC/IBM centre for Advanced Studies Confercence (CASCON '99), pp.1-14, 1999
  10. W. Paugh, 'Compressing Java class files', In the Proceedings of ACM/SIGPLAN Conference on Programming Language Design and Implementation(PLDI) '99, pp.247-258, May, 1999 https://doi.org/10.1145/301618.301676
  11. Clausen, L.R., Schultz, U.P., Consel, C., Muller, G., 'Java Bytecode Compression for Low-End Embedded Systems', ACM TOPLAS, Vol.22, No.3, pp.471-489, May, 2000 https://doi.org/10.1145/353926.353933
  12. Tip, F., Sweeney, P.F., Laffra, C., Eisma, A., Streeter, D., 'Practical Extraction Techniques for Java', ACM TOPLAS, Vol.24, No.5, pp.625-666, Nov., 2002 https://doi.org/10.1145/586088.586090
  13. 'Jike Research Virtual Machine', http://www.ibm.com/developerworks/oss/jikesrvm
  14. 'Waba Programming Platform', http://www.wabasoft.com
  15. 'Joeq Virtual Machine', http://sourceforge.net/projects/jeoq http://www.stanford.edu/~jwhaley