【发布时间】:2012-02-08 15:36:20
【问题描述】:
标准是否规定了 C++ 程序的编译阶段?
如果有,它们是什么?
如果不是,一个广泛使用的编译器的答案(我更喜欢 MSVS)会很棒。
我说的是预处理、标记化、解析等。它们的执行顺序是什么?它们具体做了什么?
编辑:我知道编译、链接和预处理做什么,我最感兴趣的是其他和顺序。当然,也欢迎对这些问题进行解释,因为我可能不是唯一对答案感兴趣的人。
【问题讨论】:
-
这里是the GCC internals manual's page。我认为它使用了您想要的语言,但显然不是。如果您查看 GCC 源代码,则会有大量单独的优化过程。我猜不,该标准指定了它需要实现的目标而不是它必须如何实现,并且您最好的选择是学术编译器构建课程或教科书 - 我相信周围有很多。
-
@sharptooth 我回滚了这个问题 - 我相信这个标题更容易被寻求相同事物的人找到。
-
@Luchian Grigore:好吧,我只是标题更改真的很重要——“它通常是如何完成的”v“标准对它应该如何完成的规定”。无论如何,这是你的问题,你决定。
-
标准中明确提及的内容之外的任何内容似乎都是无关紧要的实现细节。这纯粹是出于好奇,还是您想解决问题?
-
否认、愤怒、讨价还价、抑郁、接受。
标签: c++ compiler-construction compilation c++-faq