【问题标题】:Is it possible to build a comparatively fast untyped lambda calculus machine?是否有可能构建一个相对快速的无类型 lambda 演算机?
【发布时间】:2011-08-28 03:20:39
【问题描述】:

纯无类型 lambda 演算是一个强大的概念。然而,为现实世界使用构建机器或解释器通常被描述为(几乎)不可能。我想对此进行调查。理论上是否可以构建一个比较快的无类型 lambda 演算机?

我所说的相对较快通常是指在相似数量的资源(门、操作、物理空间、功耗等)内,可与现代类图灵架构相媲美,用于相似范围的任务。

我对机器的实现和架构层没有任何限制,除了它必须以某种方式在物理上和某种程度上可以现实地实现。对如何处理 IO 也没有限制。

  • 如果可能,主要挑战是什么?
  • 如果不可能,为什么以及如何?
  • 该领域的研究现状如何?
  • 哪些领域和科目最相关?

对于基于 lambda 演算的计算机架构的可行性,我们了解多少?

类似的问题:

【问题讨论】:

  • +1 回答一个有趣的问题,尽管您可能会在 cstheory.stackexchange.com 上得到更好的答案
  • 嗯,我没想到。我现在将添加指向上述 ctheory 相关问题的链接。如果可能,版主可以随意移动问题。

标签: lambda functional-programming lambda-calculus


【解决方案1】:

首先,即使在现有架构上,也可以高效地将 lambda 演算编译为机器代码。毕竟,scheme 是 lambda 演算加上一点额外的,它可以高效地编译。然而,scheme & co 是经过严格评估的 lambda 演算。也可以在非严格评估下有效地编译 lambda 演算!关于这一点,请参阅 SPJ 的两本书了解一些背景:http://research.microsoft.com/en-us/um/people/simonpj/papers/papers.html

另一方面,如果我们构建为函数式语言设计的硬件,我们可以将代码编译到该硬件并且确实做得很好,这也是事实。我所知道的最好的新东西是 Reduceron:http://www.cs.york.ac.uk/fp/reduceron/

非常引人注目的 Reduceron 性能的关键在于它是围绕并行图约简构建的,旨在利用在约简 lambda 演算方程中明确显示的并行机会。

【讨论】:

  • 令人兴奋的东西! :) 非常感谢!
  • 它不是 lambda演算。
  • @cdiggins -- 你是说提供的两个链接中描述的技术不能用于编译纯 lambda 演算!?回想一下,纯(类型化)lambda 演算是 Haskell 的一个子集...
  • 我只是指出,使用常量而不是教堂数字不是“纯 lambda 演算”。如果你使用教堂数字(或任何编码),那么做真正的数学会很慢。
  • 教会数字比机器整数慢,这是算法复杂性的问题,而不是实现的问题。此外,可以将前者编译为后者。
猜你喜欢
  • 1970-01-01
  • 2015-09-29
  • 1970-01-01
  • 1970-01-01
  • 2010-10-23
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多