1.应用背景
编译技术,与我们的工作[很多编程语言的工作原理]息息相关, 同时, 除了丰富的应用场景,学习编译技术对于提升程序员的竞争力也很重要. |
2.学习/实践
文档阅读
课程目录 -- 共 45 讲开篇词 (1讲)开篇词 | 为什么你要学习编译原理? 实现一门脚本语言 · 原理篇 (13讲)01 | 理解代码:编译器的前端技术 02 | 正则文法和有限自动机:纯手工打造词法分析器 03 | 语法分析(一):纯手工打造公式计算器 04 | 语法分析(二):解决二元表达式中的难点 05 | 语法分析(三):实现一门简单的脚本语言 06 | 编译器前端工具(一):用Antlr生成词法、语法分析器 07 | 编译器前端工具(二):用Antlr重构脚本语言 08 | 作用域和生存期:实现块作用域和函数 09 | 面向对象:实现数据和方法的封装 10 | 闭包: 理解了原理,它就不反直觉了 11 | 语义分析(上):如何建立一个完善的类型系统? 12 | 语义分析(下):如何做上下文相关情况的处理? 13 | 继承和多态:面向对象运行期的动态特性 实现一门脚本语言 · 应用篇 (2讲)14 | 前端技术应用(一):如何透明地支持数据库分库分表? 15 | 前端技术应用(二):如何设计一个报表工具? 实现一门脚本语言 · 算法篇 (3讲)16 | NFA和DFA:如何自己实现一个正则表达式工具? 17 | First和Follow集合:用LL算法推演一个实例 18 | 移进和规约:用LR算法推演一个实例 实现一门脚本语言 · 热点答疑与用户故事 (2讲)19 | 案例总结与热点问题答疑:对于左递归的语法,为什么我的推导不是左递归的? 用户故事 | 因为热爱,所以坚持 编译原理 · 期中考试周 (1讲)期中考试 | 来赴一场100分的约定吧! 实现一门编译型语言 · 原理篇 (8讲)20 | 高效运行:编译器的后端技术 21 | 运行时机制:突破现象看本质,透过语法看运行时 22 | 生成汇编代码(一):汇编语言其实不难学 加餐 | 汇编代码编程与栈帧管理 23 | 生成汇编代码(二):把脚本编译成可执行文件 24 | 中间代码:兼容不同的语言和硬件 25 | 后端技术的重用:LLVM不仅仅让你高效 26 | 生成IR:实现静态编译的语言 知识结构体系思维导图 ... |
3.问题/补充
1. 推荐书籍编译原理的话先看一下, 日本写的书,<<自制脚本语言>>, <<自制编译语言>>这两本, 写的很不错的. |
4.参考
极客时间专栏:编译原理 --宫文学 以及不记名网友的评论见解 |
后续补充
...