Clause and Effect Prolog Programming for the Working Programmer
This book is for people who have done some programming, either in Prolog or in a language other than Prolog, and who can find their way around a reference manual. The emphasis of this book is on a simplified and disciplined methodology for discerning the mathematical structures related to a problem,...
Main Author: | |
---|---|
Format: | eBook |
Language: | English |
Published: |
Berlin, Heidelberg
Springer Berlin Heidelberg
1997, 1997
|
Edition: | 1st ed. 1997 |
Subjects: | |
Online Access: | |
Collection: | Springer Book Archives -2004 - Collection details see MPG.ReNa |
Table of Contents:
- 1. Getting Started
- 1.1 Syntax
- 1.2 Programs
- 1.3 Unification
- 1.4 Execution Model
- 2. Data Structures
- 2.1 Square Bracket Notation
- 2.2 Arithmetic
- 3. Mapping
- Worksheet 10: Full Maps
- Worksheet 11: Multiple Choices
- Worksheet 12: Partial Maps
- Worksheet 13: Removing Duplicates
- Worksheet 14: Partial Maps with a Parameter
- Worksheet 15: Multiple Disjoint Partial Maps
- Worksheet 16: Multiple Disjoint Partial Maps
- Worksheet 17: Full Maps with State
- Worksheet 18: Sequential Maps with State
- Worksheet 19: Scattered Maps with State
- 4. Choice and Commitment
- 4.1 The ‘Cut’
- 4.2 A Disjoint Partial Map with Cut
- 4.3 Taming Cut
- 4.4 Cut and Negation-as-Failure
- 4.5 Negation-as-Failure Can Be Misleading
- 5. Difference Structures
- Worksheet 25: Concatenating Lists
- Worksheet 26: Rotations of a List
- Worksheet 27: Linearising
- 5.1 Difference Lists
- 5.2 Solution to Max Tree
- 6. Case Study: Term Rewriting
- 6.1 Symbolic Differentiation
- 6.2 Matrix Products by Symbolic Algebra
- 6.3 The Simplifier
- 7. Case Study: Manipulation of Combinational Circuits
- 7.1 Representing Circuits
- 7.2 Simulation of Circuits
- 7.3 Sums and Products
- 7.4 Simplifying SOP Expressions
- 7.5 Alternative Representation
- 8. Case Study: Clocked Sequential Circuits
- 8.1 Divide-by-Two Pulse Divider
- 8.2 Sequential Parity Checker
- 8.3 Four-Stage Shift Register
- 8.4 Gray Code Counter
- 8.5 Specification of Cascaded Components
- 9. Case Study: A Compiler forThree Model Computers
- 9.1 The Register Machine
- 9.2 The Single-Accumulator Machine
- 9.3 The Stack Machine
- 9.4 Optimisation: Preprocessing the Syntax Tree
- 9.5 Peephole Optimisation
- 10. Case Study: The Fast Fourier Transform in Prolog
- 10.1 Introduction
- 10.2 Notation for Polynomials
- 10.3 The DFT
- 10.4Example: 8-point DFT
- 10.5 Naive Implementation of the DFT
- 10.6 From DFT to FFT
- 10.7 Merging Common Subexpressions
- 10.8 The Graph Generator
- 10.9 Example Run: 8-point FFT
- 10.10 Bibliographic Notes
- 11. Case Study: Higher-Order Functional Programming
- 11.1 Introduction
- 11.2 A Notation for Functions
- 11.3 The Evaluator
- 11.4 Using Higher-Order Functions
- 11.5 Discussion
- 11.6 Bibliographic Notes