The Landscape of Logic Programming

  • Pure Datalog = first-order logic + recursive predicates + aggregates (max, min, sum, …)
    Pure Datalog - function symbols No arrays/lists/objects/…, no string operations/arithmetic, only atomic values
  • Not Turing complete: all programs terminate
SQL
Pure Datalog
Prolog
Practical Datalog
λProlog
less expressive,
runs efficiently
more expressive,
difficult to implement efficiently