宣告式編程

子编程范式

声明式编程是一个大的概念，其下包含一些有名的子编程范式。

约束式编程

在约束式编程中，变量之间的关系是在约束中说明的，定义了问题的解的范围。这些约束然后被应用程序来求解，以使得每个变量获得一个值，并让最多的约束得到满足。
约束式编程经常被用作函数式编程、逻辑编程甚至命令式编程的补充。

领域专属语言

一些著名的声明式领域专属语言（DSLs）包括yacc语法分析器，编译说明语言Make，Puppet管理配置语言，正则表达式和SQL的一些子集（例如Select queries等）。DSLs有时非常有用，并且不需要是图灵完全的，这往往让其很容易以一种纯声明式的方式来表达。
很多文本标记语言例如HTML、MXML、XAML和XSLT往往是声明式的。

函数式编程

函数式编程，特别是纯函数式编程，尝试最小化状态带来的副作用，因此被认为是声明式的。大多数函数式编程语言，例如Scheme、Clojure、Haskell、OCaml、Standard ML和Unlambda，允许副作用的存在。

逻辑式编程

逻辑式编程语言如Prolog声明关系并且对关系进行提问。同函数式编程一样，许多逻辑编程语言允许副作用的存在。