Skip to main content
main-content

Über dieses Buch

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.

Inhaltsverzeichnis

Frontmatter

1. Introduction

Abstract
“Prolog, the Standard”, is the first reference manual on the ISO international standard [2] on the programming language Prolog called in this book Standard Prolog.
Pierre Deransart, AbdelAli Ed-Dbali, Laurent Cervoni

2. Prolog Data Structures

Abstract
Basic abstract data structures, sufficient to understand the execution model and the meaning of the built-in predicates, are introduced. The full syntax of these data structures is given in Chapter 9.
Pierre Deransart, AbdelAli Ed-Dbali, Laurent Cervoni

3. Prolog Unification

Abstract
Unification is a basic device. Executions of goals result in so called “answer substitutions” which are usually displayed. Therefore we introduce the notions of substitution and unifier, and finally we define the unification in Standard Prolog.
Pierre Deransart, AbdelAli Ed-Dbali, Laurent Cervoni

4. Prolog Execution Model

Abstract
In this chapter, the execution model of Standard Prolog is described. It formalises its main characteristics: nondeterminism (multiplicity of the solutions), backtracking and control. Knowledge of this is needed in order to understand the meaning of many built-in predicates and the behaviour of a program.
Pierre Deransart, AbdelAli Ed-Dbali, Laurent Cervoni

5. The Built-in Predicates

Abstract
The built-in predicates are system procedures. They cannot be modified. All are static and private.
Pierre Deransart, AbdelAli Ed-Dbali, Laurent Cervoni

6. Prolog Arithmetic

Abstract
Some terms represent arithmetic expressions when they are in the following positions:
  • the right-hand argument of the built-in predicate is/2,
  • both arguments of the arithmetic comparison built-in predicates (=:=)/2, (=\=)/2, (<)/2, (>)/2, (=<)/2, (>=)/2.
Pierre Deransart, AbdelAli Ed-Dbali, Laurent Cervoni

7. Prolog Environment: Sources and Sinks

Abstract
This chapter describes the I/O system of Standard Prolog and how terms are input and output.
Pierre Deransart, AbdelAli Ed-Dbali, Laurent Cervoni

8. Prolog Flags and Directives

Abstract
In Standard Prolog Flags are reserved atoms with an associated predefined value, which define some parameters of a processor. Some of them are fixed with a given processor; their value is implementation defined and cannot be updated. Some others may be modified by the user and are said changeable.
Pierre Deransart, AbdelAli Ed-Dbali, Laurent Cervoni

9. Prolog Syntax

Abstract
Programmers write Prolog texts or input terms from sources. This chapter describes the syntax of Prolog texts in Standard Prolog and the syntax of terms as they will be represented in sources or as they may be output on sinks.
Pierre Deransart, AbdelAli Ed-Dbali, Laurent Cervoni

10. Writing Portable Programs

Abstract
The purpose of this chapter is to introduce some methodology to help write portable programs easily.
Pierre Deransart, AbdelAli Ed-Dbali, Laurent Cervoni

11. Annexes

Abstract
Here is an (adapted) extract of the standard explaining the requirements a standard conforming processor which uses extensions will satisfy.
Pierre Deransart, AbdelAli Ed-Dbali, Laurent Cervoni

Backmatter

Weitere Informationen