声明式编程与命令式编程

本文比较了命令式编程,强调过程和指令的执行,与早期机器语言关联紧密;而声明式编程则关注结果描述,是非命令式的,如SQL通过告知数据库需求让其自行计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明式编程与命令式编程

命令式编程

imperative programming

最早的命令式语言是原始计算机的机器语言。在这些语言中,指令非常简单,这使得硬件实现更容易,但阻碍了复杂程序的创建。

用于为几乎所有计算机构建程序的编程范例通常遵循命令式模型。数字计算机硬件被设计为执行机器代码,机器代码是计算机本机的,通常以命令式风格编写,尽管某些体系结构(例如lisp 机器)存在使用其他范式的低级编译器和解释器。

所谓命令式编程主要是在表达“要怎样”,由开发者告诉计算机,执行一系列操作然后得到想要的结果,主要作用的是开发者,计算机只是帮助开发者执行计算。

命令式表达的是过程,越接近计算机的执行过程就叫越“命令式”

越接近计算机语言——“顺序+分支+循环”的操作流程——就越“命令式”。

声明式编程

declarative programming

声明式编程通常被定义为非命令式的任何编程风格。许多其他常见的定义试图通过简单地将其与命令式编程进行对比来定义它。例如:

  • 描述计算应执行的操作的高级程序。
  • 任何没有副作用的编程语言
  • 一种与数理逻辑有明确对应关系的语言。

声明式编程是一种非命令式编程风格,其中程序描述其所需的结果,而无需明确列出必须执行的命令或步骤。函数式和逻辑编程语言的特点是声明式编程风格。在逻辑编程语言中,程序由逻辑语句组成,程序通过搜索语句的证明来执行。

当接口越是在表达“要什么”,直接告述计算它想要的结果,至于怎么做,由预先写好的程序依据一定的算法由计算机自动推算出来。

声明式描述的是结果,它不关心过程。比如 SQL,我们告述数据库的是,我们要查询某张表满足某某条件的数据,但我们并不会告述数据库怎么去查,怎么查数据是数据库系统自己关心的事情。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lanksi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值