图灵机中的宏究竟是如何工作的?
How exactly do macros in a Turing Machine work?
我这里有一张来自教科书的屏幕截图(Sudkamp,3e),我正在尝试了解图灵机如何使用宏。我很难掌握它,尤其是因为我以前从未了解过宏。如果有人可以在这里提供解释,我将不胜感激。
我唯一真正理解的是,CPY只是复制了输入,然后就变成了3个n。否则,我真的不知道如何得出这个结论。如果我太含糊,我可以尝试更具体,让我知道。
针对具体问题:是的,通过CPY你得到三倍的n。为了计算 f(n) = 3n,机器然后通过加法 A.
计算 n+n+n = 3n
关于一般的宏:它们并不真正按照图表建议的方式工作。你不能只把一台用于复制的机器放在另一台机器的计算中 "place" 。字母表、开始状态等的调整是必要的。问题是 TMs 程序变得非常大,许多状态转换等,而且不可读。所以我们假设原则上可以完成这些小的调整。现在我们不再详细指定复杂的机器,而是将此类宏用于已显示可由 TM 计算的任务(如复制和添加)。由此产生的描述更容易理解。有点像高级编程语言,您可以在其中使用复杂的构造和数据结构,而无需关心它们的汇编程序实现。
我这里有一张来自教科书的屏幕截图(Sudkamp,3e),我正在尝试了解图灵机如何使用宏。我很难掌握它,尤其是因为我以前从未了解过宏。如果有人可以在这里提供解释,我将不胜感激。
我唯一真正理解的是,CPY只是复制了输入,然后就变成了3个n。否则,我真的不知道如何得出这个结论。如果我太含糊,我可以尝试更具体,让我知道。
针对具体问题:是的,通过CPY你得到三倍的n。为了计算 f(n) = 3n,机器然后通过加法 A.
计算 n+n+n = 3n关于一般的宏:它们并不真正按照图表建议的方式工作。你不能只把一台用于复制的机器放在另一台机器的计算中 "place" 。字母表、开始状态等的调整是必要的。问题是 TMs 程序变得非常大,许多状态转换等,而且不可读。所以我们假设原则上可以完成这些小的调整。现在我们不再详细指定复杂的机器,而是将此类宏用于已显示可由 TM 计算的任务(如复制和添加)。由此产生的描述更容易理解。有点像高级编程语言,您可以在其中使用复杂的构造和数据结构,而无需关心它们的汇编程序实现。