Troff既支持使用.de的宏定义,也支持使用.if的分支(参见木马用户手册的第5和第6页)。在这两个方面,它非常类似于TeX。但是,我不知道用Troff编写的非常复杂的程序(不像TikZ for TeX)。特罗夫图灵完成了吗?
发布于 2018-11-20 04:29:57
ESR的Unix编程艺术声称它是:
我们将在第18章中更详细地研究troff;就目前而言,只需指出这是一个很好的示例,说明了一种命令式的小型语言,它几乎是一个成熟的解释器(它有条件和递归,但没有循环;它是偶然的图灵-完全)。
(“意外”与m4相对,后者被称为“故意图灵-完整”)。
发布于 2018-11-20 04:35:13
是的,托夫是图灵-完全的。它支持任意递归和条件分支,这是足够的。它还具有寄存器和各种其他存储数据的方法,这再次为您提供了另一条路径。
图灵完整性并不意味着高度复杂的程序是实用的--只是在某种程度上,它们在理论上是可能的--它的缺失也并不意味着它们不是完全的,所以无论是完全程序还是没有复杂程序,都不能从某种程度上说明这一点。
一般来说,图灵完整性并不是一个对用户有用的属性。这意味着你可以用它来模拟图灵机器,不是你想要的,也不是你从它得到的输出和你期望看到的一样。输入或输出可能只是一个数字,甚至是某物出现的次数,而不是一些有用的东西,而你最后模拟的机器种类和它们的程序通常一开始就很难理解。
许多语言和系统是偶然的图灵-完整,但不合理地适用于该子集中的任何实际编程(例如,康威的生命游戏或CSS),和一些对实际编程有用的语言不是图灵完整的(例如,Agda)。定义的特征实际上是你可以
通常,这些属性--尤其是非终止性--实际上是不可取的,可能也包括对掠夺者而言。除了理论上的计算机科学和语言设计之外,图灵完整性几乎在当时并不是一个非常有趣的属性,尽管它很吸引人。
https://unix.stackexchange.com/questions/482881
复制相似问题