A semantically well-defined programming language widely used in artificial intelligence, Prolog has greatly influenced other programming languages since its introduction in the late 1970s. A user may find Prolog deceptively easy, however, and there are a number of different implementations. In this book Patrice Boizumault draws from his extensive experience in Prolog implementation to describe for students of all levels the concepts, difficulties, and design limits of a Prolog system. Boizumault introduces the specific problems posed by the implementation of Prolog, studies and compares different solutions--notably those of the schools of Marseilles and Edinburgh--and concludes with three examples of implementation. Major points of interest include identifying the important differences in implementing unification and resolution; presenting three features of Prolog II--infinite trees, dif, and freeze--that introduce constraints; thoroughly describing Warren's Abstract Machine (WAM); and detailing a Lisp imple-mentation of Prolog. Originally published in 1993.
The Princeton Legacy Library uses the latest print-on-demand technology to again make available previously out-of-print books from the distinguished backlist of Princeton University Press. These editions preserve the original texts of these important books while presenting them in durable paperback and hardcover editions. The goal of the Princeton Legacy Library is to vastly increase access to the rich scholarly heritage found in the thousands of books published by Princeton University Press since its founding in 1905.