Spokes.wiki Search About
Computer Language source ↗ source url updated Wed Aug 05 2026 00:00:00 GMT+0000 (Coordinated Universal Time)

Prolog

The canonical logic programming language, created around 1972 by Alain Colmerauer and Philippe Roussel at Aix-Marseille II — programmation en logique. The first implementation was a Fortran interpreter; David H. D. Warren later produced the Edinburgh dialect and the Warren Abstract Machine, the compilation target most implementations still descend from. Standardized as ISO/IEC 13211 (part 1, core, 1995; part 2, modules, 2000). Implementations include SWI-Prolog, GNU Prolog, B-Prolog, ECLiPSe and SICStus.

A program is facts (human(socrates)) and rules (mortal(X) :- human(X)); execution is a query the engine tries to prove by unification and backtracking, formally SLD resolution over the negated query. The cut (!) removes choice points to control search, at the cost of declarative purity. Application areas: knowledge representation, natural-language processing (IBM’s Watson used Prolog for pattern matching over parse trees), expert systems, theorem proving and question answering.

T2 — Wikipedia, and the corpus’s first third-party description of a language rather than a project’s own page. That difference shows immediately: it is the only source here that reports what the language is bad at.

What it costs, stated by the source

Four limitations, none of which a front page would carry: performance overhead from non-deterministic evaluation and backtracking; industrial adoption concentrated in applications under ~100,000 lines; module systems diverging from the ISO standard so portability suffers; and the deep one — procedural reasoning is required, since understanding a program means understanding depth-first search and clause ordering. Programmers add cuts to get acceptable performance and lose bidirectional execution, which was the attraction.

Why it matters here

It closes the spoke’s second growth edge: a paradigm outside the imperative/functional pair the founding eight covered. And it does something more useful than adding a row — it shows that programming-language‘s four axes (memory, concurrency, runtime, governance) were derived from the kind of language the corpus happened to hold. For Prolog the defining question is the evaluation strategy, and none of the four axes asks about it.

The reflexive note: the spoke’s newest neighbour, ../knowledge-representation-wiki, owns the RDF/OWL tradition, and this is where “knowledge as logical clauses you can query” comes from as a programming idea rather than a data-modelling one.

logic-programming · the-power-of-prolog · programming-language · language-governance · c · synthesis