규칙기반 한글 자동 프로그램을 위한 프로그램 변형기법

A Program Transformational Approach for Rule-Based Hangul Automatic Programming

  • 홍성수 (호서대학교 컴퓨터공학과) ;
  • 이상락 (인천대학교전자계산학과) ;
  • 심재홍 (광운대학교 전자계산학과)
  • 발행 : 1994.05.01

초록

초고급 언어에 의한 자동 프로그래밍은 프로그램의 자료구조 이외에 많은 부분을 시스템이 관장함으로써 프로그램 명세의 표현이 추상적이지만 프로그램 의미소가 술 어논리, 집합, 사상, 혹은 제안된 자연언어를 사용하기 때문에 초고급 구조에 익숙하 지 않은 프로그래머들이 이를 이용하여 프로그램을 작성하는 경우 상당한 어려움이 따 르고, 이들 초고급언어 구조에 익숙하기까지 많은 시간이 요하게 된다. 왜냐하면 초 고급언어는 프로그램 명세의 표현이 추상적이지만 프로그램 의미소가 술어 논리, 집합, 사상, 혹은 제한된 자연언어를 사용하기 때문이다. 본 논문에서는 기존의 자동 프로 그램의 어려움을 줄이기 위해서 한글로 구성된 선언적구문, 절차적 구문, aggregate 구문으로 광역언어를 설계하고 구현한다. 본 논문에서는 제안하는 한글 자동 프로그래 밍 시스템(Hangul Automatic Programming)은 입력으로 순수한 한글로 구성되어 있으며 추상 알고리즘(Abstract Algorithm)과 자료형(Data Type)혹은 절차적 구문을 받아서 출력으로는 C 언어 프로그램을 만들어 낸다. 자동 프로그래밍 접근 방식은 프로그램 변형기법과 규칙기반에 바탕을 두고 문제영역은 일반적인 프로그램으로 한정 하였다. 시스템 제어구조는 한글 프로그램을 입력으로 받아서 지식베이스로부터 적절한 규칙 을 선택해서 이것을 변형한 다음 전체 데이타 베이스에 넣는데 이과정을 프로그램이 완성 될 때 까지 반복한다.

It is very difficult for a nonprofessional programmer in Koera to write a program with very High Level Language such as, V,REFINE, GIST, and SETL, because the semantic primitives of these languages are based on predicate calculus, set, mapping, or testricted natural language. And it takes time to be familiar with these language. In this paper, we suggest a method to reduce such difficulties by programming with the declarative, procedural constructs, and aggregate constructs. And we design and implement an experimental knowledge-based automatic programming system. called HAPS(Hangul Automatic Program System). HAPS, whose input is specification such as Hangul abstract algorithm and datatype or Hangul procedural constructs, and whose output is C program. The method of operation is based on rule-based and program transformation technique, and the problem transformation technique. The problem area is general problem. The control structure of HAPS accepts the program specification, transforms this specification according to the proper rule in the rule-base, and stores the transformed program specification on the global data base. HAPS repeats these procedures until the target C program is fully constructed.

키워드