Abstract

소프트웨어가 대형화되고 고도화되어 감에 따라 프로그램 개발 환경에서 프로그래밍 생산성과 효율성을 향상시키기 위해 에디팅. 컴파일링, 디버깅 및 실행을 하나의 통합 환경으로 구축하는 것이 필요하다. 이러한 환경에서 중요한 도구가 되는 것이 점진 번역기이다. 본 논문에서는 소프트웨어의 재 사용성과 생산성을 향상시키기 위해, 에디팅, 디버깅, 점진 해석 및 실행을 하나의 통합 환경으로 구성하여 보다 친근하고 편리하게 사용할 수 있는 사용자 인터페이스를 제공하는 소프트웨어 개발을 위한 통합 점진 해석 시스템을 구축하고자 한다. 객체 지향 언어인 IMPLO(IMPerative Language with Object) 언어를 EBNF 표기법으로 정의하고 이 언어에 대한 점진 해석기를 구현한다. 점진 해석기를 구현하기 위해 정적 의미론을 표현하는 속성 문법을 확장하여 동적인 의미론을 표현할 수 있는 작용 식을 제시한다. 동적 의미 분석 방법에 의해 점진 해석을 수행하고 에디터와 디버거를 가진 통합 점진 해석 시스템을 Lex와 Yacc을 이용해서 C 언어로 프로그래밍하고 SUN에서 X로 구현하였다. 예제 프로그램들의 점진 실행 시간을 전체 프로그램의 실행 시간과 비교했을 때 약 50% 정도의 속도 개선 효과를 거둘 수 있었다. As software is large and sophisticate, in order to increase the productivity and efficiency of programs in programming development environments, it is necessary to support the integrated system that offers user interface integrated editing, compiling, debugging, and running steps. The key tool in such environments is an incremental translation. In this paper, in order to increase the productivity and reusability of software, the goal is to construct the integrated incremental interpretation system that supports friendly user interface with editor, debugger, and incremental interpreter. We define the new object-oriented language, IMPLO(IMPerative Language with Object) using EBNF notation, and construct the integrated incremental interpretation system using incremental interpreter of the language. To do so, we extend attribute grammars for specifying static semantics and present new action equations to describe the dynamic semantics. We executed the incremental interpretation by using analyzing the dynamic semantics and then implemented integrated incremental interpretation system with editor and debugger in C, Lex and Yacc using X windows on SUN. We obtain about 50% speedups in case of incremental execution time for example programs.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call