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 에뮬레이터 및 컴파일러의 성능을 측정한 결과 기존 방법보다 매우 효율적임을 확인하였다.