什么是约束编程?(constraint programming?)

约束编程是一种声明式编程,它使用数学约束来定义程序中变量之间的相互关系。这些类型的编程技术通常与其他类型的编程技术交互,例如逻辑和命令式技术。这些逻辑和命令式技术正是约束编程所避免的,通过计算语句和执行更改在逻辑上进行。约束编程通常与逻辑编程相结合,形成约束逻辑编程,它是逻辑编程的一个扩展版本。逻辑编程包括文字要求和变量比较,约束逻辑编程将其扩展到包括约束。...

约束编程是一种声明式编程,它使用数学约束来定义程序中变量之间的相互关系。这些类型的编程技术通常与其他类型的编程技术交互,例如逻辑和命令式技术。这些逻辑和命令式技术正是约束编程所避免的,通过计算语句和执行更改在逻辑上进行。约束编程通常与逻辑编程相结合,形成约束逻辑编程,它是逻辑编程的一个扩展版本。逻辑编程包括文字要求和变量比较,约束逻辑编程将其扩展到包括约束。

Constraint programming is a form of declarative programming that uses mathematical constraints to define how variables within the program relate to each other.

约束是一个高级数学术语,但它本质上是在做出决策时必须满足的条件。这是一个过于简单的定义,当用户掌握了扎实的数学知识时,对编程范式的理解就最好了。当查看与约束编程相关的约束时,约束映射出程序中的变量必须如何相互关联。

声明式编程是一种编程范式,它不涉及指令如何执行或执行程序的每个单独步骤。这些类型的语言不是专注于步骤,而是指定或声明计算关系。约束编程是一种声明式编程,因为逻辑是表达和解释的,而不是一次一步系统地执行。

在计算机编程中,变量的定义可能与其数学定义稍有不同。变量可以表示任何东西,除非计算机程序定义了它的含义。乍一看,当有人说约束编程使用约束来定义变量之间的相互关系时,这听起来似乎不足以编写一个完整的计算机程序。实际上,由于计算机编程变量可以包含无限量的数据,因此定义它们之间必须如何相互关联的细节具有非常高的编程能力。

约束编程是一种编程范式,这意味着它陈述了关于基本事物含义的基本思想,与其他编程范式相比,这些思想可能有根本的不同。不同的范例可以用不同于另一种语言的方式做任何事情。一种语言可能使用顺序逻辑,而另一种语言可能不使用。不同的范例通常使用不同的基本信息块和关系来表示指令。许多对于其他编程范例来说是基本的东西,比如逻辑上连续执行许多行,都没有在约束编程中使用。

  • 发表于 2021-12-13 11:36
  • 阅读 ( 404 )
  • 分类:互联网

你可能感兴趣的文章

声明的(declarative)和命令式程序设计(imperative programming)的区别

...式编程与命令式编程 5. 摘要 什么是声明式编程(declarative programming)? 声明式编程可以用一个真实的场景来解释。假设用户需要检查新邮件。一种方法是启用收件箱通知。用户只需启用一次通知,每次新邮件到达时,他都会自动...

  • 发布于 2020-10-16 09:49
  • 阅读 ( 557 )

函数式程序设计(functional programming)和命令式程序设计(imperative programming)的区别

...式的命令式编程 6.摘要 什么是函数式程序设计(functional programming)? 函数式程序设计是以数学为基础的。函数式编程背后的关键原则是,所有的计算都被看作是独立数学函数的组合。数学函数将输入映射到输出。假设有一个函数...

  • 发布于 2020-10-19 02:12
  • 阅读 ( 486 )

结构化的(structured)和非结构化编程(unstructured programming)的区别

结构化的(structured)和非结构化程序设计(unstructured programming)的区别 计算机程序是计算机执行用编程语言编写的任务的一组指令。编程范例可以根据语言特性对编程语言进行分类。结构化编程和非结构化编程是两种常见的编程...

  • 发布于 2020-10-24 05:09
  • 阅读 ( 497 )

约束(constraint)和抑制(restraint)的区别

按照惯例,在人类生活的许多方面很难没有限制地生活。尽管事实上没有人喜欢这些限制,但它们有时是不可避免的,它们在许多事情上设置了限制。限制可以由个人、法律或人类本能设定。约束和约束是表示不同类型约束的两...

  • 发布于 2021-06-26 00:16
  • 阅读 ( 162 )

约束(constraint)和抑制(restraint)的区别

主要差异约束(main difference c***traint) vs. 抑制(restraint) 约束和约束是两个非常相似的词,它们经常互换使用,因为这种相似性。然而,约束和约束之间有着明显的区别,它们不能作为同义词。约束和约束的主要区别在于,...

  • 发布于 2021-06-27 04:38
  • 阅读 ( 350 )

编码(coding)和编程(programming)的区别

...逻辑。总的来说,编码是编程的一个步骤。 什么是编程(programming)? 与编码相比,编程是一个更广泛的概念。程序设计是为计算机执行一项任务而设计和开发程序的整个过程。第一步是找出问题所在。下一步是做分析。这涉及到...

  • 发布于 2021-06-30 22:23
  • 阅读 ( 481 )

脚本语言(scripting language)和程序设计语言(programming language)的区别

...l、PHP、Python和Ruby就是一些例子。 什么是程序设计语言(a programming language)? 程序设计语言是一种正式的语言,可以用来创建计算机程序来指示计算机执行任务。编程语言可以是高级语言,也可以是低级语言。 高级语言更易于程...

  • 发布于 2021-07-01 02:49
  • 阅读 ( 270 )

线性的(linear)和非线性规划(nonlinear programming)的区别

... 关键术语 线性规划,非线性规划 什么是线性规划(linear programming)? 线性规划是一种数学方法,它允许从给定的一组参数或一组要求中确定最佳可能的结果或解决方案。这些参数或要求具有线性关系。此外,线性规划的主要优...

  • 发布于 2021-07-01 09:39
  • 阅读 ( 906 )

函数式程序设计(functional programming)和面向对象程序设计(object oriented programming)的区别

...程、多态性、递归函数 什么是函数式程序设计(functional programming)? 函数式编程允许使用数学函数构建程序。换句话说,它将程序绑定为纯数学函数样式。使用函数式编程,开发人员可以将一个程序构建为单独数学函数的组合。...

  • 发布于 2021-07-01 17:38
  • 阅读 ( 908 )

结构化的(structured)和面向对象程序设计(object oriented programming)的区别

...设计,结构化程序设计 什么是结构化程序设计(structured programming)? 结构化编程将程序划分为一组函数或模块。模块化编程是这方面的另一个名称。这些函数的语句包含在花括号中。每个函数都执行一个子任务。通常,由于每个...

  • 发布于 2021-07-01 22:01
  • 阅读 ( 594 )
yyva2315
yyva2315

0 篇文章

相关推荐