《编译原理》课程教学大纲

Posted tea_year

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《编译原理》课程教学大纲相关的知识,希望对你有一定的参考价值。

《编译原理》课程教学大纲
课程编号:773033
课程名称(中/英文):编译原理 / Compiler Principle
课程类型: 模块课
总 学 时:5学时/周 讲课学时:4学时/周 实验学时:1学时/周
学  分:4学分
适用对象: 软件开发各专业方向
先修课程:程序设计、计算机组成原理、数据结构、操作系统
后续课程:人工智能、数据挖掘
开课单位:软件与应用科技学院

一、课程性质和教学目标
《编译原理》课程是计算机科学与技术专业的一门重要专业课。本课程系统讲述程序设计语言的编译程序的概念、构造、以及实现的主要算法和技术。通过本课程的学习,使学生掌握编译程序的前三个逻辑阶段:在词法分析中,深入理解正规表达式与有限自动机的理论和不确定的有限自动机转化为确定有限自动机的方法;在语法分析中,理解上下文无关方法的概念,掌握自上而下分析和自下而上分析的方法,深入理解消除左递归、消除回溯、提取左因子的方法和LL(1)分析法;在语义分析和中间代码生成中,掌握属性文法和语法制导翻译的基本思想、中间代码的格式和语句翻译的方法。了解编译程序的后两个阶段:优化和目标代码生成。除此之外,还需对符号表管理以及运行时存储空间组织的管理方法加以了解。为今后从事编译及其他有关软件的研究和开发工作打下较为坚实的基础。

二、教学基本要求
通过本课程的学习,应使学生达到以下基本要求:
1、正确理解什么是编译程序,掌握编译程序工作的基本过程及其各阶段的基本任务,熟悉编译程序总体框架,了解编译程序的生成过程和构造工具。
2、熟悉并掌握上下文无关文法基本概念,包括:文法的定义、编写、句型、句子、语言、语法树、二义性等,理解三种参数传递方式:传值、传地址、传名的含义。
3、熟悉并掌握词法分析器功能及形式、词法分析器设计的原理、状态转换图的原理及使用方法。
4、熟悉并掌握自上而下分析的基本思想、递归下降分析的基本方法、消除左递归和回溯的方法、构造递归下降子程序的方法,预测分析程序的基本原理和预测分析表的构造方法、LL(1)方法。
5、熟悉并掌握自下而上语法分析的基本思想以及归约、短语、句柄、分析树等概念,掌握算符优先分析基本方法,算符优先表和和算符优先函数构造技术。
6、熟悉并掌握语法制导翻译基本原理、基于属性文法的处理方法、自上而下分析制导翻译基本思想和实现方法。
7、掌握常见的几种中间语言:四元式、三元式、逆波兰表示,掌握各种语句到四元式的翻译方法,包括简单算术表达式,布尔表达式,控制语句,数组引用,过程调用等。
8、理解符号表的作用及符号表组织和使用方法,了解名字的作用范围,了解符号表中一般应包含的内容。

三、教学内容及要求
第1章 引论

  1. 课程性质与任务
  2. 编译过程概述
  3. 编译程序的结构
    教学目的:理解并掌握编译程序的各个逻辑阶段及各阶段的意义、遍的概念。

第2章 高级语言及其语言描述
1.程序语言的定义
2.高级语言的分类
3.语句与控制结构
4.上下文无关文法
5.语法分析树与二义性
教学目的:理解并掌握符号串和符号串集合的相关概念以及相关运算、上下文无关文法、推导与归约、语法分析树、二义性、形式语言鸟瞰,即四种类型的文法。

第3章 词法分析
1.词法分析器的要求
2.词法分析器的设计
3.正规表达式
4.有限自动机
5.词法分析器的自动产生
教学目的:理解并掌握词法分析器的相关概念、状态转换图、NFA、DFA、NFA与DFA的转换、DFA的化简、正规式与正规集。

第4章 语法分析—自上而下分析
1.语法分析器的功能
2.自上而下分析面临的问题
3.LL(1)分析法
4.递归下降分析程序构造
5.预测分析程序
6.LL(1)分析中的错误处理
教学目的:理解并掌握语法分析器的相关概念、自上而下分析面临的问题、左递归的消除、公共左因子的提取、first集和follow集、LL(1)文法的条件以及LL(1)分析表的构造及预测分析过程。

