图灵机和Lambda微积分等价

时间:2014-11-29 17:41:46

标签: functional-programming lambda-calculus turing-machines computability

我想知道任何人都可以概括地向我解释一下Lambda演算和图灵机等效性的一些证明以及证明的一般方法。尽可能简单明了。

2 个答案:

答案 0 :(得分:1)

从基本的角度来说,你只需证明两件事:

  1. 对于任何lambda术语,都有一个计算相同内容的图灵机
  2. 对于任何图灵机,都有一个lambda术语,计算相同的东西
  3. 当然,这里涉及到一些手工操作,因为您还需要考虑输入/输出方面的操作差异,但我们还没有进入此处。

    在实践中,上述两个定理被证明是建设性的,即通过实际给出一种机械方式将一个转向另一个。所以基本上你给两个编译器,以及一个证明 他们的正确性。

    为了获得良好的直觉,请考虑lambda演算和寄存器之间等效的类似定理。在那种环境中,为了实现计算机的有限性,无类型lambda演算的解释器是一个方向的证明。在这里,我的意思是一个真实的,有形的程序,你可以运行;例如通过从函数式编程语言的编译器中删除typechecker(必然会嵌入一些类型化的lambda演算版本。

    所以下次你运行GHC时,请考虑这个定理!

答案 1 :(得分:0)

我认为,从不同的角度来看,门逻辑(硬件),Lambda微积分(数学/抽象)和图灵机(抽象图像)是相同的操作。 门逻辑是被移位的位/电流。您可以手动实现它(实验套件,试验板,硬件),也可以使用逻辑门模拟器(软件)对其进行测试。 Lambda微积分是一个正规数学概念,用于证明您机械地进行的操作将始终具有相同的输出/结果。 Turing Machines (Turing Machines)只是一种更抽象的解释方式,而没有Math或Gates。告诉您的祖母冯·诺依曼架构,将数学,电气和软件工程留在实验室中。在门逻辑中,您将创建一个锁存器,该锁存器将根据输入保持位/状态。在lambda演算中,每个位都是一个符号,lambda本身是过渡/归约的符号。在图灵机中,位是寄存器。我已经从数学原理,哲学哲学和Lambda微积分学到了这一点:最短的解释是最糟糕的,因为最抽象。您将需要时间查看树木才能使它们成为森林。