xiaofu OS

NJU 编译原理

收藏与进度仅保存在当前浏览器。

先修知识

离散数学

NJU 编译原理

课程简介

  • 所属大学:南京大学

  • 先修要求:离散数学

  • 编程语言:Java

  • 课程难度:🌟🌟🌟

  • 预计学时:80 小时

南京大学的编译原理课程,设计者选用了当下热门的 ANTLR (ANother Tool for Language Recognition) v4 编程语言解析生成工具辅助教学,能让使用者专心词法或者语法分析的设计,而让 ANTLR 4 来生成重复的模板代码。IDE 也有其插件,装上后,可以实现即时的可视化语法树,方便学生理解。

ANTLR 4 是 LL 解析器生成器,比起 LR 和 LALR 解析器生成器,它可处理语法的范围相对狭窄。但另一方面其生成的解析器有易于理解和使用的优势。此外,因为其支持“无限长的 token 超前扫描”,所以可处理语法范围狭窄的问题也得到了很好的改善。

老师通过适当的图解和生活例子,幽默风趣地讲述编译原理,让人听来不算乏闷。尤其是今年这版,采取先实际使用 ANTLR 4 完成一些小例子,再补足理论知识的方式。让人能带着问题去找到适配的理论,更让人印象深刻。通过理论知识的学习,逐渐揭开 C 语言的“神秘面纱”。

理论部分基本按照龙书节奏叙述。包括词法分析、语法分析、语义分析、运行时环境、寄存器分配、代码优化与生成等内容。

实践则是本课程的亮点,一步步的,由简单到复杂地实现一个属于自己的编译器。

教授本课的老师极为慷慨,校外学生同样能享受到 Online Judge 以及参与课程讨论,老师还极为细心地整理历年来的学习资料,在课程网站里十分容易找到。

课程公开了教学班 Zulip 讨论区(地址变化时可查看课程网站),可用于查阅问答与交流课程问题。

课程资源

↑ 返回上一级:完整指南目录