信息学院06版《编译原理》课程教学大纲

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《编译原理》课程教学大纲
课程编号:(先不填)
英文名称:Compiler Construction Principles
课程类型:专业基础课
学时/学分:40+16/3.5
授课对象:本科生
先修课程:高等数学,数据结构,C程序设计
课程简介:
本课程是计算机专业学生的一门重要专业基础课,本课程属于计算机科学与技术专业的一门重要的专业必修课。

通过本课程学习,使学生掌握编译程序的一般构造原理,包括语言基础知识、词法分析程序设计原理和构造方法。

各种语法分析技术和中间代码生成符号表的构造、代码优化、并行编译技术常识及运行时存储空间的组织等基本方法和主要实现技术。

它有一定的理论性,又有一定的实践性, 尤其是本课程的知识与计算机应用中很多领域有紧密联系与广泛应用。

了解与掌握本课程的基本内容将有利于学生提高专业素质和适应社会多方面需要的能力。

教学目的和要求:
教学目的:培养学生掌握构造编译程序的基本原理与设计方法,为培养计算机语言与大型应用程序的开发人才打下良好的基础。

本课程坚持理论与实践教学并重的原则,理论上主要叙述语言和文法的形式定义、自动机理论、词法分析、语法和语义分析、优化和代码生成等环节的基本理论和方法,与此同时,通过上机实习构造简单语言的编译程序等编辑器使学生掌握开发应用程序的基本方法。

教学要求:通过本课程的学习, 学生应掌握形式语言理论与编译实现相关的基础概念, 了解与掌握编译程序构造的基本原理与技术, 从形式语言理论的角度, 进一步认识与理解程序设计语言及其与编译程序的联系。

做习题是理解课程中基本概念、培养思考能力和解题能力的重要方面, 要求学生认真做好习题, 并注意解题规范化。

学生也应重视配合教学, 做好上机实习。

教学内容:
第1章编译程序概述(2学时)
1、教学内容:
1)什么是编译程序
2)编译过程概述
3)编译程序的结构
4)编译阶段的组合
5)编译技术和软件工具
2、教学重点:
编译程序的结构
3、教学难点:
编译程序的结构,以及每一阶段任务
第3章文法与语言(6学时)
1)文法的直观概念
2)符号和符号串
3)文法与语言的形式定义
4)文法的分类
5)上下文无关文法及其语法树
6)句型的分析
7)有关文法实用中的一些说明
2、教学重点:
与编译技术密切相关的一些术语和概念。

3、教学难点:
句型的分析
第4章词法分析(6学时)
1、教学内容:
1)词法分析程序的设计
2)单词的描述工具
3)有穷自动机
4)正规式和有穷自动机的等价性
5)正规文法和有穷自动机间的转换
6)词法分析程序的自动构造工具
2、教学重点:
正规式与有穷自动机和正规文法与有穷自动机转换
3、教学难点:
不确定的有穷自动机转换为确定的有穷自动机及最小化第5章自顶向下语法分析方法4
1、教学内容:
1)确定的自顶向下分析思想
2)LL(1)文法的判定
3)某些非LL(1)文法到LL(1)文法的等价变换
4)不确定的自顶向下分析思想
5)确定的自顶向下分析方法
2、教学重点:
确定的自顶向下分析方法
3、教学难点:
预测分析方法的分析表的构造、消除某些文法中的左递归第6章自底向上优先分析法(4学时)
1、教学内容:
1)自底向上优先分析法概述
2)简单优先分析法
3)算符优先分析法
2、教学重点:
算符优先分析法的关系表的构造以及分析过程
算符优先分析法的关系表的构造以及优先函数第7章LR分析法(6学时)
1、教学内容:
1)LR分析法的概述
2)LR(0)分析
3)SLR(1)分析
4)LR(1)分析
5)LALR(1) 分析
6)二义性文法在LR分析中的应用
2、教学重点:
LR(0)分析与LR(1)分析方法
3、教学难点:
构造LR分析法的分析表
第8章语法制导翻译和中间代码生成(6学时)
1、教学内容:
1)属性文法
2)语法制导翻译的概述
3)中间代码的形式
4)简单赋值语句的翻译
5)布尔表达式的翻译
6)控制结构的翻译
7)说明部分的翻译
8)数组与结构的翻译
2、教学重点:
中间代码的形式、布尔表达式的翻译与控制结构的翻译
3、教学难点:
布尔表达式与控制结构的语义过程
第9章符号表(自学)
1、教学内容:
1)符号表的作用和地位
2)符号的主要属性及作用
3)符号表的组织
4)符号表的管理
2、教学重点:
符号表的作用、内容和组织方法
3、教学难点:
符号表中分程序结构层次的管理
第10章目标程序运行时的存储组织(3学时)
1、教学内容:
1)数据空间的三种不同使用方法和管理方法
2)栈式存储分配的实现
3)参数传递
4)过程调用、过程进入和过程返回
2、教学重点:
栈式存储分配的实现
3、教学难点:
嵌套过程语言的栈式实现和分程序结构的存储管理
第11章代码优化(3学时)
1、教学内容:
1)优化技术的简介
2)局部优化
3)控制流分析和循环优化
4)数据流的分析与全局优化
2、教学重点:
重点介绍几种优化技术、局部优化以及循环优化
3、教学难点:
循环优化的过程
第12章代码生成(自学)
1、教学内容:
1)代码的生成概述
2)一个计算机模型
3)一个简单的代码生成器
4)代码生成研究现状
2、教学重点:
一个简单的代码生成器
3、教学难点:
使用信息链表法及代码生成算法
实验内容:
实验一词法分析(4学时)
1、实验目的:
理解并掌握词法分析的思想方法
2、实验内容:
定义模拟的简单语言的词法构成,编制词法分析程序,要求将用模拟语言书写的源程序进行词法分析,输出源程序清单,Token文件和错误信息文件,若有错误,必须输出错误在源程序中行号和列号,并将符号表和字符串以文件的形式写出来。

