更多互联网精彩资讯、工作效率提升关注【飞鱼在浪屿】(日更新)
认识Peluche
Peluche(法语中的“毛绒”的意思)是一只光滑的猫。

她将是今天的测试对象。
Peluche 图灵完备吗?什么是图灵完备?
图灵完备性的概念是,如果设备可以模拟图灵机,那么它就可以执行任何类型的计算。
这意味着任何实现以下八条指令的机器都是一台计算机(因此可以执行任何类型的计算):
- . and , : 输入和输出一个值
- + 和 - :增加和减少存储单元中包含的值。
- > 和 < :向左或向右移动当前存储磁带。
- [ 和 ] :执行循环。
所以,如果 Peluche 能够执行这八个指令,那么我们认为它图灵完备。
图灵完备性的证明
- 输入输出
首先,看看能得到反应,尝试戳 Peluche。


她看了我一眼,然后才转过身。


所以它是这样的:戳了它一下,得到了一个反应。所以它可以处理输入并给出输出。
输入/输出确认!
增减内存值
前几天,我下班回来:

到处都是狗粮……
但后来我仔细看了一下,意识到可以对格子进行编号,如下所示:

这看起来很像内存磁带!因为它可以将食物洒在瓷砖上,然后直接从地板上吃掉它们,因此她可以增加和减少给定存储单元中包含的值。
增加/减少确认!
向左或向右移动当前内存单元
还有一次,洗碗时 不小心 洒了一些水在 Peluche 身上。它开始在厨房里到处乱跑,弄得一团糟。

如果仔细观察(在红色箭头的尖端),会注意到,在弄得一团糟时,它移动了碗。
移动碗意味着它会将粗磨食物洒在另一块瓷砖上。这算作移动内存头以编辑另一个内存单元。
已确认内存磁带的移位!
执行循环
所以,在这个烂摊子之后,不得不清理。
不到五分钟后,回到厨房又看到这个:

是的......它 绝对 可以执行循环......
循环确认!
我们刚刚证明了 Peluche 确实是图灵完备的。那么现在,如何使用它来执行高性能计算?
拿她怎么办?
现在已经证明 Peluche 是图灵完备的,可以对它做任何事情!
因此,试图给简单的代码来执行:

结果是:它什么都不做。
虽然图灵完备,但也许猫根本不是为了执行代码而设计的?
关于“猫计算”
撇开笑话不谈, 猫计算 是给这种通用实践起的名字。根据经验,当有人发现一种语言的新特性时,他们开始在任何地方使用它,只是因为他们可以并且想要。
但是,就像可以使用 cat 但不应该执行代码一样,这并不是因为 可以 使用而 应该 使用的功能。
卷起来
猫计算似乎是一个菜鸟错误,但即使是最有经验的开发人员有时也会犯菜鸟错误。
每三年发布一个新版本的 C++。每一次,它都让我在各种可能的情况下使用新功能。尽管这是建立一些经验的好机会(避免误用功能的最佳方法之一是执行一次这些误用),但这也是获得不良实践的有利基础。
在使用某个功能之前,请务必问问自己是否需要某个功能,否则可能会出现猫计算。
此外,猫计算是虐待动物,所以不要这样做

感谢阅读,再见!
( 在写这篇文章的过程中没有猫受到伤害,但有一只被轻轻戳了一下。 )
