〖课程介绍〗:
手把手教你实现一个编译器
〖课程目录〗:4 u( y$ x2 Y9 u, ^3 |: k$ b
开篇词 (1讲)
开篇词 | 为什么你要学习编译原理?
实现一门脚本语言 · 原理篇 (13讲)0 ~" I# p( A S2 I
01 | 理解代码:编译器的前端技术3 Y. a" a9 z3 h& Y
02 | 正则文法和有限自动机:纯手工打造词法分析器7 G0 a# {2 r" x1 d# D# n
03 | 语法分析(一):纯手工打造公式计算器! k8 k' X& K7 A2 x0 ?7 H) c- X' s6 t
04 | 语法分析(二):解决二元表达式中的难点
05 | 语法分析(三):实现一门简单的脚本语言
06 | 编译器前端工具(一):用Antlr生成词法、语法分析器
07 | 编译器前端工具(二):用Antlr重构脚本语言% q9 t" \/ [+ l- e5 b
08 | 作用域和生存期:实现块作用域和函数! a4 c j) R4 k" w
09 | 面向对象:实现数据和方法的封装6 @9 y# i, B6 O( s I' B8 @
10 | 闭包: 理解了原理,它就不反直觉了
11 | 语义分析(上):如何建立一个完善的类型系统?: m4 m/ U7 q' ]6 U3 L: z0 L
12 | 语义分析(下):如何做上下文相关情况的处理?
13 | 继承和多态:面向对象运行期的动态特性
实现一门脚本语言 · 应用篇 (2讲)
14 | 前端技术应用(一):如何透明地支持数据库分库分表?
15 | 前端技术应用(二):如何设计一个报表工具?
实现一门脚本语言 · 算法篇 (3讲)& _2 p j* W- |5 l1 o! n$ |* U k3 G
16 | NFA和DFA:如何自己实现一个正则表达式工具?
17 | First和Follow集合:用LL算法推演一个实例
18 | 移进和规约:用LR算法推演一个实例
实现一门脚本语言 · 热点答疑 (1讲)
19 | 案例总结与热点问题答疑:对于左递归的语法,为什么我的推导不是左递归的?
|