课程

中国大学MOOC,为你提供一流的大学教育

hi,小mooc
期末考试会员
SPOC学校专有课程
编译原理
第1次开课
开课时间: 2022年02月23日 ~ 2022年05月15日
学时安排: 4-6小时每周
当前开课已结束 已有 409 人参加
老师已关闭该学期,无法查看
spContent=课程为“江西省线上线下一流本科课程”。课程以“编译器”的总体结构为主线,选择文法与语言描述、词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等为主要内容,讨论编译器设计与实现及相关的方法与原理。旨在继“程序设计语言”、“数据结构与算法”等课程后,引导学生在系统级上认识程序与算法,培养其计算思维、程序设计与实现、算法设计与分析、计算机系统四大专业基础能力。
课程为“江西省线上线下一流本科课程”。课程以“编译器”的总体结构为主线,选择文法与语言描述、词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等为主要内容,讨论编译器设计与实现及相关的方法与原理。旨在继“程序设计语言”、“数据结构与算法”等课程后,引导学生在系统级上认识程序与算法,培养其计算思维、程序设计与实现、算法设计与分析、计算机系统四大专业基础能力。
—— 课程团队
课程概述

1、我为什么要学习这门课?

“编译原理”这门课程一直以来是国内外大学计算机相关专业的重要课程,其知识结构贯穿程序设计语言、系统环境以及体系结构,能以相对独立的视角体现从软件到硬件以及软硬件协同的整机概念;同时其理论基础又涉及形式语言与自动机、数据结构与算法等计算机学科的许多重要方面,不愧为联系计算机科学理论和计算机系统的典范。正如世界著名计算机科学家Alfred V.Aho在他的经典著作《编译原理》开篇中说:“在每个计算机科学家的研究生涯中,本书的原理和技术都会反复用到。”

2、这门课的主题是关于什么?

 形式语言与自动机、词法分析、语法分析及语法制导翻译

3、学习这门课可以获得什么?特别是对自己有什么帮助和应用。

该课程主要是介绍如何将高级语言翻译为低级语言(机器语言和汇编语言)的编译程序的工作原理和方法的课程。因此,可以说该课程是建立在高级语言或汇编语言基础上,综合运用编译理论及多门前修课程如“数据结构”“离散数学”等课程的相关知识来解决高级语言在机器上运行的实际问题的一门课程。该课程内容丰富,具有严密的逻辑性和抽象性,是一门“难教难学”的课程,但对提高学生计算机软件素质、逻辑思维能力、抽象思维能力和形式化能力具有很大作用,可以使学生真正了解计算机的工作过程,认识计算机信息处理的实质,并综合运用所学的编译技术与方法来分析解决问题。

4、这门课有什么特色和亮点。

理念上,遵循工程教育认证核心理念,强调能力培养;传授上,重理解、重思想方法、重应用、轻内容;教学上,以“问题”为导向,激发学生主动探究分析问题,增强教学深度。



授课目标

目标1掌握编译原理的基本概念、基本原理与基本方法,了解一个复杂软件系统——编译器的构造原理、方法和技术,提升解决复杂软件工程问题能力。

目标2:培养抽象思维和形式化描述问题的能力,有利于采用科学方法分析与研究软件复杂工程问题。

目标3:增强数字化、算法、模块化等软件工程专业核心意识,能够将编译原理的典型方法运用到解决实际复杂软件问题。

目标4:加深对程序设计语言本质的理解,从而更好地运用程序设计语言。


成绩 要求

为积极响应国家低碳环保政策, 2021年秋季学期开始,中国大学MOOC平台将取消纸质版的认证证书,仅提供电子版的认证证书服务,证书申请方式和流程不变。

 

电子版认证证书支持查询验证,可通过扫描证书上的二维码进行有效性查询,或者访问 https://www.icourse163.org/verify,通过证书编号进行查询。学生可在“个人中心-证书-查看证书”页面自行下载、打印电子版认证证书。

 

完成课程教学内容学习和考核,成绩达到课程考核标准的学生(每门课程的考核标准不同,详见课程内的评分标准),具备申请认证证书资格,可在证书申请开放期间(以申请页面显示的时间为准),完成在线付费申请。

 

