《编译原理之美》

https://code4flutter.com/gitbook/219_%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86%E4%B9%8B%E7%BE%8E.html

开篇词 | 为什么你要学习编译原理?

01 | 理解代码:编译器的前端技术

02 | 正则文法和有限自动机:纯手工打造词法分析器

03 | 语法分析(一):纯手工打造公式计算器

04 | 语法分析(二):解决二元表达式中的难点

05 | 语法分析(三):实现一门简单的脚本语言

06 | 编译器前端工具(一):用Antlr生成词法、语法分析器

07 | 编译器前端工具(二):用Antlr重构脚本语言

08 | 作用域和生存期:实现块作用域和函数

09 | 面向对象:实现数据和方法的封装

10 | 闭包: 理解了原理,它就不反直觉了

11 | 语义分析(上):如何建立一个完善的类型系统?

12 | 语义分析(下):如何做上下文相关情况的处理?

13 | 继承和多态:面向对象运行期的动态特性

14 | 前端技术应用(一):如何透明地支持数据库分库分表?

15 | 前端技术应用(二):如何设计一个报表工具?

16 | NFA和DFA:如何自己实现一个正则表达式工具?

17 | First和Follow集合:用LL算法推演一个实例

18 | 移进和规约:用LR算法推演一个实例

19 | 案例总结与热点问题答疑:对于左递归的语法,为什么我的推导不是左递归的?

用户故事 | 因为热爱,所以坚持

期中考试 | 来赴一场100分的约定吧!

20 | 高效运行:编译器的后端技术

21 | 运行时机制:突破现象看本质,透过语法看运行时

22 | 生成汇编代码(一):汇编语言其实不难学

加餐 | 汇编代码编程与栈帧管理

23 | 生成汇编代码(二):把脚本编译成可执行文件

24 | 中间代码:兼容不同的语言和硬件

原文地址:https://www.cnblogs.com/cx2016/p/13124826.html