Can Logic Programming Execute as Fast as Imperative Programming?
Authors: Van Roy, Peter Lodewijk Technical Report Identifier: CSD-90-600 November 1990 CSD-90-600.pdf Abstract: The purpose of this dissertation is to provide constructive proof that the logic programming language Prolog can be implemented an order of magnitude more efficiently than the best previous systems, so that its speed approaches imperative languages such as C for a significant class of problems. The driving force in the design is to encode each occurrence of a general feature of Prolog as simply as possible. The resulting system, Aquarius Prolog, is about five times faster than Quintus Prolog, a high performance commercial system, on a set of representative programs. The design is based on the following ideas: (1) Reduce instruction granularity. Use an execution model, the Berkeley Abstract Machine(BAM), that retains the good features of the Warren Abstract Machine (WAM), a standard execution model for Prolog, but is more easily optimized and closer to a real machine. (2) Expl