“定理还支撑编译器专门化、解释器残留程序和通用模拟的形式分析。结合Rice 定理,它说明同一套有效编号既允许丰富的代码生成,又不提供语义判定捷径;“能构造程序”与“能决定程序做什么”必须严格区…”
形式陈述 ​
固定一种可有效解析的编码。通用图灵机
直觉
机器本身也能表示成数据。通用机把“硬件规则固定、程序作为输入”这一现代存储程序计算机观念形式化:一个固定解释器读取另一台机器的有限编码和输入,维护被模拟带、状态与头位置并逐步解释每条转移,就能执行任意可编码算法。程序与数据采用同一种有限字符串表示,也是自指、编译器和可计算性极限得以出现的根源。
例子与边界
给定
通用性不表示有限设备能实际保存无穷带,也不保证高效或常数开销:朴素模拟可能产生多项式甚至更大的时间开销。它同样不保证模拟机能预知被模拟程序何时停机。恰恰因为
推论与应用
通用机建立在 图灵机 可有效编码的事实上,使“程序分析另一个程序”得到形式化。程序编号与可接受编号把这种解释能力组织成有效枚举,$s$-$m$-$n$ 定理把部分实参固化进新程序代码,Kleene 递归定理再由自应用构造语义固定点。停机问题、对角化与自解释器由此有统一索引语言;复杂性理论若关心资源,还需另行指定高效通用模拟器。
参考资料
- Michael Sipser, Introduction to the Theory of Computation, 3rd ed., Cengage, 2013,Ch. 3, universal Turing machine and machine encodings。
- Alan M. Turing, “On Computable Numbers, with an Application to the Entscheidungsproblem,” Proceedings of the London Mathematical Society, 1936,Full paper, universal-machine construction and machine descriptions。