Programming languages 声明式编程语言有语句吗?

Programming languages 声明式编程语言有语句吗?,programming-languages,Programming Languages,声明式编程语言有语句吗 或者,换句话说,语句是命令式语言特有的吗?我不知道自己是否100%正确,但我的理解如下: 命令式语言,无论是过程式语言(如C)还是面向对象语言(如Java或C++),都通过包含许多赋值语句来执行计算,这些语句变异它们所赋值的变量,并直接导致更改程序的状态。这个语句流由所谓的控制流控制,从广义上讲,控制流是程序中的各种条件或无条件跳转(if语句、循环等) 声明性语言另一方面,其工作方式大不相同,尤其取决于语言的子类型: 例如,函数式语言(如Scheme和Haskell)将

声明式编程语言有语句吗


或者,换句话说,语句是命令式语言特有的吗?

我不知道自己是否100%正确,但我的理解如下:

命令式语言,无论是过程式语言(如C)还是面向对象语言(如Java或C++),都通过包含许多赋值语句来执行计算,这些语句变异它们所赋值的变量,并直接导致更改程序的状态。这个语句流由所谓的控制流控制,从广义上讲,控制流是程序中的各种条件或无条件跳转(if语句、循环等)

声明性语言另一方面,其工作方式大不相同,尤其取决于语言的子类型:

  • 例如,函数式语言(如Scheme和Haskell)将其程序编写为一系列表达式,这些表达式组合成函数。然后将这些函数应用于程序的输入,并生成输出。本质上,它的工作原理类似于数学意义上的函数:它将一个值从其域映射到其范围内的值
  • 逻辑或基于约束的语言,例如Prolog,将其程序表示为一系列事实、规则或查询,然后由(类似定理证明的)引擎进行处理

您如何定义“语句”和“声明性编程语言”?@Marcin-它们没有明确定义的含义?面向对象语言不是命令式语言的子类。有几种面向对象的语言是从声明式语言派生的,包括函数式语言和逻辑式语言。从封装和重用的角度来看,面向对象的概念比命令、函数和逻辑概念处于更高的层次,并且可以在大多数语言范例的上下文中应用、解释。