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




