命令式编程
百科:命令式编程(英语:Imperative programming),是一种描述计算机所需作出的行为的编程典范。几乎所有计算机的硬件工作都是命令式的;几乎所有计算机的硬件都是设计来运行机器码,使用命令式的风格来写的。较高阶的命令式编程语言使用变量和更复杂的语句,但仍依从相同的典范。虽非计算机程序,但与命令式编程有相似的风格:每步都是指令,有形的世界控制情况。因为命令式编程的基础观念,不但概念上比较熟悉,而且较容易具体表现于硬件,所以大部分的编程语言都是命令式的。
基于时序,自己定义执行过程,一步一步得到想要的结果。
声明式编程
百科:声明式编程(英语:Declarative programming)是一种编程范式,与命令式编程相对立。它描述目标的性质,让计算机明白目标,而非流程。声明式编程不用告诉计算机问题领域,从而避免随之而来的副作用。声明式编程通常被看做是形式逻辑的理论,把计算看做推导。声明式编程透过函数、推论规则或项重写(term-rewriting)规则,来描述变量之间的关系。它的语言运行器(编译器或解释器)采用了一个固定的算法,以从这些关系产生结果。
基于抽象,不关心得到结果的过程,直接调用现有的模块化逻辑。
关系
(个人拙见,欢迎指摘,不喜勿喷)
个人觉得,声明式编程所调用的模块化逻辑是由命令式编程所实现的。
这种想法的来源:可能跟一直以来应用命令式编程(Java)有关,感觉声明式就像调用Java中封装好的方法,目前的我把方法等价为声明式中的函数。
【实际的命令式和声明式一定没这么简单,我会不断论证,随时补充】