同学们可能都有过使用高级程序设计语言编写程序的经历。当我们给计算机输入一段程序以后,计算机就可以按照我们的意图去工作。我们都知道,由0和1构成的机器代码才是可以被计算机直接理解的语言。因此,用高级语言编写的程序,最终都要“翻译”成由0和1构成的机器代码才可以在计算机上执行,这一翻译过程,就称为编译。那么,计算机是如何将高级程序设计语言编写的程序自动翻译成机器代码的呢?通过这么课程的学习,我们就可以找到答案。
世界著名的计算机科学家Alfred V.Aho在他的经典著作《编译器》的第1章第1句话写道:“编写编译器的原理和技术具有十分普遍的意义,以至于在每个计算机科学家的研究生涯中,本课程中的原理和技术都会反复用到。”这句话点明了编译原理这门课程在计算机专业中的重要地位。
本课程共计20讲。
第1讲 绪论
第2讲 程序设计语言及其文法
第3讲 词法分析
第4讲 语法分析_1
第5讲 语法分析_2
第6讲 语法分析_3
第7讲 语法分析_4
第8讲 语法制导翻译_1
第9讲 语法制导翻译_2
第10讲 语法制导翻译_3
第11讲 中间代码生成_1
第12讲 中间代码生成_2
第13讲 中间代码生成_3
第14讲 中间代码生成_4
第15讲 运行存储分配
第16讲 代码优化_1
第17讲 代码优化_2
第18讲 代码优化_3
第19讲 代码优化_4
第20讲 代码生成
通过本课程的学习,我们可以更深刻地理解高级语言程序的内部运行机制。事实上,每一种语言的语法都不是随便定义的,其背后有着深刻的道理。编译原理就是这样一门课程,它教给我们隐藏在编程技术后面的基本原理。掌握了这些基本原理,无论语言如何更新换代,我们都能应对自如,不被技术的发展所淘汰。
这门课教给我们的不只是编译器构造的基本原理和流程,同时,还教给我们如何严谨地去思考、编写程序。通过本课程的学习,我们对编程也会有更深入的了解。对于代码应该怎么写,为什么要那么写,怎么写更好,错误是如何出现的,如果出错的后果是什么等等都能有理论到实践的全面认识。
本课程非常有助于培养我们的计算思维能力。编译原理涉及了计算机科学求解问题的基本思路和方法,即问题的“形式化描述→自动化处理”。本课程涉及的理论和方法在自然语言处理、模式识别、人工智能等领域都会或多或少地被用到。
设置“合格”(达到60分)、"优秀"(达到85分)两档课程标准