← 前一天目录后一天 →

每日科普 · 2026-09-28 周一

考研 408 × 求职面试

知识点 · 编译原理 · 基础

编译过程的六个阶段及其核心任务

编译程序把高级语言源程序翻译成目标代码,通常分为六个阶段: 1. 词法分析:从左到右扫描字符流,将其组成单词(token),如关键字、标识符、常数、运算符,并过滤空白和注释。 2. 语法分析:按语法规则把 token 组织成语法树,判断程序结构是否合法。 3. 语义分析:检查类型、作用域、声明等静态语义,填写符号表,发现类型不匹配、未声明变量等错误。 4. 中间代码生成:生成与具体机器无关的中间表示,如三地址码、四元式,便于后续优化和移植。 5. 代码优化:对中间代码或目标代码做等价变换,减少时间或空间开销,如常量折叠、公共子表达式删除、循环优化。 6. 目标代码生成:把中间代码映射到具体机器的指令、寄存器和存储,生成汇编或机器码。 注意:符号表管理和错误处理贯穿各阶段;阶段划分是逻辑上的,实际编译器可能合并或重复若干遍。

每日一题 · 编译原理

编译过程的六个阶段及其核心任务

在编译过程中,负责检查变量是否已声明、类型是否匹配,并填写符号表信息的阶段是( )。A. 词法分析 B. 语法分析 C. 语义分析 D. 目标代码生成

解析

选 C。词法分析只识别 token;语法分析只判断 token 串是否符合文法结构;目标代码生成负责最终机器指令。变量声明、类型匹配、作用域等属于静态语义检查,通常由语义分析阶段完成,并用符号表记录标识符属性。

面试小贴士 · 编译原理

编译过程的六个阶段及其核心任务

面试常问六阶段顺序、各阶段输入输出和符号表作用。答题按“词法→语法→语义→中间代码→优化→目标代码”串联,并强调符号表与错误处理贯穿全程。易错:把语义分析说成生成代码,或遗漏中间代码与优化阶段。
← 前一天目录后一天 →