Design and Implementation of a Detranslator for Verification and Analysis in C++ Compiler

C++ 컴파일러에서 심벌 테이블의 검증과 분석을 위한 역번역기의 설계 및 구현

  • Son Min-Sung (Dept of Computer Engineering, SeoKyeong University) ;
  • Kwon Hyeok-Ju (Dept of Computer Engineering, SeoKyeong University) ;
  • Lee Yang-Sun (Dept of Computer Engineering, SeoKyeong University)
  • 손민성 (서경대학교 컴퓨터공학과) ;
  • 권혁주 (서경대학교 컴퓨터공학과) ;
  • 이양선 (서경대학교 컴퓨터공학과)
  • Published : 2006.05.01

Abstract

본 논문에서는 C++ 컴파일러 구현과정에서 객체지향 언어의 속성을 처리하기 위한 역번역기(detranslator)를 설계하고 구현하였다. 구현된 역번역기는 C++ 컴파일러의 선언부 처리 과정에서 심벌 테이블에 입력된 속성들을 본래의 C++ 프로그램으로 역번역 한다. 따라서 C++ 컴파일러 개발 과정에서 설계된 심벌 테이블과 심벌테이블에 입력된 정보가 올바른지 쉽게 검증할 수 있다. 심벌 테이블은 C++ 컴파일러의 어휘 분석과 구문 분석 과정에서 인식되는 명칭(identifier)에 대하여 그 속성(attribute)들을 수집하여 저장하는 자료구조로, 심벌 테이블에 저장된 속성들은 의미분석(semantic analysis) 단계에서 참조된 명칭의 사용이 타당한지 검사하는데 사용 되어 코드 생성(code generation) 단계에서 올바른 코드가 생성 되도록 한다. 본 역번역기를 구현함으로써 심벌 테이블이 올바르게 설계 되었는지 검증할 수 있으며, 컴파일 할 때 심벌 테이블에 필요한 모든 속성이 저장되어 있는지 쉽게 확인 할 수 있게 되었다. 그리고 디버그 정보도 함께 출력되어 객체지향 언어를 위한 컴파일러 개발의 정확성을 기할 수 있다.

Keywords