摘要:根据赖斯定理,一切都是不可能的。但是,我一直都在做这不可能的事情!
当然,赖斯定理并不仅仅是说“一切皆有可能”。它说得更具体一些:“计算机程序的每个属性都是不可计算的。”
(如果要分割头发,则每个“非平凡的”属性。也就是说,所有程序具有或没有程序具有的属性都是微不足道的。但是其他任何属性都是不可计算的。)
这就是定理说的或似乎要说的。大概许多非常聪明的人已经仔细验证了该定理的正确性。但这似乎完全违背了逻辑!程序具有众多特性,可以轻松计算!!例如:
程序在暂停之前执行多少步?要确定此数字是有限的还是无限的,恰好是停止问题,该问题不可计算。决定此数字是大于还是小于某个有限的是微不足道的!只需运行该程序最多n步,然后查看它是否停止。简单!
同样,程序在前m个执行步骤中使用的存储单元是否少于个?微不足道的。
程序文本中是否提到了名为k的变量?简单的文本分析将揭示答案。
程序是否调用命令?再次,扫描程序文本以查找该命令名称。
我可以看到很多性能之间做一下非可计算为好; 例如,一个完整的程序运行会执行多少次添加?嗯,这几乎与询问程序执行多少步骤相同,这实际上是“停止问题”。但是看起来确实有很多程序属性,它们确实非常容易计算。然而,赖斯定理坚持认为它们都不是可计算的。
我在这里想念什么?