“程序设计语言与编译”课程以介绍程序设计语言的基本原理、设计方法和实现技术为教学目标,使学生掌握设计和实现一个程序设计语言的基本思想和方法,培养学生分析、鉴赏、评价、选择、学习、设计和实现一个高级程序设计语言的基本能力。课程内容覆盖 CC2001 和 CCC2002 教程中编程语言(LP)模块的全部知识点,具体分为两个部分:
上篇(第1章~第4章)——程序设计语言的设计。这部分是传统“高级程序设计语言”课程的内容,主要介绍程序设计语言的基础理论,包括语言的设计要素,设计思想,设计方法,设计技术和设计风格等知识,
下篇(第5章~第10章)——程序设计语言的实现。这部分是传统“编译原理”课程的内容,主要介绍程序设计语言的实现技术,也就是如何把一个高级语言程序,从源代码编译成目标代码的过程。
对语言的实现部分的学习,能够帮助同学们掌握和理解编译系统的结构、工作流程以及编译系统各组成部分的设计原理和实现技术,获得分析、设计、实现和维护编译系统的初步能力。对语言的设计部分的学习,能够提高同学们对程序设计语言、操作系统、计算机原理和体系结构的综合理解。对于将来从事编译系统相关工作的同学来说,程序设计语言与编译课程将为其打下坚实的能力和知识基础;对于从事其它工作的同学,也能够提高他们对计算机系统的总体认识。
课程简介
课程简介
第1章 绪论
1.1 引言
1.2 强制式语言
1.3 程序单元
1.4 程序设计语言发展简介
第2章 数据类型
2.1 引言
2.2 内部类型
2.3 用户定义类型
2.4 C语言的数据类型
2.5 类型检查、类型转换、类型等价
2.6 实现模型
第3章 控制结构
3.1 顺序、选择、重复
3.2 语句级控制结构讨论
3.3 显示调用、异常处理
3.4 协同程序、并发单元
第4章 程序语言的设计
4.1 程序设计语言的定义
4.2.1 形式语言与自动机理论
4.2.2 语言的形式定义
4.2.3 文法和语言
4.3 程序设计语言的设计
4.4 程序设计语言实例
第5章 编译概述
5.1 语言的翻译、编译与解释
5.2 编译的步骤
第6章 词法分析
6.1 词法分析概述、单词的类别、单词的识别
6.2 词法分析器实例
第7章 语法分析(上)
7.1 语法分析概述
7.2 回溯分析法
7.3 递归下降分析法
7.4 预测分析法
第7章 语法分析(中)
7.5 算符优先分析法
第7章 语法分析(下)
7.6 LR分析法
第8章 语义分析
8.1 语义分析概述
8.2 说明语句的翻译
8.3 赋值语句的翻译
8.4 goto语句的翻译
8.5 if语句的翻译
8.6 while语句的翻译
8.7 for语句的翻译
8.8 函数的翻译
第9章 优化
9.1 优化的概念
9.2 局部优化
9.3 全局优化
第10章 目标代码生成
10.1 目标代码生成概述
10.2 简单代码生成
10.3 寄存器分配
10.4 存储空间分配
为积极响应国家低碳环保政策, 2021年秋季学期开始,中国大学MOOC平台将取消纸质版的认证证书,仅提供电子版的认证证书服务,证书申请方式和流程不变。
电子版认证证书支持查询验证,可通过扫描证书上的二维码进行有效性查询,或者访问 https://www.icourse163.org/verify,通过证书编号进行查询。学生可在“个人中心-证书-查看证书”页面自行下载、打印电子版认证证书。
完成课程教学内容学习和考核,成绩达到课程考核标准的学生(每门课程的考核标准不同,详见课程内的评分标准),具备申请认证证书资格,可在证书申请开放期间(以申请页面显示的时间为准),完成在线付费申请。
认证证书申请注意事项:
1. 根据国家相关法律法规要求,认证证书申请时要求进行实名认证,请保证所提交的实名认证信息真实完整有效。
2. 完成实名认证并支付后,系统将自动生成并发送电子版认证证书。电子版认证证书生成后不支持退费。
1. Concepts of Programming Languages (11th Edition), Robert W. Sebesta, 2015
2. Programming Language Pragmatics (4th Edition), Michael L. Scott, 2015
3. Compilers: Principles, Techniques, and Tools (2nd Edition), Alfred V. Aho , Monica S. Lam , et al. 2006
4. Modern Compiler Implement in C, Andrew W. Appel, 2004
5. Advanced Compiler Design and Implementation, Steven Muchnick, 1997