Abstract
‘Set’ is a tool that is used frequently in designing computer programs. Because of the reason, ‘set constraints languages’ have been developed recently. In this research, we introduce ‘(Ab)(Cl) set unification’ problem and implement it using the ‘set equation rewriting in Prolog’. In this research we shows that the set unification, that is considered to be difficult to be implemented in procedural languages, ran be implemented easily using the non-deterministic control structure and the list data structure in logic language like Prolog. Our research uses the Ciao Prolog with GNU GPL, this is compared with other existing implementations which used expensive commercial Prolog, so anyone can use the result freely. Currently the result is being used for implementing a set constraint language.
‘집합’은 컴퓨터 프로그램의 설계에 자주 사용되는 도구이다. 이런 이유 때문에 최근 ‘집합 제한 언어’도 등장하였다. 본 연구에서는 ‘(Ab)(Cl) 집합 일치화’ 문제를 소개하고 ‘집합 등식 다시쓰기(rewrite)’를 사용하여 집합 일치화를 Prolog 언어를 사용하여 구현하였다. 본 연구에서는 순차적 언어에서는 구현하기 힘들었던 집합 일치화가 Prolog 언어와 같은 논리 언어에서는 비결정성 제어 구조와 리스트 자료 구조를 사용하여 쉽게 구현 가능함을 보였다. 본 연구는 기존 구현이 고가의 상업용 Prolog를 사용한 것과는 달리 GNU 일반 공용 라이센스(GPL)를 가지는 Ciao Prolog를 사용하였기 때문에 누구나 무료로 사용할 수 있다는 장점도 가지고 있다. 현재 본 연구의 결과를 사용하여 ‘집합제한 언어’가 구현 중이다.