(Ab)(Cl) 집합 일치화의 구현에 관한 연구

An Implementation of (Ab)(Cl) Set Unification

  • 신동하 (상명대학교 소프트웨어학부) ;
  • 김인영 (상명대학교 소프트웨어학부)
  • 발행 : 2004.08.01

초록

‘집합’은 컴퓨터 프로그램의 설계에 자주 사용되는 도구이다. 이런 이유 때문에 최근 ‘집합 제한 언어’도 등장하였다. 본 연구에서는 ‘(Ab)(Cl) 집합 일치화’ 문제를 소개하고 ‘집합 등식 다시쓰기(rewrite)’를 사용하여 집합 일치화를 Prolog 언어를 사용하여 구현하였다. 본 연구에서는 순차적 언어에서는 구현하기 힘들었던 집합 일치화가 Prolog 언어와 같은 논리 언어에서는 비결정성 제어 구조와 리스트 자료 구조를 사용하여 쉽게 구현 가능함을 보였다. 본 연구는 기존 구현이 고가의 상업용 Prolog를 사용한 것과는 달리 GNU 일반 공용 라이센스(GPL)를 가지는 Ciao Prolog를 사용하였기 때문에 누구나 무료로 사용할 수 있다는 장점도 가지고 있다. 현재 본 연구의 결과를 사용하여 ‘집합제한 언어’가 구현 중이다.

‘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.

키워드

참고문헌

  1. A. Dovier, Computable Set Theory and Logic Programming, PhD Thesis TD-l/96, Universita degli Studi di Pisa, dip. di Informatica, 1996. March
  2. Pat M. Hill and John W. Lloyd, The Godel Programming Language, MIT Press, 1994
  3. Escher NG Manual, http://users.unimi.it/ -ddl/vega/manual/escher_ng/
  4. Mozart Documentation,http://www.mozart-oz.org/documentation/index.html
  5. A. Dovier, E. Pontelli, and G. Rossi, Set Unification, Rapporto di Ricerca, Dipartimento di Matematica, Universita di Parma, n.3l0, 2002
  6. A. Dovier, C. Piazza, E. Pontelli, and G. Rossi, Sets and Constraint Logic Programming, 'ACM Transactions on Programming Languages and Systems', 22, 5, 861-931, 2000 https://doi.org/10.1145/365151.365169
  7. I. Bratko, 'PROLOG Programming for Artificial Intelligence', Addison-Wesley,2000
  8. M. F. Clocksin and C. S. Mellish, 'Programming in Prolog, fourth edition', Springer-Verlag, 1994
  9. SICStus Prolog Homepage, http://www.sics.se/isljsicstuswww/ site/index.html
  10. Quintus Prolog Homepage, http://www. sics.se/quintus/
  11. GNU General Public License, http://www. gnu.org/copyleft/ gpl.html
  12. The CIAO Prolog Development System WWW Site, http://clip.dia.fi.upm.es/Soft-ware/ Ciao/
  13. A. Dovier, E.G. Omodeo, E. Pontelli, and G. Rossi, (log): A Language for Programming in Logic with Finite Sets, 'The Journal of Logic Programming', 28(1), 1-44, 1996 https://doi.org/10.1016/0743-1066(95)00147-6
  14. SICStus Prolog User's Manuat http://www. sics.se/sicstus/ docs/latest/html/sicstus.html
  15. The CIAO Prolog System Manual, http://clip.dia.fi.upm.es/Software/Ciao/ciao_html/ciao_toc.html
  16. Chin-Liang Chang and Richard Lee,'Symbolic Logic and Mechanical Theorem Proving', Academic Press, 1973
  17. V. Sperschneider and G. Antoniou, 'Logic: A Foundation for Computer Science', Addison-wesley, 1991
  18. F. Baader and W. Snyder, Unification theory, 'Handbook of Automated Reasoning', Elsevier Science Publishers B. V., 1999
  19. J. W. Lloyd, 'Foundations of Logic Programming', Springer-Verlag, 1984