声明式编程范例和过程式编程范例有什么区别?
-
06-07-2019 - |
题
两者有什么区别 陈述性的 和 程序 编程范式?您能提供一些例子吗?
还存在哪些其他编程范例?
解决方案
至关重要的
命令式编程范式有几个子范式,例如 程序 或者 面向对象 编程范式。
在命令式编程范例中,您可以以不同的抽象程度逐步描述算法。
支持过程范式的编程语言示例:
- C(以及大多数其他遗留语言)
- 主要是 PHP
- 从某种意义上说,所有主要语言
面向对象
它通常指的是表现出 类型的层次结构 它继承了从基类型到派生类型的方法和状态,但也包括不寻常的基于原型的 JavaScript。
支持 OO 范式的编程语言示例:
- 爪哇
声明式
声明式编程范式有多个子范式,例如函数式或逻辑编程范式。
在声明式编程范例中,您描述一个结果或目标,然后通过“黑盒子”。相反的是 至关重要的。
支持声明式编程范式的编程语言示例:
- yacc
- 树顶
- SQL
- 常用表达
- 莱克斯
- XSLT
- 标记、troff、CSS、VHDL
功能性
函数式编程强调函数的应用没有副作用,也没有可变状态。上面的声明性系统展示了函数式编程的某些方面。
支持声明式函数范式的编程语言示例:
- 哈斯克尔
- 奥卡米尔
- 方案
- 埃尔兰
- F#
- 斯卡拉
其他提示
声明性编程是指你想要的东西,而不必说出如何做。使用过程编程,您必须指定获得结果的确切步骤。
例如,SQL比声明更具说明性,因为查询不指定生成结果的步骤。
让我举一个现实世界的例子:我需要一杯茶。
程序:
- 去厨房
- 加糖,牛奶和茶,
- 将它们混合,然后在火上加热直至沸腾
- 将它放入杯中并带给我 醇>
- 给我一杯茶。 醇>
<强>声明:强>
在过程语言中,您定义整个过程并提供如何执行的步骤。您只需提供订单并定义如何提供流程。
在声明性语言中,您只需设置命令或命令,并让它在系统上如何完成该命令。你只需要你的结果而不需要深入研究它应该如何完成。
程序设计:
在程序编程中,程序启动时,它遵循一组指令。指令可能会根据某些文件或内存内容而改变,但总的来说,它并没有很大的变化。程序的输入通常不是来自实时的用户输入,而是来自预先收集的数据集。
声明性编程:
在声明性事件驱动的编程中,通过程序可以采取的可选操作来集中数据体。例如,每个“事件”都包括在内。在文字处理器中是任何影响数据,文档的鼠标或键盘(或文件)更改。它们不需要以任何顺序执行。事件驱动编程采用小程序(事件处理程序)的形式,所有程序都处理一组公共数据,因此每个小程序都可以使用相同的数据,本例中的文档。
在程序方法中,您可以对指令进行编码以实现结果。在声明式方法中,您可以定义需要解决的问题,作为解决问题的知识。看看我在两种方法中实施的程序或声明方法示例
正如您在示例中所看到的,在声明式方法中,您不需要指示如何解决问题。