北京邮电大学《编译原理与技术》课程教学大纲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《编译原理与技术》课程教学大纲
一、课程编号:1311020
二、课程名称:编译原理与技术(64学时)
Compiler Principle and Technology
三、课程教学目的
通过本课程的学习,使学生了解并掌握程序设计语言的编译程序的设计原理与实现技术,了解编译程序的构造方法;加深学生对高级程序设计语言的理解,做到触类旁通;使学生体会到其他专业基础知识如算法与数据结构、程序设计、操作系统、形式语言与自动机、计算机组成原理、汇编语言、软件工程等综合应用,对计算机的软硬件工作原理建立比较深刻的理解,提高学生的专业素养,使学生能够利用所学的理论知识解决实际问题,培养学生分析问题、解决问题的能力。
四、课程教学基本要求
1.了解编译的基本概念和步骤,编译程序的基本组成、结构、编译环境等基本概念。
2.掌握词法分析的原理、词法分析程序的设计和实现方法。
3.掌握语法分析的原理和实现技术、简单的语法分析程序的设计和实现。
4.掌握语法制导翻译技术。
5.理解利用语法制导翻译技术进行语义分析、中间代码生成的实现。
6.理解程序运行环境、代码生成相关的基本概念和实现方法。
7.了解代码优化技术的基本概念和方法。
五、教学内容及学时分配(含实验)
第一章编译概述2学时
1.翻译和解释
2.编译的阶段
3.编译程序的前后处理器(预处理器、汇编程序、连接装配程序)第二章词法分析4学时
1.词法分析器的作用
2.词法分析器的输入与输出
3.记号的描述与识别
4.词法分析程序的设计与实现
5*.软件工具LEX(规格说明、工作原理)
1.语法分析器的作用
2.自顶向下分析(预测分析器、非递归的预测分析器)
3.自底向上分析(规范归约、移进-归约方法实现)
4.LR分析器(模型及工作过程、SLR(1)分析器、LR(1)分析器、LALR(1)分析器)5.LR分析方法对二义文法的应用
6*.软件工具YACC (规格说明、二义性处理)
第四章语法制导翻译技术8学时
1.语法制导定义与翻译方案
2.S属性定义的自底向上翻译
3.L属性的自顶向下翻译
4.L属性的自底向上翻译
第五章语义分析4学时
1.语义分析的概念
2.符号表的组织与管理
3.类型检查(类型表达式、类型等价)
4.简单类型检查器的说明(语言说明、确定标识符的类型、表达式及语句的类型检查)
5*.类型检查有关的其他主题(函数和运算符的重载、类型转换、多态函数)第六章运行环境6学时
1.程序运行时的存储组织
2.存储分配策略(静态存储分配、栈式存储分配、堆式存储分配)
3.访问非局部名字
4.参数传递方式
第七章中间代码生成6学时
1.中间代码形式
2.赋值语句的翻译
3.布尔表达式的翻译
4.控制语句的翻译
5.过程调用语句的翻译
1.代码生成概述
2.基本块与流图
3.一个简单的代码生成程序
第九章代码优化2学时
1.优化概述
2.基本块的优化
3.循环优化
教学实践:
实验1.设计并实现一个C语言程序的词法分析程序4学时
实验2.设计并实现一个简单赋值语句的语法分析程序12学时
六、教学重点、难点
重点:语法分析、语法制导翻译技术、运行环境、中间代码生成
难点:语法分析、语法制导翻译技术
七、先修课程:计算机导论与程序设计、算法与数据结构、形式语言与自动机、计算机组成原理
八、适用专业:计算机科学与技术、网络工程
九、使用教材及参考书目
《编译原理与技术》李文生编著清华大学出版社 2009.1
执笔人: 李文生