首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在编译的哪个步骤中删除注释?

在编译的哪个步骤中删除注释?
EN

Stack Overflow用户
提问于 2015-12-05 23:50:25
回答 2查看 2.6K关注 0票数 5

编译程序有几个步骤

  • 线路重构
  • 词汇分析
  • 预处理。
  • 句法分析
  • 语义分析

删除评论是否在“行重建”的第一步?

EN

回答 2

Stack Overflow用户

发布于 2015-12-06 00:13:31

  • 预处理是一个独立的阶段,它在词法分析之前就有自己的扫描和分析。
  • 我是一个编译器作家,我从来没有听说过‘行重建’。编译器不处理行:它们处理令牌流。你的引文特别说这是几种奇怪语言的特例。
  • 您忽略了流分析、优化、注册分配和代码生成,等等。
  • 在词法分析中,注释被忽略,而不是删除,有时在概念上被描述为“筛选”和“扫描”,在这种情况下,您可以说注释被筛选掉了,就像空白一样。
票数 7
EN

Stack Overflow用户

发布于 2015-12-06 00:26:54

我要回答这个问题,记住一个C编译器。在大多数编译器中,通常都是这样的,但是我要给出的例子是C编译器。

注释在行重构阶段之后被删除,在词法分析阶段通常被忽略。可以用这种方式进行快速核查。考虑以下代码:

代码语言:javascript
复制
printf("Hello "); // *************\
printf("World");  // I like boxes!\
printf("!\n);     // ^^^^^^^^^^^^^\

当C编译器找到一个反斜杠,后面紧跟一个新行时,行重建阶段将使其变成一行。

您可以知道上面的代码会产生什么结果!

设计选择是因为它与我们预期的行为是一致的,一个反斜杠后面跟着一个新行必须始终连接起来。

然而,词汇分析阶段涉及到标记化。在标记代码以供进一步处理时,这个阶段可以方便地忽略注释。因此,当下一个阶段被调用时,评论已经丢失了!

希望这能澄清!)

资料来源!

在对评论进行分析之前,就进行了行重构。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34112322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档