Course Overview

What this Prolog course covers, how to use it, prerequisites.

A self-contained, hands-on course covering logic programming in Prolog: facts, rules, unification, backtracking, recursion, lists, the cut, DCGs, the dynamic database, modules, constraint logic programming (CLP(FD), CLP(B), CLP(Q/R)), tabling, coroutining, meta-interpreters, search & AI techniques, performance, the WAM, and real-world SWI-Prolog libraries. Examples use SWI-Prolog unless noted, with ISO-standard notes and pointers to Scryer, GNU, SICStus, and Trealla Prolog.

Course Map

Part I — Foundations Introduction to Logic Programming & Prolog Installation & Implementations The Top Level & Your First Program Facts, Rules & Queries

Terms: Atoms, Numbers, Variables, Compound Terms & Strings How Prolog Executes: Resolution, Backtracking & Search Trees Comparison & Equality

Part II — Core Language & Standard Library Control: Conjunction, Disjunction, If-Then-Else, Negation Term Inspection & Construction

All-Solutions Predicates: findall, bagof, setof, aggregate_all The Dynamic Database: assert & retract Atoms, Strings, Chars & Codes Definite Clause Grammars (DCGs) Input/Output & Files Exceptions & Error Handling Higher-Order & Meta Predicates

Accumulators, Tail Recursion & Difference Lists Standard Libraries: lists, apply, pairs, assoc, ordsets, aggregate, yall

Debugging, Testing (plunit) & Documentation (pldoc) Part III — Advanced Prolog

Purity, Monotonicity & Declarative Programming Style Constraint Logic Programming over Finite Domains: CLP(FD)

CLP(B), CLP(Q/R) & Constraint Handling Rules (CHR) Coroutining: dif, freeze, when & Attributed Variables Term & Goal Expansion, Macros

Search Strategies: DFS, BFS, Iterative Deepening, A* AI Applications: Expert Systems, Planning, NLP, Theorem Proving

Building Interpreters & Compilers in Prolog Performance: Indexing, LCO, Determinism & Profiling Inside Prolog: The WAM

Concurrency: Threads, Engines & Global Variables Related Paradigms: Datalog, ASP, Probabilistic Logic, Lambda Prolog Part IV — Ecosystem & Real-World Prolog

Web Programming with SWI-Prolog (HTTP, JSON, HTML) Databases, Semantic Web & External Data

Foreign Language Interfaces: C, Python (Janus), Java, JavaScript

Packs, Deployment & Standalone Executables ISO Standard & Portability Best Practices & Style

Appendices: Cheat Sheet, Built-ins, Operators, Resources, Study Plan