9 of the Best Free Prolog Books
Prolog is a general purpose, declarative, logic programming
language associated with artificial intelligence and computational
linguistics. It is widely used in research and education for
natural language processing.
Automatic backtracking is one of the most characteristic
features of Prolog. It is a form of searching, fundamental to all
artifical
intelligence techniques. Prolog also supports multidirectional
reasoning; arguments to a procedure can freely be designated inputs and
outputs in different ways in different procedure calls. Another key
feature of Prolog is that its syntax and semantics are closer to formal
logic than say Lisp.
Prolog is generally regarded as a difficult language to get to
grips with. The focus of this article is to select some of the finest
Prolog books which help programmers master this language, and develop
an in-depth understanding of recursion, constraint logic programming,
and
searching problem trees. All of the books are available to download for
free.
To cater for all tastes, we have chosen a good range of books.
All of the texts here come with our strongest recommendation. So get
reading (and downloading).
|
1. Logic, Programming and Prolog (2ed)
|
 |
The main objective of Logic, Programming and
Prolog is to provide a uniform account of both the foundations of logic
programming and simple programming techniques in the programming
language Prolog.
Chapters include:
- Preliminaries - contains a recapitulation of notions
basic to logic in general. The chapter discusses concepts related both
to model- and proof-theory of predicate logic including notions like
language, interpretation, model, logical consequence, logical
inference, soundness and completeness. The final section introduces the
concept of substitution
- Definite Logic Programs - introduces the restricted
language of definite programs and discusses the model-theoretic
consequences of restricting the language
- SLD-Resolution - describes the operational semantics
of definite programs
- Negation in Logic Programming - discusses the use of
negation in logic programming. It introduces the
negation-as-definite-failure rule used to implement negation in most
Prolog systems and also provides a logical justification of the rule by
extending the user's program with additional axioms
- Towards Prolog: Cut and Arithmetic - Cut is
introduced as a mechanism for reducing the overhead of Prolog
computations. The chapter also discusses the use of predefined
arithmetic predicates in Prolog and provides a logical explanation for
them
- Logic and Databases - describes logic programming
from a database point of view
- Programming with Recursive Data Structures -
demonstrates techniques for defining relations on recursive
data-structures, in particular on lists
- Amalgamating Object- and Meta-language - introduces
the notion of meta- and object-language and illustrates how to use
logic programs for describing SLD-resolution. The chapter also
introduces some (controversial) built-in predicates available in most
Prolog implementations
- Logic and Expert Systems - demonstrates how to extend
an interpreter from the previous chapter into a simple expert-system
shell
- Logic and Grammars - shows how to describe grammars
in Prolog, starting from context-free grammars. Larger classes of
languages are considered. The chapter moves on to introduce the notion
of Definite Clause Grammars (DCGs) commonly used for describing both
natural and artificial languages in Prolog
- Searching in a State-space - demonstrates simple
techniques for solving search-problems in state-transition graphs and
raises some of the difficulties which are inherently associated
with such problems
- Logic Programming and Concurrency - describes a class
of languages commonly called concurrent logic programming
languages
- Logic Programs with Equality - discusses an approach
to integration of logic programming with functional programming based
on the use of equations
- Constraint Logic Programming - concerns the use of
constraints in logic programming
- Query-answering in Deductive Databases - concerns the
use of constraints in logic programming. A rigorous semantical
framework is briefly described
|
|
2. Simply Logical - Intelligent Reasoning by Example
|
|
Simply Logical - Intelligent Reasoning by Example aims
to introduce the reader to a number of topics — logic, Artificial
Intelligence and computer programming. This is a book
about intelligent reasoning. Reasoning is the process of drawing
conclusions; intelligent reasoning is the kind of reasoning performed
by humans.
The latter parts of the book present a number of recent
extensions of Logic
Programming, most of which have been accessible previously only in
conference proceedings and journal articles.
Chapters cover:
- Logic and Logic Programming - introduces the main
concepts in logic
programming such as program clauses, query answering, proof trees, and
recursive data structures
- Clausal logic and resolution:
theoretical backgrounds - deals with concepts such as Herbrand models
and resolution refutations, as well as meta-theoretical notions like
soundness and completeness. The presentation starts with propositional
clausal logic, and proceeds via relational clausal logic (without
functors) to full clausal logic, and finally arrives at definite clause
logic
- Logic Programming and Prolog - discusses the
practical aspects of Prolog programming examining concepts such as
SLD-tree
forms, the treatment of arithmetic expressions in Prolog, second-order
predicates like setof, and various programming techniques like
accumulators and difference lists
- Representing structured knowledge - discusses various
ways to represent structured knowledge in Prolog
- Searching graphs - discusses and implements some
basic
techniques for finding solutions in search spaces. Their common
denominator is that they are exhaustive: that is, in the worst case
they will eventually visit every node in the search
space along every possible path, before finding a solution
- Informed search - best-first search, a complete
variant of best-first search called the A algorithm, and non-exhaustive
informed search strategies, that can be derived from best-first search
by limiting the size of the agenda
- Reasoning with natural language
- Reasoning with incomplete information
- Inductive reasoning
|
|
3. Coding Guidelines for Prolog
|
 |
| Website |
arxiv.org/abs/0911.2899 |
| Author |
Michael A. Covington, Roberto Bagnara, Richard
O'Keefe, Jan Wielemaker, Simon Price |
| Format |
PDF, Postscript (Bitmapped Fonts), PostScript
(Type I Fonts), DVI, Source |
| Pages |
39 |
Coding Guidelines for Prolog provides immediate
guidelines for code layout, naming conventions, documentation, proper
use of Prolog features, program development,
debugging and testing. Presented with each guideline is its rationale
and, where sensible options exist, illustrations of the relative pros
and cons for each alternative.
A coding standard should always be selected on a
per-project basis, based on a host of issues pertinent to any given
programming project; for this reason the paper goes beyond the mere
provision of normative guidelines by discussing key factors and
important criteria that should be taken into account when deciding on a
fully-fledged coding standard for the project.
|
Next
Section: 9 of the Best Free Prolog Books - Part 2
This article is divided into three parts:
Part
1, Part
2, Part
3
Last Updated Saturday, March 16 2013 @ 07:33 PM EST |