教育教学

相关链接:

教室安排

课程信息

当前位置: 首页 > 教育教学 > 研究生教育 > 课程信息

编译程序高级教程  091M5024H

学期:2016-2017学年秋 | 课程属性:专业普及课 | 任课教师:冯晓兵等
课程编号: 091M5024H 课时: 40 学分: 2.0
课程属性: 专业普及课 主讲教师:冯晓兵等
英文名称: Compilers: An Advanced Course

教学目的、要求

本课程为计算机系统结构专业硕士研究生的专业基础课,同时也可作为计算机软件与理论专业研究生的专业基础课。课程介绍了程序设计语言的基本实现原理和技术,主要内容包括形式语言基础知识、词法分析、语法分析及语法制导翻译、语言的解释执行和编译执行实现、现代编译器介绍、数据流分析方法和理论、先进程序分析方法、程序优化、代码生成等编译理论和技术。本课程能帮助学生深刻理解程序设计语言的语义及其实现方法,对从事编译系统等系统软件方向研究的学生有很好的意义,也可以使其他学生从中得到启发。

预修课程

计算机程序设计语言

教 材

陈意云,《编译原理和技术》(第二版),中国科学技术大学出版社,合肥,1997。

主要内容

内容提要:
第一章  程序设计语言实现概论
    程序设计语言的实现方法,解释器,编译器和虚拟机简介,编译的阶段,编译程序的结构。
第二章  词法分析,语法分析以及形式语言简介
    词法分析器的作用和语法分析器的作用,文法的直观概念,乔姆斯基语言族
第三章  语法制导的翻译
    上下文无关语言及其语法树,自上而下翻译及自下而上翻译,语法制导的定义和属性文法介绍
第四章  语法树遍历和解释器实现
    语法树遍历方法和实现模式,类型检查器,解释器的实现和说明
 第五章  简单中间语言和控制流分析
    简单中间语言指令,基本块识别,控制流图,dominator和post-dominator,自然 
循环的识别和优化
第六章  SSA中间表示和LLVM
    SSA中间表示的原理和构建,LLVM编译器介绍
第七章  数据流分析I
    数据流分析的具体实现及其常见应用
第八章  数据流分析 II
    格的理论,数据流分析原理和抽象解释
第九章  指针分析
    指针分析介绍,过程间程序分析方法 
第十章 程序分析方法
    上下文敏感,流敏感,路径敏感程序分析方法,程序分析检错方法  
    第十一章  代码生成
    运行环境,代码生成器设计中的问题,目标机器,下次引用信息,一个简单的代码生成器。
第十二章  先进编译和优化技术简介
    依赖分析,并行优化,二进制翻译和动态优化。
    (上述章节可根据教学情况适当调整。)

参考文献

	1. 吕映芝等,《编译原理》,清华大学出版社,北京,1998。
	2. 杜淑敏,王永宁,《编译程序设计原理》,北京大学出版社,北京,1986。
	3. Alfred V. Aho et al., Compilers Principles, Techniques and Tools, Addison-Wesley, 1985.

授课时间: 星期一, 第5、6、7节
授课地点: 教1-108
授课周次: 2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19

版权所有©中国科学院大学

地址:北京市怀柔区雁栖湖东路1号 邮编:101408