Logic & Declarative Languages
Languages where programs describe what to compute rather than how. Logic programming (Prolog) uses formal logic; query languages (SQL) specify data transformations declaratively.
Sub-topics
Created by Alain Colmerauer and Philippe Roussel in 1972. Programming in formal logic — programs are sets of facts and rules, and computation is logical inference. Foundation of logic programming. Used in AI, NLP, and expert systems.
Structured Query Language, developed at IBM by Donald Chamberlin and Raymond Boyce in 1974, based on Codd's relational algebra. The universal language for querying relational databases. Standardized by ANSI/ISO. Used by virtually every application with structured data.
A syntactic subset of Prolog focused on database queries, formalized in the late 1970s. Not Turing-complete by design — guarantees termination. Experiencing a renaissance in program analysis (Souffle) and distributed databases (Datomic).
Created at the University of Melbourne in 1995 by Fergus Henderson, Thomas Conway, and Zoltan Somogyi. A logic-functional language combining Prolog's logic programming with Haskell's type system and purity. Compiles to C for performance.
Created by John Chambers at Bell Labs in 1976. A language for statistical analysis and graphics. Parent of both R (open-source reimplementation) and S-PLUS (commercial). Pioneered the idea of an interactive statistical computing environment.