# SUMMARY * [简介](./README.md) * [开篇词|让我们来写一门计算机语言吧](./docs/406053.md) * [课前热身|开始学习之前我们要准备什么?](./docs/406073.md) * [01|实现一门超简单的语言最快需要多久?](./docs/406179.md) * [02|词法分析:识别Token也可以很简单吗?](./docs/406555.md) * [03|支持表达式:解析表达式和解析语句有什么不同?](./docs/407295.md) * [04|如何让我们的语言支持变量和类型?](./docs/407731.md) * [05|函数实现:是时候让我们的语言支持函数和返回值了](./docs/408912.md) * [06|怎么支持条件语句和循环语句?](./docs/409811.md) * [07|怎么设计属于我们自己的虚拟机和字节码?](./docs/410442.md) * [08|基于TypeScript的虚拟机(一):实现一个简单的栈机](./docs/411227.md) * [09|基于TypeScript的虚拟机(二):丰富特性,支持跳转语句](./docs/412039.md) * [10|基于C语言的虚拟机(一):实现一个简单的栈机](./docs/412865.md) * [11|基于C语言的虚拟机(二):性能增长10倍的秘密](./docs/413632.md) * [12|物理机上程序运行的硬件环境是怎么样的?](./docs/414397.md) * [13|物理机上程序运行的软件环境是怎么样的?](./docs/415077.md) * [14|汇编代码学习(一):熟悉CPU架构和指令集](./docs/416043.md) * [15|汇编语言学习(二):熟悉X86汇编代码](./docs/416809.md) * [16|生成本地代码第1关:先把基础搭好](./docs/417353.md) * [17|生成本地代码第2关:变量存储、函数调用和栈帧维护](./docs/418317.md) * [18|生成本地代码第3关:实现完整的功能](./docs/418808.md) * [19|怎么实现一个更好的寄存器分配算法:原理篇](./docs/420155.md) * [20|怎么实现一个更好的寄存器分配算法:实现篇](./docs/420555.md) * [21|加深对栈的理解:实现尾递归和尾调用优化](./docs/421602.md) * [期中测试|快来检验你在起步篇的学习成果吧](./docs/423940.md) * [“他山之石”|Sugar:这门课你可以试试这么学](./docs/424229.md) * [“屠龙之秘”|实现计算机语言这样的技术能用在哪里?(一)](./docs/424365.md) * [22|增强编译器前端功能第1步:再识数据流分析技术](./docs/422442.md) * [23|增强编译器前端功能第2步:增强类型体系](./docs/423049.md) * [24|增强编译器前端功能第3步:全面的集合运算](./docs/424592.md) * [25|增强编译器前端功能第4步:综合运用多种语义分析技术](./docs/425353.md) * [26|增强更丰富的类型第1步:如何支持浮点数?](./docs/426150.md) * [27|增加更丰富的类型第2步:如何支持字符串?](./docs/426846.md) * [28|增加更丰富的类型第3步:支持数组](./docs/427480.md) * [29|面向对象编程第1步:先把基础搭好](./docs/428273.md) * [30|面向对象编程第2步:剖析一些技术细节](./docs/429135.md) * [31|面向对象编程第3步:支持继承和多态](./docs/429917.md) * [32|函数式编程第1关:实现高阶函数](./docs/431494.md) * [33|函数式编程第2关:实现闭包特性](./docs/432102.md) * [34|内存管理第1关:Arena技术和元数据](./docs/433981.md) * [35|内存管理第2关:实现垃圾回收](./docs/435868.md) * [36|节点之海:怎么生成基于图的IR?](./docs/436924.md) * [37 | 从AST到IR:体会数据流和控制流思维](./docs/439771.md) * [38|中端优化第1关:实现多种本地优化](./docs/440792.md) * [39|中端优化第2关:全局优化要怎么搞?](./docs/442804.md) * [40|中端优化第3关:一起来挑战过程间优化](./docs/444361.md) * [41|后端优化:生成LIR和指令选择](./docs/446048.md) * [42|到这里,我们的收获和未尽的工作有哪些?](./docs/446848.md) * [期末考试|实现编程语言这些核心知识点,你掌握得咋样了?](./docs/447708.md) * [结束语|等待你大展身手的那些领域](./docs/450960.md)