《《编译原理》课程教学大纲(计算机徐艳群).doc》由会员分享,可在线阅读,更多相关《《编译原理》课程教学大纲(计算机徐艳群).doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、编译原理PRINCIPLE OF COMPiLATION课程代码:学 时 数:总学时48(理论48) 学 分 数:2.5课程类别:学科基础选修课 开课学期:3适用专业:计算机科学与技术 开课单位:计算机与信息工程学院先修课程:汇编语言、数据结构、C语言程序设计、形式语言后续课程:无编写日期:2010年 8 月 10 日 一、课程性质和目的 课程性质:编译原理是计算机科学与技术专业学科基础选修课,编译技术是计算机科学中发展最迅速,最成熟的一个分支,集中体现了计算机的成果与精华。编译程序构造的基本原理和技术广泛地应用于一般软件的设计和实现中,可以帮助人们研究和开发系统软件和软件工具,本课程主要介绍
2、程序设计语言编译程序构造的一般原理、基本实现技术和一些自动构造工具等。目的:通过编译过程的介绍使学生能够掌握编译理论和方法方面的基本知识,全面了解编译系统的结构、工作流程及编译程序各组成部分的设计原理和实现技术,具有编写和维护编译程序等方面的初步能力,并为后续的专业课程的学习奠定基础。二、课程对本专业培养目标的贡献编译原理在计算机科学的理论、技术和方法上都对学生提供了系统而有效的训练,能够有效锻炼学生的逻辑思维能力、分析问题和解决问题的能力,有利于培养学生从事软件开发的素质和能力;该课程所介绍的一些原理和方法并不局限于编译,如有限自动机的原理、形式化描述的方法、自动生成的方法等等,对计算机专业
3、的许多问题的理解能够起到融会贯通的作用;深刻地理解高级语言程序运行的内部机制,有助于深刻理解和正确使用程序设计语言;设计开发编译程序的方法和技术同样可以用于其他软件的设计和开发。三、课程教学内容、学时分配和课程教学基本要求第1章 引论教学内容(小节及各节知识点):本章共分3小节1. 什么是编译程序;2. 编译过程和编译程序的结构:编译过程概述,编译程序的结构,编译阶段的组合;3. 解释程序和一些软件工具:解释程序,处理源程序的软件工具;教学要求:1. 理解编译程序的概念;2. 理解编译的过程;3. 了解编译程序与解释程序的区别;教学重点:1. 编译程序的概念;2. 编译的过程(词法分析、语法分
4、析、语义分析和中间代码的生成、代码优化、目标代码的生成);教学难点:1. 编译程序的概念;2. 编译的过程;学时分配:本章课堂讲授2学时;实践环节:作业要求: 通过课后的习题,使学生理解编译程序,解释程序和遍的基本概念,掌握编译过程各阶段的任务和编译程序的逻辑结构及其各部分的基本功能。第二章 文法和语言教学内容(小节及各节知识点):本章共分7小节1. 文法的直观概念;2. 符号和符号串:字母表,符号串,符号串的头尾,符号串的连接,符号串的方幂,符号串集合;3. 文法和语言的形式定义:文法、直接推导、句型和句子的定义;4. 文法的类型:0型文法,1型文法,2型文法和3型文法; 5. 上下文无关文
5、法及其语法树:语法树、最左(最右)推导、规范推导和规范句型的定义,文法二义性的判断;6. 句型的分析文法:自上而下的分析法,自下而上的分析法,短语、直接短语和句柄的定义; 7. 有关文法中的一些说明 :有关文法的实用限制,上下文无关文法中的e规则;教学要求:1. 理解文法、语言的基本概念;2. 了解字母表,符号串,符号串的头尾,符号串的连接和符号串的方幂等概念;3. 掌握语言的定义方法、符号串的推导;4. 了解文法的类型;5. 理解语法分析树的构造、了解文法的二义性判断方法;6. 理解句型的分析方法;教学重点:1. 文法和语言的形式定义:文法、直接推导、语法树的构造、句型和句子的定义;2. 句
6、型的分析文法:自上而下的分析法,自下而上的分析法,短语、直接短语和句柄的定义;教学难点:1. 文法和语言的定义;2. 短语、直接短语和句柄的分析;学时分配:本章课堂讲授8学时;实践环节:作业要求:通过课后的习题,使学生能够理解文法的概念,熟练掌握符号串的推导,语法分析树的构造,文法的二义性判断和对句型的分析。第三章 词法分析教学内容(小节及各节知识点):本章共分6小节1. 词法分析程序:词法分析器的功能和输出形式,词法分析器作为一个独立子程序;2. 单词的描述工具:正规文法,正规式;3. 有穷自动机:状态转换图,DFA,NFA,把NFA变为DFA, DFA的化简;4. 正规文法和有穷自动机间的
7、等价; 5. 正规文法和有穷自动机间的转换;6. 词法分析程序自动构造工具;教学要求:1. 了解词法分析器的功能和输出形式;2. 掌握正规文法正规式,两者之间的转换;3. 掌握状态转换图,DFA ,NFA,把NFA变为DFA, DFA的化简;4. 掌握正规文法和有穷自动机间的转换;教学重点:1. 词法分析程序:词法分析器的功能和输出形式,词法分析器作为一个独立子程序; 2. 单词的描述工具:正规文法,正规式;3. 有穷自动机:状态转换图,DFA,NFA,把NFA变为DFA, DFA的化简;4. 正规文法和有穷自动机间的转换;教学难点:1. 单词的描述工具:正规文法,正规式;2. 有穷自动机:正
8、规文法的状态转换图,DFA,NFA,把NFA变为DFA, DFA的化简;3. 正规式和有穷自动机间的转换;学时分配:本章课堂讲授12学时实践环节:作业要求: 通过课后的习题,使学生能够熟练地掌握正则文法、状态转换图、DFA、NFA、NFA的确定化和最小化,状态转换矩阵到状态转换图的转化,正规式和正规集的基本概念。第四章 自顶向下语法分析方法教学内容(小节及各节知识点):本章共分5小节1. 确定的自顶向下分析思想:First集与Follow集的定义;2. LL()文法的判别;3. 某些非LL(1)文法到LL(1)文法的等价变换;4. 不确定的自顶向下分析思想;5. 确定的自顶向下分析方法;教学要
9、求:1. 了解确定的自顶向下分析思想,掌握First集与Follow集的构造算法;2. 掌握LL(1)文法的判别方法;3. 掌握某些非LL(1)文法到LL(1)文法的等价变换方法;4. 了解不确定的自顶向下分析思想;5. 掌握LL(1)分析方法;教学重点:1. First集与Follow集的构造算法;2. LL(1)文法的判别方法;3. 某些非LL(1)文法到LL(1)文法的等价变换方法;4. LL(1)分析方法;教学难点:1. First集与Follow集的构造算法;2. 非LL(1)文法的改造:消除左递归,消除回溯;3. LL(1)分析法;学时分配:本章课堂讲授6学时实践环节:作业要求:通
10、过课后的习题,使学生能够熟练地掌握LL(1)分析表的构造及左递归和回溯的消除。第五章 自底向上优先分析教学内容(小节及各节知识点):本章共分4小节1. 自底向上优先分析概述;2. 简单优先分析法:优先关系,简单优先文法,简单优先文法的分析步骤;3. 算符优先分析法:直观算符优先分析法,算符优先文法的定义,算符优先关系表的构造,算符优先分析法;4. 优先函数法;教学要求:1. 了解自底向上优先分析法;2. 了解优先关系的定义,掌握简单优先分析法;3. 掌握算符优先分析法:直观算符优先分析法,算符优先文法的定义,算符优先关系表的构造;4. 了解优先函数的构造方法;教学重点:1. 简单优先分析法;2
11、. 算符优先文法的定义,算符优先关系表的构造,算符优先分析法;教学难点:1. 简单优先分析法;2. 算符优先分析法;3. 优先函数的构造方法学时分配:本章课堂讲授6学时实践环节:作业要求:通过课后的习题,使学生能够熟练地掌握简单优先分析和算符优先分析方法。 第六章 LR分析教学内容(小节及各节知识点):本章共分4小节1. LR(0)分析表的构造;2. SLR(1)分析表的构造;3. LR(1)分析表的构造;4. LALR(1)分析表的构造教学要求:1. 理解并掌握LR(0)分析表的构造;2. 理解并掌握SLR(1)分析表的构造;3. 理解并掌握LR(1)分析表的构造;4. 理解并掌握LALR(
12、1)分析表的构造;教学重点:LR分析思想;1. LR(0)分析表的构造;2. SLR(1)分析表的构造;3. LR(1)分析表的构造;4. LALR(1)分析表的构造;教学难点:1. LR(0)分析;2. SLR(1)分析;3. LR(1)分析;3. LALR(1)分析学时分配:本章课堂讲授6学时实践环节:作业要求:通过对课后习题的讨论和讲解,使学生能够熟练地掌握LR(0)分析表、SLR分析表及LALR分析表的构造。第七章 语法制导翻译和中间代码生成教学内容(小节及各节知识点):本章共分7小节1. 属性文法;2. 语法制导翻译概论;3. 中间代码的形式;4. 简单赋值语句的翻译;5. 布尔表达
13、式的翻译;6. 控制结构的翻译;7. 数组和结构的翻译;教学要求:1. 理解属性文法、语法制导翻译方法;2. 理解中间代码的形式;3. 掌握简单赋值语句的翻译;4. 掌握布尔表达式的翻译;5. 掌握控制结构的翻译;6. 理解数组和结构的翻译;教学重点:1. 中间代码的形式;2. 简单赋值语句的翻译;3. 布尔表达式的翻译;4. 控制结构的翻译;5. 数组和结构的翻译;教学难点:1. 布尔表达式的翻译;2. 控制结构的翻译;3. 数组和结构的翻译;学时分配:本章课堂讲授8学时实践环节:作业要求:通过对课后习题的讨论和讲解,使学生能够熟练地掌握控制语句的翻译。四、各教学环节学时分配 章节主要内容各
14、教学环节学时分配作业题量讲课实验讨论习题其他小计1引论221-22文法和语言883-43词法分析12121-24自顶向下语法分析方法661-25自底向上优先分析661-26LR分析661-27语法制导翻译和中间代码生成881-3合计48489-17五、本课程与其它课程的联系和分工 该课程的先修课程为汇编语言、数据结构、操作系统、C语言程序设计等。这四门课程中的汇编语言及C语言的语法、数据结构的内容、操作系统的存储器管理是本课程的基础。本课程主要是介绍程序设计语言编译构造的基本原理和基本实现方法,对汇编语言、C语言的语法、数据结构的线性结构的要求较高,如词法分析程序的设计、自顶向下语法分析、语法
15、制导翻译等,与后续相关课程联系紧密,如自动机等。六、本课程的考核方式 本课程考核采取实践成绩结合期末考试成绩的方式进行,具体分值组成为:总成绩 = 平时成绩(20%)+ 期末考试成绩(80%)。七、建议教材与教学参考书 教材: 张素琴,吕映芝等.编译原理(第2版).北京:清华大学出版社,2007参考书:1 秦振松.编译原理及编译程序构造.南京:东南大学出版社,19972 陈意云,马万里.编译原理与技术.合肥:中国科学技术大学出版社,1991 3 何炎祥.编译原理.北京:高等教育出版社,2004 八、课程简介 本课程是计算机科学与技术专业学科基础课程选修课。本课程重点研究形式语言、有限自动机、自顶向下和自底向上的语法分析、LR分析方法、属性文法和语法制导翻译等。通过本课程的学习,使学生了解编译程序工作的基本过程及其各阶段的基本任务、编译程序的生成过程和构造工具,掌握词法分析器设计的原理、语法分析的分析方法和语法制导翻译的基本原理,能设计并实现一个简单的编译器。为后续课程的学习和今后从事专业技术打下坚实的基础。执笔人:徐艳群 审核人: 郭常盈 教学主任(院长):张凌晓
限制150内