折叠 来自编辑本段 课程性质
折叠 课程背景
世界计算机科学家Alfred V.Aho在《编译器》的第1章第1句话写道:"编写编译器的原理精离井和技术具有普遍的意义,以至于在每个计算机科学家的研究生涯中,该书中的原理和技术都会反复用到。"这句话点明了编译原理该门课程360百科在计算机专业中的重要地位。有过使用高级程序设计语言编写程序经历的学习者知道,当给计算机输入一段程序以后,计算机就可以按照人们意图去婷析夫器坐组又干步工作。由0和1构成的机器代码才是可以被计算机直接理解的语言。因此,用高级语言编写的程序,最终都要"翻译"成由0和1构成的机器代码才可以在计算机上执行,这一翻译过程,就称为编译。
折叠 适应对象
编译原理主要面向计算机相关专业大学生、以及相关技术的从业人员等。
折叠 编辑本段 开课信息
开课次数 | 开课时间 | 授降冷菜课教师 | 参与人数 |
---|---|---|---|
第1次开课 | 20据制图矛17年09月04日~2017年12月31日 | 陈鄞、郭勇 | 10399 |
第2次开课 | 2018年03月05日~2018年07月31日 | 16424 | |
第3次开课 | 2018年09月03日~2018年12月31日 | 陈鄞、郭勇、涂志莹、促危居甲衡席村普黄诚 | 11272 |
第4次开课 | 20他提光19年02月18日既真属连毫职毫跑~2019年07月31日 | 陈鄞、郭勇、涂志莹 | 17757 |
第5次开课 | 2019年09月02日~2019年12月31日 | 14153 | |
第6次开课 | 2020年02月24日~2020年07月31日 | 14168 | |
第7次开课 | 师德种2020年08月3太映就于基1日~2021年01月31日 | 待定 | |
根据中国大学MOOC官网显示该课程第1次至第7次开课的课时安排均为3~5小时每周。 |
折叠 积根编辑本段 课程简介
编译括模尔李板原理共20讲,其主要讲授编译器设计与实现的明另片裂皇务主要理论和技术。其中,第毫超春如蒸防1讲介绍编译原理的概念知识;第2、3讲介绍程序设计语言及其文法和词法分析内容;第4至第14讲分别介绍语法分析(1~4部分)、语法制导翻译(1~3部分树病)、中间代码生成(1~4部分);第15讲介绍计算机运行存储分配的知识;第16蛋节顶哪点图耐至20讲介绍代码优化(1纸王级余财战留斯~4部分)进阶内容和代码生成的实现。
折叠 编辑本段 课程大纲
第1讲 绪论 | 4-14LALR分析法 | 老息界立卷6-9控制流语句的回填 |
1伟列练误培得今-1什么是编译 | 4-15二义性文法的LR分析 | 6-10switch语句的翻译 |
1-2编译系统的结构 | 本讲课程讲义(PP无T文档) | 6-11过程调用语句的翻译 |
1-3词法分析概述 | 4-16LR分析中的错误处理 | 本讲模拟练习题(不计分) |
1-4语法分析概述 | 本讲模拟练习题(不计分) | 本讲课程讲义(PDF方笑科刻文档) |
1-5语义分析概述 | 本讲课程讲义(P钢艺州都镇坏队振做的够DF文档) | 第14讲测验(计分) |
1-6中间代码生屋映究轮形操福须成及编译器后端概述 | 【讨论7-1】为什么合并同心项集不会产生移进-归约冲突? | 本讲课程讲义(PPT文档) |
本讲模拟练习题(不计分) | 【讨论7-2】为什么LALR分析法不会作错误的移进操作? | 第15讲 运行存储分配 |
本讲课程讲义(PDF文档) | 第7讲测验(计分) | 7-1运行存储分配概述 |
【讨论1-1】编译过程与人工翻译记各得赶肥适建免到过程之间的关系 | 第8讲 语法制导翻译1 | 7-2静态存储分配 |
【讨论1-2】符号表中NAME字段的设计 | 5-1语法制导翻译概述 | 7-3栈式存储分配 |
第1讲测验(计分) | 5-2语法制导定义SDD | 7-4调用序列和返回序列 |
本讲常虽并温诉星种拉课程讲义(PPT文档) | 5-3SDD的求值顺序 | 7-5非局部数据的访问 |
第2讲 程序设计语言及其岩书针更文法 | 5-4S-属性定义与L-属性定义 | 7-6符号表 |
2绿织粮源三-1基本概念 | 本讲模拟练习题(不条当计分) | 7-7符号表的建立 |
2-2文法的定义 | 本讲课程讲义(PDF文档) | 本讲模拟练习题(不计财本频分) |
2-3语言的定义 | 【讨论8-1】如何表示语义信息? | 本讲课程讲义(PDF文档) |
2-4文法的分类 | 【讨论8-2】如何计算语义属性? | 【讨论1字个紧啊学师留耐团超5-1】如何基于符号表构造访问链? |
2-5CFG的分析树 | 【讨论8-3】如何判定时力创一个属性是综合属性还是继承属性? | 【讨论15-2】冲如何基于符号表访问非局部数据? |
本讲模拟练习题(不计分) | 【讨论8-4在伤】什么样的SDD可以保证存在饭考身显百你主又对其属性进行计算的顺序? | 第15讲测验(计分) |
本讲课程讲义(PDF文档) | 本讲课程讲义在完取室河入容(PPT文档) | 本讲课程讲义(PPT文档) |
【讨论2-1】计算机中是如何表示语言的? | 【讨论8-5垂宗】为什么S-SDD与L-SDD能够保证存在属性计算顺序? | 第16讲 代码优化1 |
【讨论2-2】每一类单词可否看成一种语言? | 第8讲测据重老洋控见银超攻亲验(计分) | 本讲课程讲义(PPT文档) |
第2讲测验(计分) | 第9讲 语法制导翻译2 | 8-1流图 |
本讲课程讲义(PPT文档) | 本讲课程讲义(PP敌明T文档) | 8-2常用的代码优化方法(一) |
第3讲 词法分析 | 5-5语法制导翻译方案货调SDT | 8-3常用的代码深走略简优化方法(二) |
3-1正则表达式 | 5-6在非递归密映染的预测分析过程中是增知参状答征进行翻译 | 8-4基本块的优化 |
3-2正则定义 | 本讲模拟练习题(不计分) | 本讲模拟练习题(不计分) |
3-3有穷自动机 | 本讲课程讲义(PDF文档) | 本讲课程讲义(PDF文档) |
3烧货联孙-4有穷自动机的分类 | 【讨论9-1】为什么S-SDD的SDT可以在语法分析的过程中同时实现? | 第16讲测验(计防烈分) |
3-5从正则表达式到有穷自值养自程太节动机 | 【讨论9-2】非递归预余由抓终速王河即测分析器的扩展 | 第17讲 代码优化2 |
3-异才牛城都给步加值6从NFA到DFA的转换 | 第9讲测验(计分) | 本讲课程讲义(PPT文档) |
3-7识别单词的DFA | 第10讲 语法制导翻译3 | 8-5数据流分析 |
本讲模拟练习题(不计分) | 本讲课程讲义(PPT文档) | 8-6到达定值分析 |
本讲课程讲义(PDF文档) | 5-7在递归的预测分析过程中进行翻译 | 8-7到达定值方程的计算 |
第3讲测验(计分) | 5-8L-属性定义的自底向上翻译 | 本讲模拟练习题(不计分) |
本讲课程讲义(PPT文档) | 本讲模拟练习题(不计分) | 本讲课程讲义(PDF文档) |
第4讲 语法分析1 | 本讲课程讲义(PDF文档) | 第17讲测验(计分) |
4-1自顶向下分析概述 | 【讨论10-1】递归预测分析器的扩展 | 第18讲 代码优化3 |
4-2文法转换 | 【讨论10-2】文法及翻译方案的修改 | 本讲课程讲义(PPT文档) |
4-3LL(1)文法 | 第10讲测验(计分) | 8-8活跃变量分析 |
本讲模拟练习题(不计分) | 第11讲 中间代码生成1 | 8-9可用表达式分析 |
本讲课程讲义(PDF文档) | 6-1类型表达式 | 本讲模拟练习题(不计分) |
4-4FIRST集和FOLLOW集的计算 | 6-2声明语句的翻译 | 本讲课程讲义(PDF文档) |
本讲课程讲义(PPT文档) | 本讲模拟练习题(不计分) | 第18讲测验(计分) |
第4讲测验(计分) | 本讲课程讲义(PDF文档) | 第19讲 代码优化4 |
第5讲 语法分析2 | 【讨论11-1】如何计算数组的类型表达式及数组宽度? | 本讲课程讲义(PPT文档) |
4-5递归的预测分析法 | 第11讲测验(计分) | 8-10支配结点和回边 |
4-6非递归的预测分析法 | 本讲课程讲义(PPT文档) | 8-11自然循环及其识别 |
4-7预测分析中的错误处理 | 第12讲 中间代码生成2 | 8-12删除全局公共子表达式和复制语句 |
本讲模拟练习题(不计分) | 6-3简单赋值语句的翻译 | 8-13代码移动 |
本讲课程讲义(PDF文档) | 6-4数组引用的翻译 | 8-14作用于归纳变的强度削弱 |
第5讲测验(计分) | 本讲模拟练习题(不计分) | 8-15归纳变量的删除 |
本讲课程讲义(PPT文档) | 本讲课程讲义(PDF文档) | 本讲模拟练习题(不计分) |
第6讲 语法分析3 | 【讨论12-1】数组元素寻址的翻译 | 本讲课程讲义(PDF文档) |
本讲课程讲义(PPT文档) | 第12讲测验(计分) | 第19讲测验(计分) |
4-8自底向上分析概述 | 本讲课程讲义(PPT文档) | 第20讲 代码生成 |
4-9LR分析法概述 | 第13讲 中间代码生成3 | 本讲课程讲义(PPT文档) |
4-10LR(0)分析 | 本讲课程讲义(PPT文档) | 9-1代码生成器的主要任务 |
4-11LR(0)分析表构造算法 | 6-5控制流语句及其SDT | 9-2一个简单的目标机模型 |
本讲模拟练习题(不计分) | 6-6布尔表达式及其SDT | 9-3指令选择 |
本讲课程讲义(PDF文档) | 6-7控制流翻译的例子 | 9-4寄存器的选择 |
【讨论6-1】下推自动机与有穷自动机之间的关系 | 本讲模拟练习题(不计分) | 9-5寄存器选择函数getReg的设计 |
【讨论6-2】LR语法分析栈中状态信息与文法符号信息之间的关系 | 本讲课程讲义(PDF文档) | 9-6窥孔优化 |
第6讲测验(计分) | 第13讲测验(计分) | 本讲模拟练习题(不计分) |
第7讲 语法分析4 | 第14讲 中间代码生成4 | 本讲课程讲义(PDF文档) |
4-12SLR分析 | 6-8布尔表达式的回填 | 第20讲测验(计分) |
4-13LR(1)分析 | (注:课程大纲排版从左到右列 ) |
折叠 编辑本段 课前预备
折叠 编辑本段 所获荣誉
2018年,编译原理被中华人民共和国教育部认定为"国家精品在线开放课程"。