首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析和汇编术语

解析和汇编术语
EN

Stack Overflow用户
提问于 2012-02-07 21:35:30
回答 2查看 187关注 0票数 1

如果我将C或C++源文件的编译过程分解为以下步骤:

  • A:预处理。
  • 标记(收集和列出关键字、标识符、符号、文字(字符串、字符、数字))。
  • C:将收集到的令牌组装成结构化的形式,如树。
  • D:通过分析这个结构化表单的语义来处理和验证它。
  • E:生成指令列表(如: ASM)。

我的命名问题是:

  1. 语法解析是否全部是#ABC?#BC?只是#C?
  2. 我应该用什么词来形容#ABC?#BC?#C?
  3. 莱克星是怎么回事?只是#B吗?
  4. #D是语义解析吗?
EN

回答 2

Stack Overflow用户

发布于 2012-02-07 21:39:13

虽然只有预处理阶段是语言标准的一部分,但大多数平台将整个构建过程划分为

  • 预处理,
  • 汇编,
  • 装配,
  • 连接。

编译是包含所有“艰苦工作”的阶段,从词法和解析开始。优化在道路上的某个地方出现。

一些使用某种形式的“链接时间优化”的现代系统可能会推迟或重复编译/组装阶段,直到所有组成对象文件被处理一次,但从道义上讲,这与仅仅将项目的所有输入文件连接到一个大文件并对其进行编译没有太大的不同。

票数 1
EN

Stack Overflow用户

发布于 2012-02-07 21:41:42

(A)简单的预处理:剪切和粘贴

(B)是词汇分析

(C)是句法分析解析

(D)所附链路中的语义分析编号为5

您的A,B,C,D基本上是编译器的前端,而E是它的后端的最后阶段。

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

https://stackoverflow.com/questions/9184329

复制
相关文章

相似问题

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