注意:本文部分由 Qwhex 撰写, 他还制作了所有很棒的图像。 确保检查他!
我们只把图灵完备标签贴在高效和生产性编程语言上的时代已经过去了,“ esolang”作为一种类型已经成为一种普遍现象。 Esolangs与不是有用的唯一目的通常是编程语言。 对于通常讽刺实际语言的程序员来说,它们是开玩笑的。
但是, 图灵完备到底意味着什么? 这意味着它可以计算任何可计算的东西。 那不是一个令人满意的答案,所以让我们这样说:如果它可以计算出通用图灵机可以做到的任何事情,那么它就是图灵完备的(事实证明,目前尚无办法超越)。
因此,图灵完备性是编程语言(真实的和深奥的)所针对的,但这并不意味着它们是一些有特权的生物,并且是标题的唯一候选人。 如果您足够仔细地看,您会发现在您意想不到的所有地方都可以找到它,在本文中,我们希望列出其中6个最有趣的地方。
1.制造工厂
![](https://i-blog.csdnimg.cn/blog_migrate/af81c9e16118bf952fbe7632e0722752.png)
Manufactoria是一款有关将机器人放置到位的游戏。 更准确地说,这是一个可视化的编程环境,您可以在其中根据磁带的内容接受或拒绝机器人。 您还需要在某些级别上将其输入转换为有效输出。
基本构建块是分支,用于根据读取的位将机器人发送到其他方向;传送带将机器人发送到预定义的单元;写入器将新的颜色位添加到磁带的末尾。 从简单的迷宫开始,玩家将学习如何创建越来越复杂的电路。 谨防! 学习曲线非常陡峭。
这款游戏是图灵完备的,也就不足为奇了。 该规则110解释器证明了这一点 ,它本身就是图灵完备的。 尽管如此,它还是一个开始学习图灵机的好地方,也是锻炼头脑的好方法。
2.乔纳森·布鲁(Jonathan Blow)的Platformer Classic:编织
![](https://i-blog.csdnimg.cn/blog_migrate/bb1964e955d7eafdae7b2a7fbc36a6bf.png)
首先:如果您尚未玩过游戏,则应该认真考虑。 这是我一直以来最喜欢的游戏之一,当我得知这款游戏不仅设计精美,故事情节引人入胜而且图灵完备时,也被我吓了一跳。 公平地说,游戏并不是图灵完整的,而是游戏机制 。 莱纳斯·汉密尔顿(Linus Hamilton)在其2014年的白皮书中,《 辫子》尚无定论, 它引导我们逐步了解了证明图灵完备性所需的特定游戏元素。 这些元素是:
![](https://i-blog.csdnimg.cn/blog_migrate/e3e0dba34d9b57189d25a5c9cf98ec28.png)
- 蒙斯塔斯
- 兔子
- 收卷时间
- 杠杆+平台
- 单向表面
- 大炮
他展示了如何根据以下元素创建计数器计算机 :
表现出图灵完成行为的最简单的机器类型之一。
机器相当复杂,但是他提供了每个部分的图像和说明,因此后续操作并不困难。 后来,他还证明了Braid难以确定,但这不是本文的讨论范围。 如果您想了解所有详细信息,我强烈建议您阅读全文。
3.扫雷车
![](https://i-blog.csdnimg.cn/blog_migrate/94bc8ac80b04ade218f3f48d63504cc5.png)
本来我打算在这里包括《生命游戏》。 的确,Conway游戏的最终目标不是创建一个图灵完整的系统,而是有机的,混乱的,因此栩栩如生的(因此得名)。 但这仍然是计算研究的产物,因此对于本文而言并非如此。
然后,我碰到一个前来纸约扫雷理查德·凯。 他将其类似于网格的性质以及每个单元格所包含的值与“生命游戏”进行了比较,并提出“扫雷”也是图灵完备的。
本文详细介绍了细节,但该概念的本质是将初始状态(当一些图块可见而另一些不可见时)作为图灵机的指令集和该网格的“扩展”(当每个图块可见时) )作为计算结果。 实际的证明有点难以掌握,但是如果您不害怕数学,那么可以尝试一下!
4.音乐符号
![](https://i-blog.csdnimg.cn/blog_migrate/7a9c1a67cdb9263537980df851a3b3b1.png)
谁认为音乐甚至可以代表任意计算? 好吧,如果您到目前为止已经做到了,那么您可能不会再兴奋了(对不起,我想...)。 但是那有多疯狂? 如今,音乐家使用的标准符号已有300多年的历史,比图灵早很多。 使用它并不是那么简单,需要一些聪明的解决方案。
2002年,斯蒂芬·赛克斯(Stephen Sykes)发行了他深奥的编程语言/解释器Choon,它需要标准的音乐符号作为输入,并以.wav文件的形式输出真实的音乐。 我认为最有趣的是,它不使用可变存储,而不是普通的编程语言。 不幸的是,他的原始文章不再可用,您需要Wayback Machine才能访问它,但确实值得一读。
5.功率点
![](https://i-blog.csdnimg.cn/blog_migrate/5a0b3862ba021ebfc4e8166f7d60a24d.png)
(PowerPoint™Turing Machine™)™是一个笑话的实现。 首先呈现在SIGBOVIK,协会计算异端的旗舰会议,汤姆Wildenhain设法把一个PowerPoint幻灯片到经典图灵机与自选图形,超链接和On-点击动画的使用。
独特的动画支持使创建该机器成为可能,但是用户需要多次单击以推进计算,但是此限制使其更加有趣。 Cookie Clicker技能可转化为更快的CPU! 通过使用内置的PP工具手动编辑打孔卡来创建程序。
如果您对更多技术细节感兴趣,请查看白皮书 (PowerPoint中的排版)或下载机器本身。
6.铁路运输
![](https://i-blog.csdnimg.cn/blog_migrate/ad9c27117c7b8c27c809cfd517ba9f0c.png)
火车运输及其周围的基础设施的价格是巨大的,因此我们为什么还没有目睹现实生活中图灵完整的火车系统的实施,这是可以理解的。 但这并不意味着不能做这样的事情,要证明这一点,我们只需要一个仿真平台即可提供与实际火车相同的逼真的构造块和行为。 最好的工具是OpenTTD和开源大亨游戏,您可以在其中构建和管理运输系统,但显然,我们不需要整个游戏,也不需要火车。
第一个构建块是Alienturnedhuman(名称似乎准确)在游戏中实现的二进制完整加法器 ,他在2015年初的youtube视频中展示了他的创作。在发布45分钟的更新视频后的整整一年,他在其中进行了扩展他的完整加法器带有时钟,存储器和“连接电路”的全部武器库,基本上可以创建一台可运行的计算机。 嗯,不是太多能正常工作的计算机,因为视频显示了一个进行中的状态,并且仅概述了从那里创建完全正常工作的通用图灵机的路径。
动机是Alienturnedhuman项目的其他有趣方面。 他在视频中解释了他如何与一位朋友赞美Minecraft的事实,因为他可以在其中构建功能强大的计算机。 他回答说,您当然可以用较旧的游戏来构建计算机,并通过这个令人鼓舞的项目证明了这一点。 绝对可以观看整个视频,了解所有细节!
我希望您能像我一样发现这些有趣。 如果是的话,请不要忘记 中型 的 新鼓掌系统 最多可以 鼓掌 50个。 相应地评估职位:)