技术文档编译原理实战课编译原理实战课00 学习指南 如何学习这门编译原理实战课?00 开篇词 在真实世界的编译器中游历01 编译的全过程都悄悄做了哪些事情?02 词法分析:用两种方式构造有限自动机03 语法分析:两个基本功和两种算法思路04 语义分析:让程序符合语义规则05 运行时机制:程序如何运行,你有发言权06 中间代码:不是只有一副面孔07 代码优化:跟编译器做朋友,让你的代码飞起来08 代码生成:如何实现机器相关的优化?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编译器(二):编译技术如何帮你提升数据库性能?27 课前导读:学习现代语言设计的正确姿势28 前端总结:语言设计也有人机工程学29 中端总结:不遗余力地进行代码优化30 后端总结:充分发挥硬件的能力31 运行时(一):从0到语言级的虚拟化32 运行时(二):垃圾收集与语言的特性有关吗?33 并发中的编译技术(一):如何从语言层面支持线程?34 并发中的编译技术(二):如何从语言层面支持协程?35 并发中的编译技术(三):Erlang语言厉害在哪里?36 高级特性(一):揭秘元编程的实现机制37 高级特性(二):揭秘泛型编程的实现机制38 综合实现(一):如何实现面向对象编程?39 综合实现(二):如何实现函数式编程?40 成果检验:方舟编译器的优势在哪里?不定期加餐1 远程办公,需要你我具备什么样的素质?不定期加餐2 学习技术的过程,其实是训练心理素质的过程不定期加餐3 这几年,打动我的两本好书不定期加餐4 从身边的牛人身上,我学到的一些优秀品质不定期加餐5 借助实例,探究C++编译器的内部机制划重点 7种编译器的核心概念与算法期末答疑与总结 再次审视学习编译原理的作用热点问题答疑 如何吃透7种真实的编译器?用户故事 易昊:程序员不止有Bug和加班,还有诗和远方知识地图 一起来复习编译技术核心概念与算法结束语 实战是唯一标准!