# SUMMARY * [简介](./README.md) * [开篇词 | 在真实世界的编译器中游历](./docs/242308.md) * [学习指南 | 如何学习这门编译原理实战课?](./docs/242577.md) * [01 | 编译的全过程都悄悄做了哪些事情?](./docs/242479.md) * [02 | 词法分析:用两种方式构造有限自动机](./docs/243685.md) * [03 | 语法分析:两个基本功和两种算法思路](./docs/244906.md) * [04 | 语义分析:让程序符合语义规则](./docs/245754.md) * [05 | 运行时机制:程序如何运行,你有发言权](./docs/246281.md) * [06 | 中间代码:不是只有一副面孔](./docs/247700.md) * [07 | 代码优化:跟编译器做朋友,让你的代码飞起来](./docs/248770.md) * [08 | 代码生成:如何实现机器相关的优化?](./docs/249261.md) * [知识地图 | 一起来复习编译技术核心概念与算法](./docs/250604.md) * [09 | Java编译器(一):手写的编译器有什么优势?](./docs/251937.md) * [10 | Java编译器(二):语法分析之后,还要做些什么?](./docs/252828.md) * [11 | Java编译器(三):属性分析和数据流分析](./docs/253750.md) * [12 | Java编译器(四):去除语法糖和生成字节码](./docs/255034.md) * [13 | Java JIT编译器(一):动手修改Graal编译器](./docs/255730.md) * [14 | Java JIT编译器(二):Sea of Nodes为何如此强大?](./docs/256914.md) * [15 | Java JIT编译器(三):探究内联和逃逸分析的算法原理](./docs/257504.md) * [16 | Java JIT编译器(四):Graal的后端是如何工作的?](./docs/258162.md) * [17 | Python编译器(一):如何用工具生成编译器?](./docs/259465.md) * [18 | Python编译器(二):从AST到字节码](./docs/260354.md) * [19 | Python编译器(三):运行时机制](./docs/261063.md) * [20 | JavaScript编译器(一):V8的解析和编译过程](./docs/262041.md) * [21 | JavaScript编译器(二):V8的解释器和优化编译器](./docs/263523.md) * [22 | Julia编译器(一):如何让动态语言性能很高?](./docs/264333.md) * [23 | Julia编译器(二):如何利用LLVM的优化和后端功能?](./docs/264643.md) * [24 | Go语言编译器:把它当作教科书吧](./docs/266379.md) * [25 | MySQL编译器(一):解析一条SQL语句的执行过程](./docs/266790.md) * [26 | MySQL编译器(二):编译技术如何帮你提升数据库性能?](./docs/267917.md) * [热点问题答疑 | 如何吃透7种真实的编译器?](./docs/268852.md) * [划重点 | 7种编译器的核心概念与算法](./docs/270368.md) * [期中考试 | 这些编译原理知识,你都掌握了吗?](./docs/270456.md) * [用户故事 | 易昊:程序员不止有Bug和加班,还有诗和远方](./docs/270504.md) * [27 | 课前导读:学习现代语言设计的正确姿势](./docs/273094.md) * [28 | 前端总结:语言设计也有人机工程学](./docs/273418.md) * [29 | 中端总结:不遗余力地进行代码优化](./docs/273433.md) * [30 | 后端总结:充分发挥硬件的能力](./docs/274909.md) * [31 | 运行时(一):从0到语言级的虚拟化](./docs/275601.md) * [32 | 运行时(二):垃圾收集与语言的特性有关吗?](./docs/277707.md) * [33 | 并发中的编译技术(一):如何从语言层面支持线程?](./docs/279019.md) * [34 | 并发中的编译技术(二):如何从语言层面支持协程?](./docs/280269.md) * [35 | 并发中的编译技术(三):Erlang语言厉害在哪里?](./docs/280663.md) * [36 | 高级特性(一):揭秘元编程的实现机制](./docs/282919.md) * [37 | 高级特性(二):揭秘泛型编程的实现机制](./docs/283229.md) * [38 | 综合实现(一):如何实现面向对象编程?](./docs/284443.md) * [39 | 综合实现(二):如何实现函数式编程?](./docs/285636.md) * [40 | 成果检验:方舟编译器的优势在哪里?](./docs/286097.md) * [期末答疑与总结 | 再次审视学习编译原理的作用](./docs/286931.md) * [结束语 | 实战是唯一标准!](./docs/289262.md) * [期末考试 | “编译原理实战课”100分试卷等你来挑战!](./docs/289675.md) * [不定期加餐1 | 远程办公,需要你我具备什么样的素质?](./docs/251164.md) * [不定期加餐2 | 学习技术的过程,其实是训练心理素质的过程](./docs/269322.md) * [不定期加餐3 | 这几年,打动我的两本好书](./docs/281269.md) * [不定期加餐4 | 从身边的牛人身上,我学到的一些优秀品质](./docs/288798.md) * [不定期加餐5 | 借助实例,探究C++编译器的内部机制](./docs/309549.md)