“Gödel is a declarative, general-purpose programming language in the family of logic programming languages.” The authors consider it to be a successor to Prolog. The book is divided into two sections. The first section provides an informal overview of the language. This part includes lots of interesting example programs. The second part provides a formal definition of the language, including the syntax and semantics of Gödel.
The Gödel language is appropriate for teachers and students of logic programming. It will also interest people doing research in metaprogramming and parallel implementations of logic programming.
Part 1, “Overview of Gödel,” contains ten chapters. These chapters discuss many features of the Gödel language. The introductory chapter looks at some basic facilities of the language and compares Gödel with Prolog. Other chapters cover the components of the language, including types, formulas, modules, control, input/output, and metaprogramming. Most of these chapters include several simple example programs, which help explain the concepts discussed in the chapter. The last chapter of Part 1 examines six interesting programs in Gödel, ranging from programs that generate Fibonacci numbers and solve the Wolf-Goat-Cabbage problem to a theorem prover and interpreters.
Part 2, “Definition of Gödel,” includes three chapters on “Syntax,” “Semantics,” and “System Modules and Utilities.” The syntax chapter outlines the tokens used in the language and defines the concepts of program, goal, theory, and flock. The semantics chapter defines both the declarative and the procedural semantics of Gödel programs. The chapter on system modules and utilities describes the export parts of the system modules provided by Gödel. An appendix explains polymorphic many-sorted logic.
The book is well organized. In Part 1, each chapter includes several easy-to-understand example programs that help explain the language features. The chapter on example programs is especially helpful. There are few errors in the text. The book’s only drawback is the frequent references to examples in other books and papers. The book is well written and useful. I recommend it highly for anyone who is interested in logic programming or doing research in metaprogramming. Some background in logic programming would be helpful. A copy of the Gödel language is available through ftp. Information can be obtained from the authors at goedel@compsci.bristol.ac.uk.