编译原理
分享
课程详情
课程评价
spContent=课程以“编译器”的总体结构为主线,选择文法与语言描述、词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等为主要内容,讨论编译器设计与实现及相关的方法与原理。旨在继“程序设计语言”、“数据结构与算法”等课程后,引导学生在系统级上认识程序与算法,培养其计算思维、程序设计与实现、算法设计与分析、计算机系统四大专业基础能力。
—— 课程团队
课程概述

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

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

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

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

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

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

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

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



授课目标

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

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

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

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



课程大纲
预备知识

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

证书要求

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

 

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

 

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

 

认证证书申请注意事项:

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

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


参考资料

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

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

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