我只是在阅读有关停止问题的另一种解释,这使我想到我所看到的所有示例中涉及的问题都涉及无限序列。但是我从不在程序中使用无限序列-它们花费的时间太长。现实世界中的所有应用程序都有上限和下限。甚至实数也不是真正的实数-它们是存储为32/64位等的近似值。
因此,问题是,是否存在可以确定程序是否暂停的子集?对于大多数程序来说足够好了吗?我可以建立一套可以确定程序的“可暂停性”的语言结构吗?我敢肯定,这已经在某处研究过,所以任何指针都将不胜感激。语言不会完全完成,但是是否有几乎完全完成这件事呢?
很自然地,这样的构造必须排除递归和无边界的while循环,但是我可以编写一个没有那么容易的程序。
作为示例,从标准输入中读取内容必须是一定范围的,但这很容易-根据问题域的不同,我将输入限制为10,000,000个字符,以此类推。
tia
[更新]
阅读评论和答案后,也许我应该重申我的问题。
对于所有输入都受限的给定程序,您可以确定该程序是否暂停。如果是这样,语言的约束是什么,输入集的极限是什么。这些构造的最大集合将确定可以推论为停止或不停止的语言。是否对此进行了一些研究?
[更新2]
答案是肯定的,可以回溯到1967年,网址是http://www.isp.uni-luebeck.de/kps07/files/papers/kirner.pdf
明斯基已经在1967年提出论点,认为至少可以在理论上解决有限状态系统的停顿问题[4]:“ ...任何有限状态机,如果完全留给自己,最终将陷入一个完美的周期重复模式。这种重复模式的持续时间不能超过机器内部状态的数量……”
(因此,如果您坚持使用有限的图灵机,则可以构建一个oracle)