The current implementation of Prolog for the CRS is compatible with the specifications of the ISO working group on Prolog. Its performance, measured through the usual Prolog benchmarks, meets our goal to stay within a factor of 2 to the performance of the best native Prolog implementations, demonstrating the viability of the approach. The difference is exclusively due to the higher cost of memory allocation primitives which include also a small overhead of synchronization for multithread. Our benchmarks indicate for instance a performance of 56000 LIPS on a VAX 8530 and 110000 LIPS on SUN4/260.
We implemented with our system a complete theorem prover for first order predicate calculus using the techniques of the Prolog technology theorem prover (PTTP) by Mark Stickel. The theorem prover uses unification with the occurs check for soundness, depth-first iterative-deepening search instead of unbounded depth-first search to make the search strategy complete, and the model elimination rule to make the inference system complete. The performance improvements we achieved with respect to Stickel's implementation indicate the benefits of exploiting the CRS and in particular its support for logic variables and unification.
- [Atkinson 89]R. Atkinson, et al., Experiences creating a portable Cedar, Proceedings of the SIGPLAN 89 Conference on Programming Language Design and Implementation, 1989.Google Scholar
- [Attardi 90]G. Attardi, M. Gaspari, F. Saracco, Interoperability of AI languages, Proceedings of 9th European Conference on Artificial Intelligence, 1990, 41–46.Google Scholar