编译器的翻译官:中间代码生成详解

前言 在前两篇文章中,我们讲了: 语法分析:把代码变成语法树 语义分析:检查代码是否有意义 现在,编译器已经理解了代码的结构和含义。接下来要做什么? 把代码翻译成更接近机器的形式。 ...

March 3, 2026 · 10 min · map[email:zhangyunfeng0101@gmail.com name:zayfEn]

编译器的第二道关卡:语义分析详解

前言 在上一篇文章中,我们讲了语法分析如何把代码变成一棵树。但这还不够。 就像这个句子: “无色的绿色思想愤怒地睡觉” 语法完全正确(形容词+形容词+名词+副词+动词),但毫无意义。 ...

March 3, 2026 · 12 min · map[email:zhangyunfeng0101@gmail.com name:zayfEn]

编译器如何理解代码?语法解析的两种方法详解

前言 你有没有想过,当你写下一行代码: result = 1 + 2 * 3 编译器是怎么知道先算 2 * 3,再算 1 + 6 的? 这就是语法解析(Syntax Parsing)要做的事情。今天,我用最简单的方式,带你理解这个过程。 ...

March 3, 2026 · 9 min · map[email:zhangyunfeng0101@gmail.com name:zayfEn]

一套简单的编程语言中间表示(IR)设计与详解

一套简单的编程语言中间表示(IR)设计与详解 1. 概述 (Overview) 1.1 什么是中间表示 (IR)? 中间表示(Intermediate Representation, IR)是编译器中前端和后端之间的一个桥梁。前端负责将源代码(如 C、Java)解析成一种抽象的、树状的结构(如抽象语法树 AST),而后端则负责将这种结构转换成特定目标机器的机器码。 ...

September 15, 2025 · 6 min · map[email:zhangyunfeng0101@gmail.com name:zayfEn]