객체지향 컴파일러를 위한 심벌 테이블의 구성과 검증
暂无分享,去创建一个
본 논문에서는 객체지향 컴파일러를 위한 심벌 테이블의 구성 방법과 구성된 심벌 테이블의 검증 방법을 제안한다. 컴파일러에서 심벌 테이블은 어휘 분석과 구문 분석 과정을 거친 후 SDT(syntax-directed translation)에 의해 생성된 AST(Abstract Syntax Tree)를 분석하여 인식된 명칭 (identifier)과 그 속성 (attribute)들을 수집하여 저장하기 위한 자료구조로써, 심벌 테이블에 저장된 속성들은 의미 분석(semantic analysis) 단계에서 참조된 명칭의 사용이 타당한지 검사하고, 코드 생성(code generation) 단계에서 올바른 코드가 생성되도록 하는 중요한 요소이다. 본 연구팀은 유비쿼터스 디지털 콘텐츠 플랫폼을 위한 C++ 컴파일러를 개발하였으며, 컴파일러 개발 과정에서 객체지향 언어인 C++과 Java 언어를 모두 수용할 수 있는 심벌 테이블을 구성하였고, 이를 검증하기 위한 역번역기를 개발하였다. 역번역기는 C++ 컴파일러와 Java 컴파일러의 선언문 처리 과정에서 심벌 테이블에 입력된 속성들을 기반으로 하여 본래의 입력 프로그램으로 복원시킨다. 따라서 심벌 테이블에 입력된 사항을 한눈에 확인할 수 있어서 심벌 테이블의 검증과 분석이 용이하다. 그리고 역번역과 함께 출력되는 디버그 정보들을 통하여 컴파일러의 개발과 수정에 효율적으로 사용된다.