☰
↑
←
→
🔍
TOC
A "Hands-on" Introduction to
Pure Logic Programming
(Pure Prolog)
»
Table of Contents
ON THIS PAGE
Syntax: Terms (Variables, Constants, and Structures)
Syntax: Terms
Syntax: Rules and Facts (Clauses)
Syntax: Predicates, Programs, and Queries
"Declarative" Meaning of Facts and Rules
"Declarative" Meaning of Predicates and Queries
"Execution" and Semantics
Running Programs in a Prolog System
Simple (Top-Down) Operational Meaning of Programs
Unification: A fundamental Operation with Multiple Uses
Unification (more formally)
Unification
Unification Algorithm
Unification Algorithm Examples
A Schematic Interpreter for Logic Programs (SLD–resolution)
The Choices Made in Standard Prolog
A Schematic Interpreter for Logic Programs (Contd.)
Running Programs: Alternative Execution Paths
Running Programs: Alternative Execution Paths
Running Programs: The "normal programming" View
Comparison with Imperative and Functional Languages
Comparison with Imperative and Functional Languages (Contd.)
The Search Tree
Characterization of The Search Tree
Depth-First Search (Backtracking)
Breadth-First Search
Selecting breadth-first or depth-first search
Control of Search in Depth-First Search (Backtracking)
Control of Search in Depth-First Search (Backtracking) (Contd.)
Role of Unification in Execution
"Modes"
Pure Logic Programming Examples
(Non-Recursive)
Pure Logic Programs (Overview)
Database Programming
Database Programming (Contd.)
Structured Data and Data Abstraction (and the '=' Predicate)
Structured Data and Data Abstraction (and The Anonymous Variable)
Terms as Data Structures with Pointers
Structured Data and Data Abstraction (Contd.)
Logic Programs and the Relational DB Model
Logic Programs and the Relational DB Model (Contd.)
Deductive Databases / Datalog / ASP
Pure Logic Programming Examples
(Recursion, Data Types)
Recursive Programming
What about "not equal"?
What about "not equal"? (Contd.)
Types
Recursive Programming: Recursive Types
Recursive Programming: Arithmetic
Recursive Programming: Arithmetic
Recursive Programming: Arithmetic
Recursive Programming: Arithmetic/Functions
Functional Syntax: Packages and Directives (I)
Functional Syntax: Packages and Directives (II)
Recursive Programming: Arithmetic/Functions (Functional Syntax)
Recursive Programming: Arithmetic/Functions (Funct. Syntax, Contd.)
Recursive Programming: Lists
Recursive Programming: Lists (Contd.)
Recursive Programming: Lists (Contd.) – Membership in a List
Recursive Programming: Lists (Contd.) – Length, Sum, Typed Lists
Recursive Programming: One Way to Understand It
Recursive Programming: Lists (Contd.) – List Concatenation
Recursive Programming: Lists (Contd.) – List Concatenation
Recursive Programming: Lists (Contd.) – List Concatenation
Recursive Programming: Lists (Contd.) – Two Ways of Reversing a List
Recursive Programming: Lists (Contd.)
Recursive Programming: Binary Trees
Recursive Programming: Binary Trees
Polymorphism
Recursive Programming: Manipulating Symbolic Expressions
Recursive Programming: Manipulating Symb. Expressions (Contd.)
Recursive Programming: Graphs
Recursive Programming: Graphs (Exercises)
Recursive Programming: Automata (Graphs)
Recursive Programming: Automata (Graphs) (Contd.)
Recursive Programming: Towers of Hanoi
Recursive Programming: Towers of Hanoi (Representation)
Recursive Programming: Towers of Hanoi (Solution)
Learning to Compose Recursive Programs
Table of Contents