资源描述
《编译原理》课程
教学设计方案
适用专业:计算机科学技术
编 制 人:
系部主任:
审 核 人:
编制日期:
2014年4院15日
目 录
一、《编译原理》课程整体教学设计方案 1
(一)基本信息 1
(二)课程设计 1
(三)考核方案设计 5
(四)教学组织形式 5
(五)教学材料 5
二、课程单元教学方案设计 6
(一)教学内容1 6
1、教案头 6
2、教学过程设计 6
(二)教学内容2 7
1、教案头 7
2、教学过程设计 8
(三)教学内容3 10
1、教案头 10
2、教学过程设计 10
《编译原理》课程设计方案
《编译原理》课程教学设计方案
一、《编译原理》课程整体教学设计方案
(一)基本信息
课程名称:编译原理 学时:72学时
课程类型:专业技能课 学分:3学分
所属系部:计算机科学系 授课对象:二年级学生
先修课程:《数据结构》、《离散数学》 后续课程:《JAVA程序设计》
课程团队负责人及成员:孔玉静
(二)课程设计
1、课程目标设计
(1)能力目标: 培养学生掌握构造编译程序的基本原理与设计方法,为培养计算机语言与大型应用程序的开发人才打下良好的基础。
(2)知识目标: 通过本课程学习,使学生掌握编译程序的一般构造原理,包括语言基础知识、词法分析程序设计原理和构造方法。各种语法分析技术和中间代码生成符号表的构造、代码优化、并行编译技术常识及运行时存储空间的组织等基本方法和主要实现技术。
2、课程教学内容设计
序号
教学内容
学时
第1章
引论
8
第2章
编译基础
8
第3章
词法分析
8
第4章
自上而下语法分析
4
第5章
自下而上语法分析
4
第6章
语法制导翻译和中间代码生成
8
第7章
运行时的存储空间组织
8
第8章
优化
4
第9章
目标代码生成
8
第10章
面向对象语言的编译
8
11
综合复习
4
合计
72
3、能力训练项目设计
编号
能力训练
项目名称
学时
能力目标
主要支撑知识
训练方式及步骤
1
查填符号表
8
运用所学知识,选择语言、选择算法(数据结构),编程实现符号表管理程序,读出源程序中的标识符,并在符号表中进行查找,若存在则输出该标识符及其编号和位置;否则将其填入符号表,并分配编号,确定位置,输出标识符表。
搜索算法、标识符解析等
上机指导、组织讨论关键问题。
2
简单词法分析
4
通过设计调试词法分析程序,实现从源程序中分出各种单词的方法;加深对课堂教学的理解;提高词法分析方法的实践能力。掌握从源程序文件中读取有效字符的方法和产生源程序的内部表示文件的方法;掌握词法分析的实现方法;上机调试编出的词法分析程序。
词法分析程序的设计、单词的描述工具、有穷自动机、文法等
上机指导、组织讨论关键和难点问题的解决方案。
3
逆波兰式生成
8
建立运算符优先级表,利用C或Java语言,实现逆波兰式的生成算式,将简单算术表达式转化为逆波兰表达式。输出生成的逆波兰表达式。
栈的运用、中间代码的形式等。
上机指导、组织讨论关键问题。
4
表达式分析
8
通过选用不同的语法分析方法(自上而下或自下而上语法分析方法),编写完整的表达式(或算术表达式)语法分析程序。功能包括:输入符号串,判断该输入串是否为该语言的一个合法的表达式,同时检查语法错误。
自顶向下语法分析方法、自底向上优先分析、LR分析及语法制导和中间代码生成等。
组织讨论关键问题和难点的解决方案。
5
综合实验
8
选用目前世界上普遍采用的语义分析方法──语法制导翻译技术。编程实现LR(k)算法,能根据预先定义的文法规生成LR(k)分析表,并对输入串进行语法分析。
词法分析、语法分析、符号表管理及语义分析等。
组织对关键问题和难点解决方案的讨论。并对完成较好的实验程序进行展示。
4、教学进度表设计
序号
周次
学时
教学目标与主要内容
单元标题
能力目标
能力训练项目编号
知识目标
考核内容与方法
1
1-2
8
引论
1. 理解编译程序的概念;
2. 理解编译的过程;
1
了解编译程序与解释程序的区别;
考查
2
3-4
8
编译基础
1. 理解语法分析树的构造、了解文法的二义性判断方法;
2. 理解句型的分析方法;
1
1. 理解文法、语言的基本概念;
2. 了解字母表,符号串,符号串的头尾,符号串的连接和符号串的方幂等概念;
3. 掌握语言的定义方法、符号串的推导;
4. 了解文法的类型;
考查
3
5-6
8
词法分析
1.掌握正规文法正规式,两者之间的转换;
2. 掌握状态转换图,DFA ,NFA,把NFA变为DFA, DFA的化简;
3. 掌握正规文法和有穷自动机间的转换;
2
了解词法分析器的功能和输出形式;
考查
4
7
4
自上而下语法分析
1. 了解不确定的自顶向下分析思想;
2. 掌握LL(1)分析方法;
4
1. 了解确定的自顶向下分析思想,掌握First集与Follow集的构造算法;
2. 掌握LL(1)文法的判别方法;
3. 掌握某些非LL(1)文法到LL(1)文法的等价变换方法;
考查
5
8
4
自下而上语法分析
1. 掌握算符优先分析法:直观算符优先分析法,算符优先文法的定义,算符优先关系表的构造;
2. 了解优先函数的构造方法;
4
1. 了解自底向上优先分析法;
2. 了解优先关系的定义,掌握简单优先分析法;
考查
6
9-10
8
语法制导翻译和中间代码生成
1. 掌握布尔表达式的翻译;
2. 掌握控制结构的翻译;
3. 理解数组和结构的翻译;
3
1. 理解属性文法、语法制导翻译方法;
2. 理解中间代码的形式;
3. 掌握简单赋值语句的翻译;
考查
7
11-12
8
运行时的存储空间组织
1. 掌握堆式存储分配;
2. 临时变量的存储分配方法;
3
1. 了解静态存储分配以及动态存储分配的概念;
2. 熟练掌握栈式存储分配方法;
考查
8
13
4
优化
掌握提高代码质量的关键技术;
5
了解和掌握实施优化的过程;
考查
9
14-15
8
目标代码生成
了解代码生成器的自动生成技术;
5
了解简单代码生成器,包括代码生成运算和寄存器的分配;
考查
10
16-17
8
面向对象语言的编译
熟悉编译继承性的应用
5
掌握面向对象语言的基本概念;
考查
5、教学方法与教学手段设计
课堂教学:多媒体教学进行教学,使学生能够很快掌握课程的主要知识和解决问题的方法。
辅导和答疑:以习题课对课程中的重要概念和典型问题的解决方法进行总结和深入讨论,巩固和加深课堂内学到的知识。采用电子邮件方式直接与教师联系进行答疑。
自学与练习:除读懂教科书中所讲内容外,还需大量做题。其目的是要通过做题弄懂、加深对概念的理解,提高解决问题的能力。为此,安排一定的实验上机学时。
(三)考核方案设计
考核方式:学期末随堂测试。考核方式包括机试和平时成绩,具体如下:
机试成绩:考核教学内容,基本理论、概念及解决实际问题的能力,占60%。
平时成绩:包括出勤、课堂表现、课后作业、讨论等分数,占40%。
(四)教学组织形式
教学组织方式主要以班级授课为主
1、教师讲解在完成学习任务过程中必须使用的知识和技术,分析学习任务的内容和要求,学生在教师的辅导下独立完成项目开发任务;
2、最后,教师布置课后的练习任务和进一步学习和阅读的内容。
(五)教学材料
教材:
郭伟、李义杰主编,编译原理简明教程,清华大学出版社,2011年1月
参考书:
[1] 《编译原理》胡伦骏、徐兰芳、刘建农编,电子工业出版社2002年
[2] 《编译原理》(第二版)蒋立源、康慕宁主编,西北工业大学出版社,2002年
[3] 《编译原理习题精选》陈意云、张昱著,中国科技大学出版社,2002年
[4] 《编译原理与实现》金成植编,高等教育出版社。
二、课程单元教学方案设计
(一)教学内容1
1、教案头
标题: 引论
授课教师:孔玉静
授课班级:12软件、13软件
学时数:8
授课日期:2014-2-24、26;2014-3-3、5
授课地点:2#405、406
教 学 目 标
能力目标
知识目标
其他目标
1. 理解编译程序的概念;
2. 理解编译的过程;
了解编译程序与解释程序的区别;
无
教 学 重 点
1. 编译程序的概念;
2. 编译的过程(词法分析、语法分析、语义分析和中间代码的生成、代码优化、目标代码的生成);
训 练案 例
运用所学知识,编程实现符号表管理程序,读出源程序中的标识符,并在符号表中进行查找,若存在则输出该标识符及其编号和位置;否则将其填入符号表,并分配编号,确定位置,输出标识符表。
参 考 资 料
教材:郭伟、李义杰主编,编译原理简明教程,清华大学出版社,2011年1月
教 学 体 会
通过本章学习,同学们能够做到以下几点
1、能独立完成自己的任务,进行良好的团队合作,善于动脑,勤于思考,及时发现问题和解决问题;
2、遵守学校的课堂教学规范;
3、主动提问、主动帮助同学解决学习中的问题;
2、教学过程设计
教学过程设计
主要
步骤
教学内容
教学方法
教学手段
学生活动
时间分配
告知
(教学内容、目的)
了解编译程序概念,编译程序的结构,以及每一阶段任务。
项目驱动式教学
多媒体教学
认真听课
8
引入
(项目引入)
基于一种搜索算法,建立表示符表;利用界符进行单词解析;运用文法(自动机)进行标识符识别。
项目驱动式教学
多媒体教学
认真听课
8
实施
(任务驱动)
1. 什么是编译程序;
2. 编译过程和编译程序的结构:编译过程概述,编译程序的结构,编译阶段的组合;
项目驱动式教学
多媒体教学
认真听课
8
深化
(加深对基本能力的认识与体会)
解释程序和一些软件工具:解释程序,处理源程序的软件工具;
项目驱动式教学
多媒体教学
认真听课
8
归纳
(知识/能力/素质)
编译程序的结构,以及每一阶段任务。
项目驱动式教学
多媒体教学
认真听课
8
创新
(拓展)
编译的过程。
项目驱动式教学
多媒体教学
认真听课
8
总结
编译程序,编译过程概述,编译程序的结构,编译程序生成,学习构造编译程序。
项目驱动式教学
多媒体教学
认真听课
8
布置
作业
通过课后的习题,使学生理解编译程序,解释程序和遍的基本概念,掌握编译过程各阶段的任务和编译程序的逻辑结构及其各部分的基本功能。
(二)教学内容2
1、教案头
标题:编译基础
授课教师:孔玉静
授课班级:12软件、13软件
学时数:8
授课日期:2014-3-10、12;2014-3-17、19
授课地点:2#405、406
教 学
目 标
能力目标
知识目标
其他目标
1. 理解语法分析树的构造、了解文法的二义性判断方法;
2. 理解句型的分析方法;
1. 理解文法、语言的基本概念;
2. 了解字母表,符号串,符号串的头尾,符号串的连接和符号串的方幂等概念;
3. 掌握语言的定义方法、符号串的推导;
4. 了解文法的类型;
无
教 学
重 点
上下文无关文法,正则表达式与有限自动机。
训 练
案 例
运用所学知识,编程实现符号表管理程序,读出源程序中的标识符,并在符号表中进行查找,若存在则输出该标识符及其编号和位置;否则将其填入符号表,并分配编号,确定位置,输出标识符表。
参 考
资 料
教材:郭伟、李义杰主编,编译原理简明教程,清华大学出版社,2011年1月
教 学
体 会
通过本章的学习,同学们掌握了文法的形式定义及语法树等工具的使用,理论性较强!
2、教学过程设计
教学过程设计
主要
步骤
教学内容
教学方法
教学手段
学生活动
时间分配
告知
(教学内容、目的)
1. 了解文法、语言的基本概念;
2. 了解字母表,符号串,符号串的头尾,符号串的连接和符号串的方幂等概念;
3. 掌握语言的定义方法、符号串的推导;
4. 了解文法的类型;
5. 了解语法分析树的构造、文法的二义性判断方法;
6. 了解句型的分析方法;
项目驱动式教学
多媒体教学
认真听课
8分钟
引入
(项目引入)
基于一种搜索算法,建立表示符表;利用界符进行单词解析;运用文法(自动机)进行标识符识别。
项目驱动式教学
多媒体教学
认真听课
8分钟
实施
(任务驱动)
1. 文法的直观概念;
2. 符号和符号串:字母表,符号串,符号串的头尾,符号串的连接,符号串的方幂,符号串集合;
3. 文法和语言的形式定义:文法、直接推导、句型和句子的定义;
4. 文法的类型:0型文法,1型文法,2型文法和3型文法;
5. 上下文无关文法及其语法树:语法树、最左(最右)推导、规范推导和规范句型的定义,文法二义性的判断;
6. 句型的分析文法:自上而下的分析法,自下而上的分析法,短语、直接短语和句柄的定义;
7. 有关文法中的一些说明 :有关文法的实用限制,上下文无关文法中的e规则;
项目驱动式教学
多媒体教学
认真听课
8分钟
深化
(加深对基本能力的认识与体会)
文法和语言的定义;
项目驱动式教学
多媒体教学
认真听课
8分钟
归纳
(知识/能力/素质)
短语、直接短语和句柄的分析;
项目驱动式教学
多媒体教学
认真听课
8分钟
创新
(拓展)
句型的分析;
项目驱动式教学
多媒体教学
认真听课
8分钟
总结
上下文无关文法,文法等价变换,语法树与文法二义性,正规表达式与有限自动机。
项目驱动式教学
多媒体教学
认真听课
8分钟
布置
作业
通过课后的习题,使学生能够理解文法的概念,熟练掌握符号串的推导,语法分析树的构造,文法的二义性判断和对句型的分析。
(三)教学内容3
1、教案头
标题: 词法分析
授课教师:孔玉静
授课班级:12软件、13软件
学时数:8
授课日期:2014-3-24、26;2014-4-2、9
授课地点:2#405、406
教 学
目 标
能力目标
知识目标
其他目标
1.掌握正规文法正规式,两者之间的转换;
2. 掌握状态转换图,DFA ,NFA,把NFA变为DFA, DFA的化简;
3. 掌握正规文法和有穷自动机间的转换;
了解词法分析器的功能和输出形式;
无
教 学
重 点
1. 词法分析程序:词法分析器的功能和输出形式,词法分析器作为一个独立子程序;
2. 单词的描述工具:正规文法,正规式;
3. 有穷自动机:状态转换图,DFA,NFA,把NFA变为DFA, DFA的化简;
4. 正规文法和有穷自动机间的转换;
训 练
案 例
简单词法分析
参 考
资 料
教材:郭伟、李义杰主编,编译原理简明教程,清华大学出版社,2011年1月
教 学
体 会
通过本章的学习,同学们掌握正规式与有穷自动机和正规文法与有穷自动机转换。
2、教学过程设计
教学过程设计
主要
步骤
教学内容
教学方法
教学手段
学生活动
时间分配
告知
(教学内容、目的)
熟练掌握正规式与有穷自动机和正规文法与有穷自动机关系;掌握词法分析程序的设计原理与构造方法。
项目驱动式教学
多媒体教学
认真听课
8
引入
(项目引入)
通过设计调试词法分析程序,实现从源程序中分出各种单词的方法;加深对课堂教学的理解;提高词法分析方法的实践能力。
项目驱动式教学
多媒体教学
认真听课
8
实施
(任务驱动)
1. 词法分析程序:词法分析器的功能和输出形式,词法分析器作为一个独立子程序;
2. 单词的描述工具:正规文法,正规式;
3. 有穷自动机:状态转换图,DFA,NFA,把NFA变为DFA, DFA的化简;
4. 正规文法和有穷自动机间的等价;
5. 正规文法和有穷自动机间的转换;
6. 词法分析程序自动构造工具;
项目驱动式教学
多媒体教学
认真听课
8
深化
(加深对基本能力的认识与体会)
1. 单词的描述工具:正规文法,正规式;
2. 有穷自动机:正规文法的状态转换图,DFA,NFA,把NFA变为DFA, DFA的化简;
项目驱动式教学
多媒体教学
认真听课
8
归纳
(知识/能力/素质)
掌握从源程序文件中读取有效字符的方法和产生源程序的内部表示文件的方法。
项目驱动式教学
多媒体教学
认真听课
8
创新
(拓展)
正规式和有穷自动机间的转换;
项目驱动式教学
多媒体教学
认真听课
8
总结
词法分析器任务,词法分析器设计,词法分析器自动生成。
项目驱动式教学
多媒体教学
认真听课
8
布置
作业
通过课后的习题,使学生能够熟练地掌握正则文法、状态转换图、DFA、NFA、NFA的确定化和最小化,状态转换矩阵到状态转换图的转化,正规式和正规集的基本概念。
11
展开阅读全文