认证证书申请注意事项:

1. 根据国家相关法律法规要求,认证证书申请时要求进行实名认证,请保证所提交的实名认证信息真实完整有效。

2. 完成实名认证并支付后,系统将自动生成并发送电子版认证证书。电子版认证证书生成后不支持退费。


课程大纲

第1讲(第一周) 绪 论

1.1 什么是编译程序

绪论——知识回顾

1.2 编译程序逻辑结构

1.3 编译程序各阶段任务

第1次单元测验(6分)

第2讲 (第一周)  文法与语言1

2.1 语言与文法的直观概念

2.2 符号和符号串

2.3 文法的形式化定义

2.4 语言的形式定义

第3讲(第二周) 文法与语言2

2.5 文法的类型

2.6 上下文无关文法及其语法树

2.7 文法及语言的二义性

第4讲(第周) 文法与语言3

2.8 句型分析方法

2.9 句型分析中几个概念

2.10 有关文法实用中的一些说明

文法与语言——知识回顾

第2次单元测验(10分)

第5讲(第三周) 词法分析1

3.1 词法分析程序的设计

3.2 正规文法与单词描述

3.3 正规式和正规集

3.4 正规文法与正规式的等价性

第6讲(第三周) 词法分析2

3.5 有穷自动机

3.6 确定的有穷自动机

3.7 不确定的有穷自动机

3.8 NFA的确定化

3.9 DFA的最小化

第7讲(第四周) 词法分析3

3.10 FA到正规式

3.11 正规式到FA

3.12 正规文法和有穷自动机间的转换

第3次  单元测验(8分)

第8讲(第四周) 自顶向下语法分析方法1

4.1确定的自顶向下分析思想

4.2 FIRST方法

4.3 FOLLOW方法

4.4 LL(1)文法定义

第9讲(第五周) 自顶向下语法分析方法2

4.6提取左公共因子

4.7消去左递归

4.5 LL(1)文法判定

4.8 预测分析表法

第4次单元测验(8分)

第10讲(第五周) 自底向上优先分析法1

5.1自底而上分析方法概述

5.2 简单优先文法

5.3 简单优先分析方法

第11讲(第六周)  自底向上优先分析法2

5.4 算法优先分析法

5.6 算法优先文法

5.5 算法优先关系

5.7 算符优先分析句型的性质

第5次  单元测试 (8分)

第12讲(第六周) LR分析法1

6.1 LR分析法

6.2活前缀及可归前缀

6.3 LR(0)项目

第13讲 (第七周)LR分析法2

6.4 LR(0)文法

6.5 LR(0)分析表的构造

6.6 SLR(1)分析

第14讲(第七周) LR分析法3

6.7 LR(1)分析

6.8 LALR(1)分析

6.9 四类LR分析方法关系

第6次单元测验(8分)

第15讲(第八周) 语法制导翻译和中间代码生成1

7.1 属性文法与语法制导翻译

7.2 中间代码的形式

7.3 简单赋值语句翻译

第16讲(第八周) 语法制导翻译和中间代码生成2

7.4 布尔表达式到四元式的翻译1

7.5 布尔表达式到四元式的翻译2

第17讲(第九周) 语法制导翻译和中间代码生成3

7.6.条件、while和复合语句的翻译1

7.7 条件、while和复合语句的翻译2

7.8 for循环语句的翻译

第7次单元测验(8分)

第18讲(第九周) 代码优化

8.1优化技术简介

8.2局部优化

8.3循化优化

第8次单元测验 (4分)

展开全部
预备知识

高级语言程序设计、数据结构、离散数学等计算机基础知识

参考资料

[1]王生原,董渊,张素琴等,《编译原理》[M].第三版,北京:清华大学出版社,2015年.

[2]蒋立源、康慕宁,《编译原理》[M].第三版, 西安:西北工业大学出版社,2009年.

[3]陈火旺等,《程序设计语言编译原理》[M].第三版,长沙:国防工业出版,2002年.


源课程

该SPOC课程部分内容来自以上源课程,在源基础上老师进一步增加了新的课程内容

华东交通大学
1 位授课老师
刘立月

刘立月

副教授

下载
下载

下载App