Design of Translator for 3-Address Code from Stack Based Code

스택 기반 코드에서 3-주소형태코드 생성을 위한 변환기 설계

  • Kim, Ji-Min (Dept. of Computer Science and Engineering, Inha University) ;
  • Kim, Young-Kook (Dept. of Computer Science and Engineering, Inha University) ;
  • Jo, Sun-Moon (Dept. of Computer Science and Engineering, Inha University) ;
  • Kim, Ki-Tae (Dept. of Computer Science and Engineering, Inha University) ;
  • Yoo, Weon-Hee (Dept. of Computer Science and Engineering, Inha University)
  • 김지민 (인하대학교 컴퓨터 정보공학과) ;
  • 김영국 (인하대학교 컴퓨터 정보공학과) ;
  • 조선문 (인하대학교 컴퓨터 정보공학과) ;
  • 김기태 (인하대학교 컴퓨터 정보공학과) ;
  • 유원희 (인하대학교 컴퓨터 정보공학과)
  • Published : 2004.05.14

Abstract

자바의 특징 중에 한 가지는 자바 가상 기계를 기반으로 하고 있게 때문에 특정한 하드웨어나 운영체제에 영향을 받지 않고 독립적으로 수행이 가능하다는 것이다. 하지만 자바 언어로 개발된 애플리케이션은 C나 C++등 다른 언어로 작성한 프로그램에 비하여 실행이 매우 느리다는 단점을 가지게 된다. 이는 자바 가상 기계 에서 바이트코드가 인터프리터 방식으로 사용되기 때문이다. 이러한 단점을 보안하기 위하여 여러 가지 최적화 기법이 적용되고 있다. 본 논문에서는 이러한 방법으로써 바이트코드를 3주소형태 코드로 변환하는 변환기 설계에 대해서 제안할 것이다. 바이트코드에서 스택을 사용하지 않는 3주소형태 코드로의 변환하기 위하여 크게 세 단계를 걸친다. 첫째, 스택에 대한 명백한 참조를 가진 타입화된 스택기반의 중간표현을 생성한다. 둘째, 생성된 코드에서 타입에 대한 정보를 추출하고 추출된 정보를 저장하는 기억장소를 할당하여 추출된 정보를 저장시킨다. 셋째, 스택을 대신할 타입이 없는 지역변수를 생성하여 각각의 변수에 알맞은 타입을 분배함으로써 타입화되고 명백한 3주소형태 코드를 생성한다. 이러한 방식으로 스택기반 언어에서 발생하는 문제점을 해결한다.

Keywords