An Efficient Execution of Non-Horn Logic Programs

비혼 논리 프로그램의 효율적 수행

  • 신동하 (상명대학교 소프트웨어공학부) ;
  • 백윤철 (상명대학교 소프트웨어공학부)
  • Published : 2005.07.01

Abstract

Non-Horn logic programs are extended from Horn logic programs to the level of 1st order predicate logic. Even though they are more expressive than Horn logic programs, They are not practically used because we do not have efficient implementations. Currently to execute non-Horn logic programs, we translate them to equivalent Horn logic programs using the proof procedure InH-Prolog and compile the Horn logic programs to WAM(Warren Abstract Machine) instructions. In this paper, we propose EWAM(Extended Warren Machine) that executes non-Horn logic programs more efficiently and a compilation scheme that compiles non-Horn logic programs to the EWAM instruction. We implement an EWAM emulator and a compiler and measured the performance of the EWAM emulator and the compiler and found that they are very efficient.

비혼(non-Horn) 논리 프로그램은 혼(Horn) 논리 프로그램을 1계 술어 논리(1st order predicate logic) 수준으로 확장하였기 때문에 표현력은 크지만 효율적으로 구현된 사례가 없어서 실용적인 언어로 사용되지는 못하였다. 지금까지 연구된 효율적인 방법은 비혼 논리 프로그램을 증명절차 InH-Prolog의 의미를 이용하여 동등한 혼 논리 프로그램으로 변환한 후 변환된 혼 논리 프로그램을 WAM(Warren Abstract Machine) 명령어로 컴파일하여 수행시키는 방법이다. 본 논문에서는 이 방법을 향상시키기 위하여 비혼 논리 프로그램을 효율적으로 수행하는 EWAM(Extended WAM)과 비혼 논리 프로그램을 EWAM 명령어로 컴파일하는 방법을 제안한다. 또한 본 논문에서는 제안한 EWAM의 에뮬레이터 및 컴파일러를 구현하여 그 성능을 측정하였다. 본 논문에서 구현한 EWAM 에뮬레이터 및 컴파일러의 성능을 측정한 결과 기존 방법보다 매우 효율적임을 확인하였다.

Keywords

References

  1. W. F. Clocksin and C. S. Mellish, Programming in Prolog, Fourth Edition, Springer-Verlag, Berlin, 1994
  2. J. W. Lloyd, Foundations of Logic Programming, Second, Extended Edition, Springer-Verlag, Berlin, 1987
  3. D. H. D. Warren, An Abstract Prolog Instruction Set, Technical Note 309, SRI International, October 1983
  4. H. Ait-Kaci, Warren's Abstract Machine A Tutorial Reconstruction, The MIT Press, Cambridge, MA, 1991
  5. J. Lobo, J. Minker, and A. Rajasekar, Foundations of Disjunctive Logic Programming, The MIT Press, Cambridge, MA, 1992
  6. J. Minker and A. Rajasekar, Procedural Interpretation of Non-Horn Logic Programs, Proceedings of the 9th International Conference on Automated Deduction, 278-293, 1988
  7. J. Minker and A. Rajasekar, A Fixpoint Semantics for Disjunctive Logic Programs, The Journal of Logic Programming, Vol. 9, 45-74, Elsevier Science Publishing Co., Inc., New York,1990 https://doi.org/10.1016/0743-1066(90)90033-2
  8. D. A. Plaisted, Non-Horn Gause Logic Programming Without Contrapositives, Journal of Automated Reasoning, 4:287-325, Kluwer Academic Publishers, 1988
  9. D. W. Loveland and D. W. Reed, A near-Horn Prolog for Compilation, Technical Report CS-1989-14, Department of Computer Science, Duke University, 1989
  10. D. W. Loveland, Near-Hom Prolog and Beyond, Journal of Automated Reasoning, 7: 1-26, Klwer Academic Publishers, 1991
  11. D. W. Reed, D. W. Loveland and B. T. Smith, The near-Hom Approach to Disjunctive Logic Programming, Technical Report CS-1992-19, Department of Computer Science, Duke University, 1992
  12. D. W. Reed and D. W. Loveland, Near-Horn Prolog and the Ancestry Family of Proof Procedures, Annals of Mathematics and Artificial Intelligence, 14, 1995
  13. 신동하, 비혼 논리 프로그램을 위한 증명 절차, 자연과학연구, 제5호, 상명대학교 자연과학연구소, 1998
  14. B. T. Smith and D. W. Loveland, A Simple near-Horn Prolog Interpreter, Technical Report CS-1988-21, Department of Computer Science, Duke University, 1988
  15. 신동하, 조상계열 증명 절차를 이용한 비혼 논리 프로그램의 컴파일 방법, 정보과학회논문지(B), 제26권, 제7호, 한국정보과학회, 1999
  16. J. bevemyr, The luther WAM Emulator, Technical Report 72, Department of Computer Science, Uppsala University, 1992
  17. SICS, SICStus Prolog V3 User's Manual, 1995