Prolog: The Standard: Reference Manual

Front Cover
Springer Science & Business Media, Apr 15, 1996 - Computers - 272 pages
From the viewpoint of an "industrial" this book is most welcome, as one of the most significant demonstrations of the maturity of Prolog. Logic programming is a fascinating area in computer science, which held for years - and still does - the promise of freeing ourselves from programming based on the "Von Neumann" machine. In addition computer programming has long been for solid theoretical foundations. While conventional engineering, dealing mainly with "analogical complexity", developed over some hundred years a complete body of mathematical tools, no such toolset was available for "digital complexity". The only mathematical discipline which deals with digital complexity is logic and Prolog is certainly the operational tool which comes closest to the logical programming ideal. So, why does Prolog, despite nearly twenty years of development, still appear to many today to be more of a research or academic tool, rather than an industrial programming language? A few reasons may explain this: First, I think Prolog suffers from having been largely assimilated into - and thus followed the fate of - Artificial Intelligence. Much hype in the late 1980 created overexpectations and failed to deliver, and the counterreaction threw both AI and Prolog into relative obscurity. In a way, maybe this is a new chance for the Prolog community: the ability to carry out real work and progress without the disturbance of limelights and the unrealistic claims of various gurus. Second, programming in Prolog is a new experience for computer professionals.
 

What people are saying - Write a review

We haven't found any reviews in the usual places.

Contents

1 Introduction
1
2 Prolog Data Structures
5
212 Order of the terms the relation termprecedes
6
213 Operator notation
7
22 Some particular terms
8
223 Clause body and goal
9
3 Prolog Unification
11
32 Unifiers
13
732 Options at stream creation
208
734 Current stream properties
209
74 Inputting and outputting terms
210
742 Writeoptions list
211
743 Writing a term
212
8 Prolog Flags and Directives
215
82 Changeable flags
216
83 Directives for initialising flags and tables
217

322 Computing a unifier
14
33 The definition of the unification in Standard Prolog
15
333 Subject to occurscheck and not subject to occurscheck
16
4 Prolog Execution Model
19
411 The database
20
412 Sources and sinks
21
414 Operator and character conversion tables
22
422 The Prolog computation rule
23
423 The Prolog searchtree
24
424 A Prolog searchtree example
25
searchtree visit and construction algorithm
26
426 Backtracking
27
43 The execution model for Standard Prolog
29
433 The chosen predication is a builtin predicate
30
44 Additional error situations
31
5 The Builtin Predicates
33
52 Templates
34
521 Mode of an argument
35
53 The builtin predicates
36
6 Prolog Arithmetic
195
62 Expression evaluation
197
622 Arithmetic comparison operator definitions
198
624 Profile of the basic arithmetic operations
199
625 Arithmetic functors defined in Standard Prolog
200
Sources and Sinks
205
72 Streams in Standard Prolog
206
722 Binary streams
207
84 Directives for preparation of Prolog texts and goals
218
9 Prolog Syntax
221
912 The character conversion table
222
913 Character code
223
921 The operator table
224
923 Parsing an expression
225
924 Valid operator table
226
94 Syntax of Prolog text
227
95 Syntax of readterm
228
952 Procedures used in the DCG
237
96 Syntax errors
238
10 Writing Portable Programs
239
1012 Introduction of unification with occurscheck
240
1013 What to do with the builtin predicates
241
102 The database update view
242
1022 The logical database update view
243
11 Annexes
245
1113 Prolog goal
246
112 The ftp package
248
1123 Examples of uses
249
113 Elements of lexical analysis
254
114 ASCII table
256
115 Glossary of auxiliary concepts
257
Thematic classification of the builtin predicates
261
Bibliography
263
Index
265
Copyright

Other editions - View all

Common terms and phrases

Bibliographic information