区别是:声明式编程是一种编程范式,与命令式编程相对立。它描述目标的性质,让计算机明白目标,而非流程。命令式编程是一种描述计算机所需作出的行为的编程典范。几乎所有计算机的硬件工作都是命令式的,大部分的编程语言都是命令式的。
声明式编程
声明式编程(英语:Declarative programming)是一种编程范式,与命令式编程相对立。它描述目标的性质,让计算机明白目标,而非流程。声明式编程不用告诉计算机问题领域,从而避免随之而来的副作用。而命令式编程则需要用算法来明确的指出每一步该怎么做。
声明式编程通常被看做是形式逻辑的理论,把计算看做推导。声明式编程因大幅简化了并行计算的编写难度,自2009年起备受关注。
声明式语言包包括数据库查询语言(SQL,XQuery),正则表达式,逻辑编程,函数式编程和组态管理系统。
声明式编程透过函数、推论规则或项重写(term-rewriting)规则,来描述变量之间的关系。它的语言运行器(编译器或解释器)采用了一个固定的算法,以从这些关系产生结果。
声明式编程语言通常用作解决人工智能和约束满足问题。
声明式编程通常被定义为除命令式以外的编程范式。同时存在一些其他的定义,这些定义不是简单的将声明式编程和命令式编程做对比,例如:
声明式编程是告诉计算机需要计算“什么”而不是“如何”去计算
任何没有副作用的编程语言,或者更确切一点,任何引用透明的编程语言
任何有严格计算逻辑的编程语言
这些定义有一些是重合的。
命令式编程
命令式编程(英语:Imperative programming),是一种描述计算机所需作出的行为的编程典范。几乎所有计算机的硬件工作都是命令式的;几乎所有计算机的硬件都是设计来运行机器码,使用命令式的风格来写的。较高阶的命令式编程语言使用变量和更复杂的语句,但仍依从相同的典范。虽非计算机程序,但与命令式编程有相似的风格:每步都是指令,有形的世界控制情况。因为命令式编程的基础观念,不但概念上比较熟悉,而且较容易具体表现于硬件,所以大部分的编程语言都是命令式的。
命令式编程,顾名思义,是一种编程范式,它指定计算机为完成或完成目标而应采取的步骤。在这种情况下,函数在解决问题所需的每个步骤中都被隐式编码。简单来说,它包括计算机执行的命令。程序编写速度更快,应用程序也更容易优化。它允许将函数视为特殊情况构造,因为在命令式编程中,很少允许从方法返回整个方法调用。它是算法编程的一种形式。
程序编程是一种命令式编程,其中程序是从一个或多个过程(也称为子程序或函数)构建的。这些术语通常用作同义词,但程序的使用会对命令式程序的出现以及它们的构造方式产生巨大影响。重度过程编程是一种结构化编程形式,其中状态更改本地化为过程或仅限于显式参数和从过程返回。从 20 世纪 60 年代开始,结构化编程和模块化编程一般被推广为提高命令性程序的可维护性和整体质量的技术。面向对象编程背后的概念试图扩展这种方法。
延伸阅读:
什么是编程?
编程是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
编程:设计具备逻辑流动作用的一种“可控体系”【注:编程不一定是针对计算机程序而言的,针对具备逻辑计算力的体系,都可以算编程。】
在计算机系统中,一条机器指令规定了计算机系统的一个特定动作。一个系列的计算机在硬件设计制造时就用了若干指令规定了该系列计算机能够进行的基本操作,这些指令一起构成了该系列计算机的指令系统。在计算机应用的初期,程序员使用机器的指令系统来编写计算机应用程序,这种程序称为机器语言程序。使用机器语言编写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。缺点也很明显,如:编程工作量大,容易出错;依赖具体的计算机体系,因而程序的通用性、移植性都很差。
文章标题:声明式编程和命令式编程有什么区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/38496