Development of an Eclipse-based IDE for Educational Compilers

이클립스 기반의 교육용 컴파일러 통합개발환경

  • 성우경 (경상대학교 대학원 컴퓨터과학과) ;
  • 강현석 (경상대학교 컴퓨터과학과) ;
  • 배종민 (경상대학교 컴퓨터과학과)
  • Received : 2011.07.26
  • Accepted : 2011.09.26
  • Published : 2011.09.30

Abstract

Compiler development projects, which are designed and taught in compiler course, allow students to practice and absorb valuable amount of experience and techniques in developing compilers. However, both instructors and students face difficulties as they are often limited by insufficient hands-on time during course of an academic year along with a relatively high level of technologies involved when dealing with compilers. As well, most compiler's target systems use interpreter-based technologies which are rather limited in drawing student's attention. As a result compiler courses often end up being more of a theoretical course than practical. This paper presents a new integrated development environment (IDE) that will help overcome aforementioned difficulties and allow students to obtain both theoretical and practical knowledge more efficiently. The development environment includes a reference compiler with $Mindstorms^{(R)}$ NXT Robots as the target system, compiler development tool, target language test tool, and code generation visualizer. It is developed as a plug-in for the popular Eclipse IDE which enables easy access and great expandability. This integrated development environment allows students to understand compilers better and start their development faster.

컴파일러 교과목에서 수행하는 컴파일러 개발 프로젝트는 많은 경험과 기술을 얻을 수 있다. 그러나 한 학기에 이수하기 부족한 강의 시간과 컴파일러 개발의 높은 난이도 때문에 수업에 어려움을 겪는다. 그리고 컴파일러 목적시스템은 대게 인터프리터로 구현되기 때문에 학생의 흥미를 유도하기도 어렵다. 이에 따라서 컴파일러 교육은 이론 위주의 교육이 되기 쉽다. 이러한 한계를 극복하기 위하여 본 논문에서는 컴파일러의 이론과 실제를 보다 쉽게 습득할 수 있는 통합개발환경을 제시한다. 개발된 통합개발환경에는 마인드스톰 NXT 로봇을 목적시스템으로 하는 레퍼런스 컴파일러와 컴파일러 제작 도구, 목적언어 테스트 도구, 코드생성 시각화 도구가 포함되며 이클립스 플러그인 기반으로 개발되어 편의성과 확장성이 뛰어나다. 개발된 통합개발환경은 학생들이 컴파일러를 보다 쉽게 이해하고 개발할 수 있도록 도와준다.

Keywords