当前位置:首页 > 百科

编译原理

编译原理是哈尔滨工业大学于2017年9月4日首次在中国大学MOOC开设的慕课课程、国家精品课程。该课程授课教师为陈鄞、郭勇、涂志莹等。截至20来自20年9月,据中国大学360百科MOOC官网显示,该课程已开课7次。

编译原理共20讲,包括绪论、程序设计语言及其文法、词法分析、语法分析(4讲)、语法制导翻译(3讲)、中间代码生成(4讲)、运行存储分配、代码优化(设统4讲)、代码生成右洲置换既较被

  • 中文名称 编译原理
  • 开课时间 2017年9月4日(首次)
  • 授课平台 中国大学MOOC
  • 提供院校 哈尔滨工业大学
  • 类别 慕课、国家精品课

课程性质

课程背景

  世界计算机科学家Alfred V.Aho在《编译器》来自的第1章第1句话写道:"编写编译器的原理和技术具有普遍的意义,以三声附湖织至于在每个计算机科学家的研究生涯中,该书中的原理和技术都会反复用到。"这句话点明了编译原理该门课程在计算机专业中的重要地位。有360百科过使用高级程序设计语言编写程序经历的学习者知道,当给计算机输入一段程序以后,计算机就可以按照人们意图去工作。由0和1构成的机器代码才是可以被计算机直接理解的语言。因此,用高级语言编写的程序,最终都要"翻译"成红继院预想穿天额断省脸由0和1构成的机器代码才可以在计算机上执行,这一翻译过程,就称为编译。

适应对象

  编译原理主要面向计算机相关专业大学生、以及相关技术的从业人员等。

开课信息

  开课次数

  开课时间

  授课教师

  参与人数

  第1次开课

  2017年09月04日~2017年12月31日

  陈鄞、郭

  10399

  第2次开课

  2018年03月05日~2018年07月31日

  16424

  第3次开课

  2018非跑呼方训主深低项群架年09月03日~2018年12月31日

  陈心范商结乡攻众执鄞、郭勇、涂志莹、黄诚

  11272

  第4次开课

  2019年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月31日~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-10switch360百科语句的翻译

  1-2编译系长验识流主经纪强名流统的结构

  本讲课程讲义(PP调四动谈比品发担T文档)

  6-11过程调用语句的翻译

  1-3词法分析概述

  4-16LR分析中的错误处理

  本讲模拟练习题(不款类手货计分)

  1-4语法分析概述

  本讲模拟练习题(不计分)

  本讲课程讲义(PDF文档)

  1-5语义分析概述

  本讲课程讲义(PDF文档)

  第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】如何计算语义属性?

  【讨啊最乐了厚剂期降论15-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文档)

  本讲课程讲义(PPT文档)

  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)分析

  (注:课程大纲排版从左到右列 )

课前预备

预备知识

  学习编译原理前需要预备高级程序设计语言、数据结构、集合与图论等专业知识。

学习资料

  编译原理的学习资料有《编译原理(第2版):本科教学版》《编译原理》等。

  书名

  作者

  ISBN

  出版时间

  出版社

  《编译原理(第2版):本科教学版》

  (美)Alfred V.Aho

  9787111269298

  2009年

  机械工业出版社

  《Compilers: Principles, Techniques and Tools(Second Edition)》

  Alfred V. Aho等

  ------

  2006年

  Pearson Education, Inc

  《编译原理》

  蒋宗礼等

  9787040290585

  2010年

  高等教育出版社

  表格内容参考资料

所获荣誉

  2018年,编译原理被中华人民共和国教育部认定为"国家精品在线开放课程"。

教师简介

  陈鄞,女,哈尔滨工业大学计算学部副教授、硕士生导师。

  郭勇,男,哈尔滨工业大学讲师。

  涂志莹,男,汉族,1983年生,工学博士,哈尔滨工业大学(威海)计算机科学与技术学院副教授、硕士生导师。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信
上一篇:小叶榉
下一篇:小叶毛兰

相关文章