几乎所有使用的编程语言都是图灵完备的,虽然这提供了表示任何可计算算法的语言,但它也带来了自己的一系列问题。鉴于我编写的所有算法都打算停止,我希望能够用一种保证它们会停止的语言来表示它们。
词法分析时使用用于匹配字符串和有限状态机的正则表达式,但我想知道是否有一种更通用、更广泛的语言不是图灵完备的?
编辑:我应该澄清一下,通过“通用”我不一定希望能够用该语言编写所有停止算法(我认为这种语言不会存在)但我怀疑有共同的线程停止证明,可以推广以产生一种语言,其中所有算法都保证停止。
还有另一种方法可以解决这个问题——消除理论上无限内存的需要。一旦限制了机器允许的内存量,机器所处的状态数是有限且可数的,因此您可以确定算法是否会停止(通过不允许机器进入之前的状态) )。