Programming in Prolog
Using the ISO Standard
Springer (Publisher)
3rd Edition
Published on 1. January 1993
Book
Paperback/Softback
XIV, 281 pages
978-3-540-17539-1 (ISBN)
Article exhausted; check for reprint
Description
We have added new material to Chapter 3 to give an account of up-to-date programming techniques using accumulators and difference structures. Chapter 8 contains some new information on syntax errors. Operator precedences are now compatible with the most widely-used implementations. We have made further reorganisations and improvements in presentation, and have corrected a number of minor errors. We thank the many people who brought typographical errors in the previous edition to our attention, and we thank A.R.C. for careful proofreading. Cambridge, England W.F.C. January,1987 C.S.M. PREFACE TO THE SECOND EDITION (1984) Since the first publishing of Programming in Prolog in 1981, Prolog has continued to attract an unexpectedly great deal of interest in the computer science community and is now seen as a potential basis for an important new generation of programming languages and systems. We hope that Programming in Prolog has partially satisfied the increasing need for an easy, yet comprehensive introduction to the language as a tool for practical programming. In this second edition we have taken the opportunity to improve the presentation and to correct various minor errors in the original. We thank the many people who have given us suggestions for corrections and improvement. Cambridge, England W.F.C.
More details
Edition
Softcover reprint of the original 3rd ed. 1987
Language
English
Place of publication
Heidelberg
Germany
Publishing group
Springer Berlin
Target group
College/higher education
Professional and scholarly
Dimensions
Height: 24.2 cm
Width: 17 cm
Weight
460 gr
ISBN-13
978-3-540-17539-1 (9783540175391)
DOI
10.1007/978-3-642-97005-4
Schweitzer Classification
Other editions
New editions

Book
11/1994
4th Edition
Springer
€85.55
Article exhausted; check for reprint
Additional editions

E-Book
12/2012
3rd Edition
Springer
€82.38
Available for download
Content
1.- Gives the student a "feel" for what it is like to program in Prolog. Introduces objects, relationships, facts, rules, variables.- 1.1 Facts.- 1.2 Questions.- 1.3 Variables.- 1.4 Conjunctions.- 1.5 Rules.- 1.6 Summary and Exercises.- 2.- More detailed presentation of Prolog syntax and data structures.- 2.1 Syntax.- 2.2 Characters.- 2.3 Operators.- 2.4 Equality and Matching.- 2.5 Arithmetic.- 2.6 Summary of Satisfying Goals.- 3.- Representing objects and relationships by using "trees" and "lists". Developing several standard Prolog programming techniques.- 3.1 Structures and Trees.- 3.2 Lists.- 3.3 Recursive Search.- 3.4 Mapping.- 3.5 Recursive Comparison.- 3.6 Joining Structures Together.- 3.7 Accumulators.- 3.8 Difference Structures.- 4.- How a set of clauses generates a set of solutions. Using "cut" to modify the control sequence of running Prolog programs.- 4.1 Generating Multiple Solutions.- 4.2 The "Cut".- 4.3 Common Uses of the Cut.- 4.4 Problems with the Cut.- 5.- Facilities available for the input and output of characters and structures. Developing a program to read sentences from the user and represent the sentence as a list of words, which can be used with the Grammar Rules of Chapter 9.- 5.1 Reading and Writing Terms.- 5.2 Reading and Writing Characters.- 5.3 Reading English Sentences.- 5.4 Reading and Writing Files.- 5.5 Declaring Operators.- 6.- Definition of the "core" built-in predicates, with sensible examples of how each one is used. By this point, the reader should be able to read reasonably complex programs, and should therefore be able to absorb the built-in predicates by seeing them in use.- 6.1 Entering New Clauses.- 6.2 Success and Failure.- 6.3 Classifying Terms.- 6.4 Treating Clauses as Terms.- 6.5 Constructing and Accessing Components of Structures.- 6.6 Affecting Backtracking.- 6.7 Constructing Compound Goals.- 6.8 Equality.- 6.9 Input and Output.- 6.10 Handling Files.- 6.11 Evaluating Arithmetic Expressions.- 6.12 Comparing Numbers.- 6.13 Watching Prolog at Work.- 7.- Many example programs are given, covering a wide range of interests. New examples include list processing, set operations, symbolic differentiation and simplification of formulae.- 7.1 A Sorted Tree Dictionary.- 7.2 Searching a Maze.- 7.3 The Towers of Hanoi.- 7.4 Parts Inventory.- 7.5 List Processing.- 7.6 Representing and Manipulating Sets.- 7.7 Sorting.- 7.8 Using the Database: random, gensym, findall.- 7.9 Searching Graphs.- 7.10 Sift the Two's and Sift the Three's.- 7.11 Symbolic Differentiation.- 7.12 Mapping Structures and Transforming Trees.- 7.13 Manipulating Programs.- 8.- By this point, the reader will be able to write reasonable programs, and so the problem of debugging will be relevant. Flow of control model, hints about common bugs, techniques of debugging.- 8.1 Laying out Programs.- 8.2 Common Errors.- 8.3 The Tracing Model.- 8.4 Tracing and Spy Points.- 8.5 Fixing Bugs.- 9.- Applications of existing techniques. Using Grammar Rules. Examining the design decisions for some aspects of analysing natural language with Grammar Rules.- 9.1 The Parsing Problem.- 9.2 Representing the Parsing Problem in Prolog.- 9.3 The Grammar Rule Notation.- 9.4 Adding Extra Arguments.- 9.5 Adding Extra Tests.- 9.6 Summary.- 10.- Predicate Calculus, clausal form, resolution theorem proving, logic programming.- 10.1 Brief Introduction to Predicate Calculus.- 10.2 Clausal Form.- 10.3 A Notation for Clauses.- 10.4 Resolution and Proving Theorems.- 10.5 Horn Clauses.- 10.6 Prolog.- 10.7 Prolog and Logic Programming.- 11.- A selection of suggested exercises, projects, and problems.- 11.1 Easier Projects.- 11.2 Advanced Projects.- Appendices.- A. Answers to Selected Exercises.- B. Clausal Form Program Listings.- C. Different Versions of Prolog.- D. Edinburgh Prolog.- E. micro-Prolog.