能不能请你给我解释一下什么是基本的之间的连接的基本原则的逻辑的编程和现象的语法之间的相似类型的系统和传统的逻辑?

有帮助吗?

解决方案

咖喱-霍华德的对应关系是不是编程逻辑的,但是功能性的程序。基本的机械师的序言是有理由的证明的理论通过约翰*罗宾逊 决议的技术, ,这表示它是如何可以检查是否合乎逻辑的公式表述为喇叭条款 法满足, 那是,你是否可以找到的条款,类似于他们的逻辑变量,使他们真实的。

因此编程逻辑的是有关指定程序作为合乎逻辑的公式,计算程序的某些形式的证据推论,在序言reolution,正如我已经说。通过对比的咖喱-霍华德的对应关系显示了如何证明在一个特殊的formulasition的逻辑,称为 自然的演绎, 对应计划中的氧微积分,与类型的程序相对应的公式,该公式的证据证明;计算氧微积分相对应的一个重要现象的证明的理论称为正常化,这将证明入新的、更直接的证明。所以编程逻辑和编程功能相对应的不同水平,在这些逻辑:逻辑的程序相匹配公式的逻辑,而匹配功能的程序证明的公式。

还有另一个差异:的逻辑使用的一般是不同的。编程逻辑通常使用更简单的逻辑—正如我所说,序言是建立在喇叭的条款,这是一个高度受限制类的公式,其影响可能不是嵌套的,并没有分离,虽然序言中恢复的全力量的典型的逻辑采用的切的规则。相比之下,功能编程语言,例如Haskell大量使用的程序的类型有嵌套的影响,并装饰,通过各种形式的多态性。他们也是基于直觉的逻辑,一个类的逻辑,禁止使用的原则排除中间,鲁滨逊的计算机制基础上的。

其他一些要点:

  1. 它能够基础编程逻辑上的更复杂的逻辑比喇叭条款;例如,Lambda-序言是基于直觉的逻辑,一个不同的计算机制,比决议。
  2. 戴尔*米勒已经被称为证明的理论范式背后的逻辑编程 证据搜索作为编程 比喻,对比 证据作为程序 比喻,是另一个术语用于对咖喱-霍华德的对应关系。

其他提示

逻辑编程基本上是关于用于证明目标导向搜索。类型语言和逻辑之间的结构关系通常包括功能性的语言,虽然有时必须和其它语言 - 但不是直接逻辑编程语言。该关系涉及样张节目。

所以,逻辑编程证明搜索可以被用来找到该证据然后被解释为功能程序。这似乎是两者之间的关系最直接的(如你要求的)。

建筑整体方案这种方式是不实际的,但它可以在程序中繁琐的细节填充是有用的,而且有这样一些重要的例子在实践中。这方面的一个基本的例子是结构子类型 - 其对应于通过简单的蕴涵关系证明在几个步骤证明填充。一个更复杂的例子是Haskell中的类型的类系统,它涉及到一种特定类型的目标定向搜索的 - 在极端这涉及逻辑编程在编译时图灵完整形式

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top