是否可以构建一个单一目的的(非图灵完整的)机械实现,例如Microsoft Word?是否可以实现诸如迭代器,一阶函数以及整个编程技术之类的东西?齿轮和其他机械零件能否代表数据结构甚至是程序对象?在某种程度上,这是否有必要建造一台通用的图灵等效机器,或者每个功能,变量等都可以以飞轮和/或齿轮,棘轮的形式拥有自己独特的机械结构,那么您呢?总之,我想知道标准计算机上的任何给定软件是否可以编译为机械蓝图。
我认为,运行Microsoft Word的某些程序甚至不需要在Turing Machine上运行,因为除了主事件循环外,应该知道Word中的所有过程都可以(证明)终止(除非有bug ofc)。
—
Realz Slaw 2012年
如果这是可能的(似乎是可能的),那么应该有可能创建一个非图灵完整的计算机,充当编译器,并从源代码为其他计算机创建蓝图。本身可能会或可能不会完成的机器。
—
尼克·约翰逊
@Realz Slaw:如果您包含I / O,VBA宏或扩展名,则不会,例如,我怀疑Word如果您向它提供无限的Word文档会抱怨。可能达到极限的底层操作系统。
—
reinierpost
@reinierpost,但是每个例程不需要完全完成;他们要么可以证明终止,要么可以证明不是。即,如果您向它提供了无限的文档,则证明它不会终止。我的观点是,大多数程序,我们让没有使用图灵完整的语言,因为我们可以把它限制在程序,我们可以证明终止,给定的非无限的数据,以及如果给予无限的数据不会终止; 如果您可以执行此操作,则停止问题就不会出现问题。TLDR;如果您无法证明例程是否终止,那么您就是一个糟糕的程序员。
—
Realz Slaw 2015年