Notes on implementing sets in Prolog

B orn in France in the early 1970s, Prolog (PROgramming in LOGic) [7, 11] was brought to world attention when chosen as the official language for the wellpublicized, Japan's Fifth Generation Computer Project, in 1981. Currently, Prolog is one of the two major artificial intelligence languages, the other being Lisp. It is a simple, yet powerful declarative symbolic language based on predicate logic. Its application domain includes expert systems, natural language processing, compiler writing, symbolic algebra, VLSI circuit analysis, relational databases, and more recently, image processing. Prolog is sometimes used in an early stage of system development for quick implementation. A successful Prolog system that is likely to be used extensively is sometimes rewritten in C for faster computation. The language has been implemented in the form of compilers or interpreters on various generalpurpose computers ranging from PCs to mainframes (a few dozen exist today). Some extensions include more powerful facilities (e.g., Prolog III CLP--Constraint Logic Programming [2, 8, 9], and development of concurrent versions of Prolog (e.g., [ 15 ] Shared Prolog [4], Parlog[14]). Prolog has also been

[1]  Timothy Koschmann Book review: Prolog: A Relational Language and Its Applications by John Malpas (Prentice-Hall,Inc., 1987) , 1988, SGAR.

[2]  Frédéric Benhamou,et al.  The Prolog III CLP language , 1991 .

[3]  Helder Coelho,et al.  Prolog by Example , 1988, Symbolic Computation.

[4]  Susan Garavaglia Prolog, programming techniques and applications , 1986 .

[5]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

[6]  Robert A. Kowalski,et al.  The early years of logic programming , 1988, CACM.

[7]  Ehud Shapiro,et al.  The family of concurrent logic programming languages , 1989, CSUR.

[8]  William F. Clocksin,et al.  Programming in Prolog , 1987, Springer Berlin Heidelberg.

[9]  Ingo Br,et al.  Prolog programming for artificial intelligence , 1990 .

[10]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[11]  Alain Colmerauer,et al.  An introduction to Prolog III , 1989, CACM.

[12]  Toshinori Munakata Procedurally Oriented Programming Techniques in Prolog , 1986, IEEE Expert.

[13]  John Malpas,et al.  Prolog - a relational language and its applications , 1987 .

[14]  Antonio Brogi,et al.  The concurrent language, Shared Prolog , 1991, TOPL.

[15]  Ramachandran Bharath,et al.  An introduction to Prolog , 1986 .

[16]  Graem A. Ringwood Parlog86 and the dining logicians , 1988, CACM.

[17]  Jacques Cohen,et al.  A view of the origins and development of Prolog , 1988, CACM.

[18]  Fernando Pereira,et al.  Prolog - the language and its implementation compared with Lisp , 1977, Artificial Intelligence and Programming Languages.

[19]  Jacques Cohen,et al.  Constraint logic programming languages , 1990, CACM.