编译器是一个神奇的软件,它能将用文本表示的源码翻译到机器码(或者其他相对底层的表示)。如果说每个编程语言都构成了一个世界,那么编译器就是这个世界的创造者和万物运行法则的制定者。开发编译器的时候,你就像是站在“上帝”视角,洞悉万物之规律。因此,写一个编译器能给你带来和写普通应用软件截然不同的体验和乐趣。本次 Tunight 将介绍现代编译器开发的主流方法、设计思想与工程挑战。以计算机系《编译原理》课程的保留项目 Decaf 为案例,讲述最新版 Decaf 编译器(Java & Scala 版)的改进与设计,并穿插一些开发过程中的 trade-off 故事和两个版本优缺点的比较。
欢迎一起来玩!
此活动受清华大学学生社团发展支持计划的支持。