Skip to content

Declarative Expression

Describing WHAT result is desired rather than HOW to compute it enables the underlying system to choose optimal execution strategies and abstracts away incidental complexity.

Tension Addressed

Abstraction vs. Concreteness

Recognizable As

SQL queries, HTML/CSS, configuration over code, constraint solvers, build specifications, infrastructure-as-code

Canonical Sources

Kowalski, "Algorithm = Logic + Control" (1979); SQL origins (Codd, 1970s); Prolog development (1970s)

Transfers To

Database Queries, UI Layout, Build Systems, Infrastructure Automation, Constraint Satisfaction

Declarative approaches trade control for optimization opportunity: the system can reorder, parallelize, or cache as it sees fit.