DOI QR코드

DOI QR Code

Implementation of Java Bytecode Framework

자바 바이트코드 프레임워크 구현

  • 김기태 (인하대학교 IT 공과대학 컴퓨터정보공학부) ;
  • 김제민 (인하대학교 IT 공과대학 컴퓨터정보공학부) ;
  • 유원희 (인하대학교 IT 공과대학 컴퓨터정보공학부)
  • Received : 2009.11.12
  • Accepted : 2010.02.12
  • Published : 2010.03.28

Abstract

In this paper, we design and implement CTOC, a new bytecode analysis and translation tool. We also propose E-Tree, a new intermediate code, to efficiently deal with intermediate codes translated from bytecodes. E-Tree is expressed in a tree form by combining relevant bytecode instructions in basic blocks of eCFG to overcome the weaknesses of bytecodes such as complexity and analytical difficulty. To demonstrate the usefulness and possible extensibility of CTOC, we show the creation process of eCFG and E-Tree through practical bytecode analysis and translation and shows the optimization process of a bytecode program as an example of possible extensibility.

본 논문에서는 자바 바이트코드를 분석하고 변환할 수 있는 새로운 도구인 CTOC 프레임워크를 설계하고 구현한다. CTOC는 자바 바이트코드의 분석과 코드 변환을 수행할 수 있는 도구로, 바이트코드 분석과 변환 과정을 효율적으로 구현하기 위해 확장된 제어 흐름 그래프인 eCFG(extended Control Flow Graph)와 바이트코드를 효과적으로 처리할 수 있는 중간 코드인 E-Tree(Expression-Tree)를 사용한다. eCFG와 E-Tree를 자바 바이트코드에 대한 분석과 최적화 코드 변환 과정에 적용하여 CTOC의 유용성과 확장 가능성을 보인다.

Keywords

References

  1. T. Linholm and F. Yellin, The Java Virtual Machine Specification, Addison Wesley Pub., 1997.
  2. J. Gosling, B. Joy, and G. Steel, The Java Language Specification, Addison Wesley Pub., 1997.
  3. http://www.sable.mcgill.ca/soot
  4. 김기태, 유원희, “CTOC에서 자바 바이트코드를 이용한 제어 흐름 분석에 관한 연구”, 한국콘텐츠학회 논문지, 제6권, 제1호, pp.160-169, 2006.
  5. 김기태, 유원희, “CTOC에서 자바 바이트코드를 위한 정적 단일 배정 형태”, 정보처리학회논문지D, 제13-D권, 제7호, pp.939-946, 2006.
  6. 김기태, 김제민, 유원희, “CTOC에서 죽은 코드제거 구현”, 한국컴퓨터정보학회논문지, 제12권, 제2호, pp.1-8, 2007.
  7. 김기태, 김제민, 유원희, “CTOC에서 루프 벗기기 구현”, 한국컴퓨터정보학회논문지, 제13권, 제5호, pp.27-35, 2008.
  8. A. V. Aho, M. S. Lam, R. Sethi, and J. D. Ullman, Compilers Principles, Techniques and Tools(2nd Edition), Addison-Wesley Longman Publishing Co., 2006.
  9. S. S. Muchnick, Advanced Compiler Design and Implementation, Morgan Kaufmann Pub., 1997.
  10. D. Lance, "Java Program Analysis: A New Approach Using Java Virtual Machine Bytecodes," Master's. Thesis, Middle Tennessee State University, 1997.
  11. G. Bian and K. Nakayama, "Java bytecode dependence analysis for secure information flow," International Journal of Network Security, Vol.4, No.1, pp.59-68, 2007.