第5章 语法分析—自下而上分析
1.自下而上分析基本问题
2.算符优先分析
3.语法分析器的自动产生工具
教学目的:理解并掌握算符优先分析算法、LR分析步骤、掌握LR(0)分析表、SLR分析表、规范LR分析表、LALR分析表的画法。

第6章 属性文法和语法制导翻译
1.属性文法
2.基于属性文法的处理方法
3.S-属性文法的自下而上计算
4.L-属性文法和自顶而下翻译
5.自上而下计算
教学目的:理解并掌握综合属性、继承属性、S-属性文法、L-属性文法、语法制导定义、翻译模式。

第7章 语义分析和中间代码生成
1.中间语言
2.说明语句
3.赋值语句的翻译
4.Bool表达式的翻译
5.控制语句的翻译
6.过程调用的处理
7.类型检查
教学目的:理解并掌握中间语言的表示形式、布尔表达式和控制语句的翻译。

第8章 符号表
1.符号表的组织与作用
2.整理与查找
3.名字的作用与范围
4.符号表的内容
教学目的:理解并掌握符号表的组织与作用。

四、课程建设与改革
编译原理的教学内容涉及大量的理论知识,这些知识比较抽象且逻辑复杂,如形式语言理论、正规式、有限自动机理论、上下文无关文法、自下而上分析、自上而下分析,属性文法和语法制导翻译等。大量的概念、算法和符号很容易使学生对学习产生恐惧心理,而且大量的理论知识与有限的教学时间之间的冲突,使得教师很难将所有内容都详细展开、深入讲解。最终导致学生在学完整门课程之后,只在表面了解,而不知道各知识点在编译器中究竟有什么作用。
为了解决上述问题,在课堂教学中,教师针对学生情况优化和调整教学内容,避免教师唱“独角戏”,强调学生的参与性。以“问题”为中心,以“学习”为目标,坚持授人以渔的原则,引导学生、启发学生,调整教师和学生在教学活动中的角色,在维持教师主导地位的同时,强调学生的主体地位。根据编译原理的特点,可以使用两种教学模式。一是在教师的组织下,学生通过问题进行学习,再通过学习来解决问题。二是使学生模拟科学家从事科研过程的方式,教师不直接参与其中,只在必要时给予学生一定的指导。

五、各教学环节学时分配
讲课 习题课 讨论课 实验 其他 合计
第一章 引论 4 0 0 0 0 4
第二章 高级语言及其语言描述 8 0 0 2 0 10
第三章 词法分析 12 2 0 2 0 16
第四章 语法分析—自上而上分析 10 0 0 4 0 14
第五章 语法分析—自下而上分析 16 0 0 4 0 20
第六章 属性方法和语法制导翻译 4 2 0 4 0 10
第七章 语义分析和中间代码生成 2 0 0 0 0 2
第八章 符号表 1 3 0 0 0 4
合计 57 7 0 16 0 80

六、考核及成绩评定方式

  1. 教学大纲所规定的教学内容和教学要求,是考核的唯一依据。考核要突出解决问题的能力和实践能力,知识要点最好能从考核中体现。
  2. 考核成绩评定:采用百分制,包括理论部分与平时成绩部分,总成绩不及格者补考。总成绩比例:理论部分70% + 平时成绩部分30%。
  3. 考试形式:理论部分为课程结束后闭卷机试,平时成绩部分为平时作业及考勤。

七、教材和参考书目 (黑体,小4号字)
教 材:《程序设计语言编译原理 (第3版)》,陈火旺、刘春林编著,国防工业出版社,2007年。
参考书目:
(1)陈意云、张昱,编译原理(第3版),高等教育出版社, 2014
(2)陈意云、张昱,编译原理习题精选与解析(第3版),高等教育出版社,2014
(3)Alfred V.Aho,编译原理,机械工业出版社,2009
(4)Alfred V.Aho, Ravi Sethi, Jeffrey D.Ullman, 编译原理 技术与工具(英文版), 人民邮电出版社 ,2002
(5)Louden, K.C, 编译原理及实践(英文版), 中信出版社 ,2004

大纲制订人:
大纲审定人:
制订日期:

以上是关于《编译原理》课程教学大纲的主要内容,如果未能解决你的问题,请参考以下文章

《编译原理》课程教学大纲

《编译原理》课程教学大纲

编译原理教学日历

编译原理教学日历

对编译原理这门课程的看法

《编译原理》课程标准