什么图灵完整的宏语言可用于C / C ++

时间:2011-09-06 13:59:29

标签: c++ c compiler-construction macros

序言

Lispers声称作为奖励而不是更多“主流”语言的一个主要观点是,宏语言实际上是图灵完成的(我不记得这是否是 On Lisp 中的Paul Graham或者如果它是 Land of Lisp 1 中的Conrad Barski,至少对于局外人来说,这似乎是真的 - C / C ++中的预处理器指令似乎没有图灵完整(老实说,他们感觉更像是一种注释语法)。

现在......问题

  1. 这是一个准确的评估吗?只涉及C,这让我觉得Lispers过度热心的另一点
  2. 是否有值得注意的图灵完整宏语言(用于C / C ++)?
    • 是否有任何正在进行的工作或将来可能值得寻找的失败尝试?
    • 我听说Python现在可以作为编译C / C ++的主干(暗示Python可以用来编写宏),但我还没有看到这个的确认。这是真的吗?
  3. (我将不会提出诸如“什么是最好的......”之类的意见问题。)

    1。顺便说一下,两者都是非常好的书,只是说'

2 个答案:

答案 0 :(得分:4)

C宏实际上是图灵完成,如果多次处理。查看this related question,特别是在接受的答案中链接到的Turing machine implementation

但是,这是作弊。在那里使用的解决方案强烈暗示C宏真的不是图灵完成。

答案 1 :(得分:3)

C预处理器不是Turing-complete的评估与无意义一样准确。如果在预处理器(例如代码文本操作)术语中制定并且应该编码,那么对于C预处理器而言过于复杂的任何计算都很难理解。

C ++模板是预处理器魔术的既定继承者,比那些更容易理解。因此,Lispers再次完全正确,并且一如既往地忽略了这一点: - )。