高级语言的源代码是如何转换成机器码的?
How is source code of a high-level language converted into machine code?
我在大学计算机课程中学习编译过程,我了解编译三个阶段的基本功能。 (语义、句法和词法分析)。然而,我并不完全理解他们的所作所为。 python 等高级语言如何转换为机器码?
非常简单和笼统地说:一个编译器它经常分解成许多组件,每个组件将其预期的输入转换为下一个组件的预期状态,直到产生目标结果。以下是通过这些转换的基本高级路径:
- 扫描器 - 读取并标记源文件
- 分析 - 语法是否更正?
- 解析器 - 从令牌形式生成 AST
- 分析 - 结构在语义上是否正确?
- 发射器 - 从 AST 生成机器代码
Note: The steps can vary, modularization may vary, where symbol trees
are built may vary, the kinds of AST may vary, etc. so study these
areas independently.
我在大学计算机课程中学习编译过程,我了解编译三个阶段的基本功能。 (语义、句法和词法分析)。然而,我并不完全理解他们的所作所为。 python 等高级语言如何转换为机器码?
非常简单和笼统地说:一个编译器它经常分解成许多组件,每个组件将其预期的输入转换为下一个组件的预期状态,直到产生目标结果。以下是通过这些转换的基本高级路径:
- 扫描器 - 读取并标记源文件
- 分析 - 语法是否更正?
- 解析器 - 从令牌形式生成 AST
- 分析 - 结构在语义上是否正确?
- 发射器 - 从 AST 生成机器代码
Note: The steps can vary, modularization may vary, where symbol trees are built may vary, the kinds of AST may vary, etc. so study these areas independently.