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