《编译原理》是高等工科院校“计算机科学与技术”、“软件工程”、“信息安全”等专业的一门重要的必修专业基础课。本课程的教学目标是:通过学习该课程,使学生了解形式语言基本概念和术语、掌握词法分析、语法分析和语法制导翻译技术的基本原理和实现方法。通过学习编译程序的构造原理和技术,将有助于深刻理解和正确使用程序设计语言。除此以外,《编译原理》课程介绍的一些原理、方法和算法并不局限于编译器的构造,也广泛地应用于其他软件的设计与开发。
《编译原理》课程主要包含如下的教学内容:编译系统各组成部分的主要功能;编译系统的工作流程;编译器各功能模块的设计原理和实现技术;构造编译器的各种工具的使用方法。在本课程中,词法分析、语法分析、中间代码生成是核心内容,课程以形式化和半形式化的技术来统领这些内容;并以文法与自动机理论为基础,以语法制导翻译技术为模式进行处理;将编译技术出现的新方法、新工具及时引入教学环节中。
本课程具有思想素质、知识技能以及能力培养三个层面的通用课程目标:
(一)思想、素质教育目标
目标1.1 在教学过程中,激发学生自豪感与爱国情怀,鼓励学生通过努力学习掌握先进科学技术,服务国家,回馈社会。
目标1.2 在教学过程中,通过课程内容与中国传统文化思想相结合,提升学生的学习兴趣、人文关怀和道德情操,真正做到“传道、授业和解惑”。
(二)知识教学目标
目标2.1 使学生理解编译系统的工作流程和编译器各功能模块的设计原理,能够利用基本原理和方法识别和分析计算机软件开发领域复杂工程问题。
目标2.2 使学生掌握词法分析器、语法分析器开发方法,能够编写词法分析程序和语法分析程序。
(三)能力教学目标
目标3.1使学生理解编译系统的工作流程和编译器各功能模块的设计原理,培养学生抽象思维和逻辑思维能力,能够利用基本原理和方法识别和分析计算机软件开发领域复杂工程问题的特征。
目标3.2 使学生掌握设计、编制、分析和维护编译程序的方法和技术,能够应用这些基本方法和技术分析和解决软件开发中的实际问题,使学生具有系统能力,能站在系统的全局去看问题、分析问题和解决问题。
目标3.3使学生掌握词法分析器、语法分析器开发方法,学习构造编译器的各种工具的使用方法,培养学生软件开发能力,具备开发系统软件的能力。
与本课程关系最为密切的是《高级语言程序设计》,高级语言程序设计侧重于程序设计和软件开发,本课程重点是阐述高级语言程序开发工具中的编译系统的工作原理。在课程的算法讲授中会运用到《离散数学》和《数据结构A》等课程相关知识点。
本学期的线上成绩由四部分组成,单元测验+单元作业+线上期末考试+线上讨论,其比例分别是40%、20%、30%和10%
教材:黄海平,蒋凌云,沙超,徐康. 北京:人民邮电出版社,2022
参考资料:
[1] Terence Parr.编程语言实现模式.武汉:华中科技大学出版社,2013.
[2] Alfred V. Aho.编译原理.北京:机械工业出版社,2009
[3] 蒋宗礼, 姜守旭. 编译原理. 北京: 高等教育出版社, 2017