猫=图灵机?4项测试证明,「猫猫计算机」可执行任意计算( 二 )


猫=图灵机?4项测试证明,「猫猫计算机」可执行任意计算
文章图片

文章图片

但是如果仔细观察(在红色箭头的尖端) , 不难注意到 , Peluche一边乱跑 , 一边把自己装食物的碗移动了位置 。
也就是说 , Peluche将它的食物洒到另一块瓷砖上 。这相当于移动指向当前内存的指针 , 编辑另一个内存单元 。
移动内存单元 , 已确认!
执行循环
在厨房被Peluche搞的一团乱之后 , 很明显 , Chloé Lourseyre不得不清理打扫 。
然后不到五分钟后 , Chloé Lourseyre回到厨房 , 又变成这样了:
猫=图灵机?4项测试证明,「猫猫计算机」可执行任意计算
文章图片

文章图片

所以 , Peluche绝对可以执行循环......
循环已确认!
到这里为止 , Chloé Lourseyre已经证明了Peluche确实是「图灵完备」的 。那么下一个问题是 , 如何使用Peluche来执行高性能计算任务?
如何执行?首先要有代码 , Chloé Lourseyre编了一段简单的代码 , 就像下面这样:(这个代码示例是一种奇特的新语言 , 名为「braincat」)
猫=图灵机?4项测试证明,「猫猫计算机」可执行任意计算
文章图片

文章图片

结果:Peluche什么都不做!
所以最后 , Chloé Lourseyre不禁想 , 虽然猫是「图灵完备」的 , 但可能不是为了执行代码而设计的?
关于「猫猫计算机」
上面的「猫猫计算机」当然都是说笑话 。根据Chloé Lourseyre的经验 , 当有人发现一种语言的新特征时 , 就开始到处使用 。
「猫猫计算机」似乎是一个新手会犯的错误 , 但即使是最有经验的开发人员 , 有时也会犯新手错误 , 承认这一点没什么难为情的 。
实际上 , 在面对编程语言的全新版本中的新功能时 , 积累经验的最好办法 , 就是把每个功能错误地使用一次 , 以避免今后的误用 。
在使用某项功能之前 , 一定要先问问自己 , 这样做实际上是否有必要 , 否则你也可能犯下像「猫猫计算机」这样的错误 。
另外 , 猫猫计算机很费猫 , 所以不要这样做 。
(此文的写作过程中 , 没有猫猫受到伤害 , 但有一只猫被轻轻地戳过几下 。)
参考资料:
https://belaycpp.com/2021/11/24/is-my-cat-turing-complete/
https://en.wikipedia.org/wiki/Turing_completeness
来源:36氪

推荐阅读