3、实验方案:
根据所学知识,课下编写,课上编辑调试,并写出实验报告
实验二语法分析(6学时)
1、实验目的:
理解并掌握语法分析的思想方法
2、实验内容:
构造LR分析程序,利用它进行语法分析,判断给出的符号串是否为该文
法识别的句子,了解LR分析方法是规范的从左向右扫描,和自底向上的语法分析方法。

3、实验方案:
根据所学知识,课下编写,课上编辑调试,并写出实验报告
实验三语义分析(6学时)
1、实验目的:
理解并掌握语义分析的过程
2、实验内容:
将非后缀式用来表示的算术表达式转换为用逆波兰式来表示的算术表达式,并计算用逆波兰式来表示的算术表达式的值。

3、实验方案:
根据所学知识,课下编写,课上编辑调试,并写出实验报告
教学环境条件:
1、课堂教学:多媒体教学进行教学,使学生能够很快掌握课程的主要知
识和解决问题的方法。

2、辅导和答疑:以习题课对课程中的重要概念和典型问题的解决方法进
行总结和深入讨论,巩固和加深课堂内学到的知识。

采用电子邮件方式直接与教师联系进行答疑。

3、自学与练习:除读懂教科书中所讲内容外,还需大量做题。

其目的是
要通过做题弄懂、加深对概念的理解,提高解决问题的能力。

为此,安排一定的实验上机学时。

考核方式:
考试类型:考试(闭卷)成绩为:平时成绩+实验成绩+卷面成绩,其中平时成绩占10%,实验成绩占20%,卷面成绩占70%。

课程主持人:薛琳
主讲老师:薛琳、张海英
主要教材:
《编译原理》吕映芝、张素琴、蒋维杜主编,清华大学出版社,1998年参考教材:
[1] 《编译原理》陈意云、张昱高等教育出版社2003年
[2] 《编译原理》胡伦骏、徐兰芳、刘建农电子工业出版社2002年
[3] 《程序设计语言编译原理(第三版)》陈火旺国防工业出版社2000

参考资料:
[1] 《编译原理习题精选与解析》陈意云、张昱高等教育出版社2005-9
[2] 《编译原理考点精要与解题指导》伍春香人民邮电出版社2002-9
[3] 《编译原理基础习题与上机题解答》刘坚、郭强、胡圣明西
安电子科技大学出版社2003-2
[4] 《编译原理》Alfred V.Aho、Ravi Sethi 机械工业出版社2003-9
[5] 《编译原理与实践》Kenneth C.Louden 机械工业出版社
2002-8
学习指导方案:
1、课外自学指导方案:
仔细阅读课本,掌握基本概念,通过典型例子掌握内容
2、课外训练指导方案:
通过作业掌握各种题目的做法大纲制定人:薛琳、张海英
大纲审核人:
大纲制定日期:2006年7月18日。

相关文档
最新文档