Generating Intermediate Representation of IDL Using the CFE

CFE를 사용한 IDL 중간 표현 생성

  • 박찬모 (조선대학교 대학원 컴퓨터공학과) ;
  • 송기범 (조선대학교 대학원 컴퓨터공학과) ;
  • 홍성표 (조선대학교 대학원 컴퓨터공학과) ;
  • 이혁 (조선대학교 대학원 컴퓨터공학과) ;
  • 이정기 (조선대학교 대학원 컴퓨터공학과) ;
  • 이준 (조선대학교 컴퓨터공학과)
  • Published : 1999.05.01

Abstract

Programmers who write distributed programs are faced with a dilemma when writing the systems communication code. If the code is written by hand or partly by hand, then the speed of the application may be maximized, but the human effort required to implement and maintain the system is greatly increased. On the other hand, if the code is generated using a CORBA IDL compiler then the programmer effort will be reduced, but the performance of the application may be poor. So we need the optimizing the code generated by CORBA IDL compiler. We introduce the techniques which have been used by typical programming languages into compilation of IDL. We separate the phase of compilation into three phase. The first phase parses interface definition in IDL, manages nested scope and generates AST(Abstract Syntax Tree). The second phase implements the optimization. The third phase generates the code in target language. In this paper, we focus on the first phase. We separate interface definition into interface and message representation from AST. This supports the separate optimization of code in second phase.

분산 프로그램을 작성하는 프로그래머들은 시스템 통신 코드를 작성할 때 딜레마에 빠지게 된다. 코드를 직접 흑은 부분적으로 직접 작성하면 응용 프로그램의 속도는 최대화될 수 있지만, 응용 프로그램을 구현하고 유지하는데 많은 노력이 필요하게 된다. 반면에 코드를 CORBA IDL 컴파일러를 사용하여 생성하는 경우 프로그래머의 노력은 감소되지만 응용 프로그램의 수행성은 나빠진다. 그래서 우리는 CORBA IDL 컴파일러에 의해 생성된 코드를 최적화할 필요가 있다. 우리는 전형적인 프로그래밍 언어에서 사용되고 있는 기법들을 IDL 컴파일을 하는데 도입한다 우리는 IDL 컴파일의 단계를 세단계로 분리한다. 첫 번째 단계는 전단계로 IDL의 파싱 및 스코프 관리와 AST 생성을 한다. 두 번째 단계는 최적화 단계를 구현한다. 세 번째는 이것을 타켓 언어의 코드로 생성하는 단계이다. 본 논문은 첫 번째 단계에 초점을 맞춘다. 우리는 이 단계에서 AST에서 인터페이스와 메시지 표현을 분리하여 표현한다. 이것은 최적화 단계에서 분리된 최적화를 지원한다.

Keywords