首页 >> 秀友百科词条 >> 网络工具软件 >> 声明式编程

声明式编程[编辑]


概述
声明式编程,(英语:Declarative programming)是一种编程范式,与命令式编程相对立。

声明式编程(英语:Declarative programming)是一种编程范式,与命令式编程相对立。它描述目标的性质,让计算机明白目标,而非流程。声明式编程不用告诉计算机问题领域,从而避免随之而来的副作用。而命令式编程则需要用算法来明确的指出每一步该怎么做。

声明式编程通常被看做是形式逻辑的理论,把计算看做推导。声明式编程因大幅简化了并行计算的编写难度,自2009起备受关注。

声明式语言包包括数据库查询语言(SQL,XQuery),正则表达式,逻辑编程,函数式编程和组态管理系统。

声明式编程透过函数、推论规则或项重写(term-rewriting)规则,来描述变量之间的关系。它的语言运行器(编译器或解释器)采用了一个固定的算法,以从这些关系产生结果。

声明式编程语言通常用作解决人工智能和约束满足问题。

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

约束式编
在约束式编程中,变量之间的关系是在约束中说明的,定义了问题的解的范围。这些约束然后被应用程序来求解,以使得每个变量获得一个值,并让最多的约束得到满足。

约束式编程经常被用作函数式编程、逻辑编程甚至命令式编程的补充。

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

很多文本标记语言例如HTML、MXML、XAML和XSLT往往是声明式的。

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

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

参考资料:
扩展阅读: Chakravarty, Manuel M. T. On the Massively Parallel Execution of Declarative Programs (Doctoral dissertation). Technische Universit?t Berlin. 14 February 1997 [26 February 2015]. In this context, the criterion for calling a programming language declarative is the existence of a clear, mathematically established correspondence between the language and mathematical logic such that a declarative semantics for the language can be based on the model or the proof theory (or both) of the logic.
相关词条:
合作编辑: 胡芳洁 

秀友百科词条内容均由网友提供,仅供参考。如发现词条内容有问题,请联系管理员。

词条信息

浏览次数:0

编辑次数:0历史版本

创建者: 胡芳洁

最近更新:2018/11/12 12:58:38

关于秀友百科| 版权声明| 联系方式| 常见问题

秀友百科是网络营销能力秀指定的教学实践平台

深圳市竞争力科技有限公司版权所有