《编译原理》教学大纲

导读:《编译原理》课程教学大纲,使学生掌握编译程序的一般构造原理,包括语言基础知识、词法分析程序设计原理和构造方法,各种语法分析技术和中间代码生成符号表的构造、代码优化、并行编译技术常识及运行时存,教学目的和要求:,教学目的:培养学生掌握构造编译程序的基本原理与设计方法,本课程坚持理论与实践教学并重的原则,教学要求:通过本课程的学习,学生应掌握形式语言理论与编译实现相关的基础概念,了解与掌握编译程序

《编译原理》教学大纲

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

英文名称:Compiler Principles 课程类型:专业选修课 学时/学分:48/3

授课对象:计算机科学与技术专业本科生 先修课程:离散数学,数据结构,C程序设计 课程简介:

本课程属于计算机科学与技术专业的一门重要的专业选修课。通过本课程学习,使学生掌握编译程序的一般构造原理,包括语言基础知识、词法分析程序设计原理和构造方法。各种语法分析技术和中间代码生成符号表的构造、代码优化、并行编译技术常识及运行时存储空间的组织等基本方法和主要实现技术。它有一定的理论性,又有一定的实践性,尤其是本课程的知识与计算机应用中很多领域有紧密联系与广泛应用。了解与掌握本课程的基本内容将有利于学生提高专业素质和适应社会多方面需要的能力。

教学目的和要求:

教学目的:培养学生掌握构造编译程序的基本原理与设计方法,为培养计算机语言与大型应用程序的开发人才打下良好的基础。本课程坚持理论与实践教学并重的原则,理论上主要叙述语言和文法的形式定义、自动机理论、词法分析、语法和语义分析、优化和代码生成等环节的基本理论和方法。

教学要求:通过本课程的学习, 学生应掌握形式语言理论与编译实现相关的基础概念, 了解与掌握编译程序构造的基本原理与技术, 从形式语言理论的角度, 进一步认识与理解程序设计语言及其与编译程序的联系。做习题是理解课程中基本概念、培养思考能力和解题能力的重要方面, 要求学生认真做好习题, 并注意解题规范化。

教学内容:

第1章 编译程序概述(2学时) 1、教学内容:

1.1 什么是编译程序 1.2 编译过程概述 1.3 编译程序的结构 1.4 编译阶段的组合 1.5 编译技术和软件工具 2、教学重点:

编译程序的结构

3、教学难点:

编译程序的结构,以及每一阶段任务 第2章 文法与语言(6学时) 1、教学内容:

2.1 文法的直观概念

2.2 符号和符号串 2.3 文法与语言的形式定义 2.4 文法的分类

2.5 上下文无关文法及其语法树 2.6 句型的分析

2.7 有关文法实用中的一些说明 2、教学重点:

与编译技术密切相关的一些术语和概念。 3、教学难点:

句型的分析

第3章 词法分析(6学时) 1、教学内容:

3.1 词法分析程序的设计 3.2 单词的描述工具 3.3 有穷自动机

3.4 正规式和有穷自动机的等价性 3.5 正规文法和有穷自动机间的转换 3.6 词法分析程序的自动构造工具 2、教学重点:

正规式与有穷自动机和正规文法与有穷自动机转换

3、教学难点:

不确定的有穷自动机转换为确定的有穷自动机及最小化 第4章 自顶向下语法分析方法(4学时) 1、教学内容:

4.1 确定的自顶向下分析思想 4.2 LL(1)文法的判定

4.3 某些非LL(1)文法到LL(1)文法的等价变换 4.4 不确定的自顶向下分析思想 4.5 确定的自顶向下分析方法 2、教学重点:

确定的自顶向下分析方法

3、教学难点:

预测分析方法的分析表的构造、消除某些文法中的左递归 第5章 自底向上优先分析法(4学时) 1、教学内容:

5.1 自底向上优先分析法概述

5.2 简单优先分析法 5.3 算符优先分析法 2、教学重点:

算符优先分析法的关系表的构造以及分析过程

3、教学难点:

算符优先分析法的关系表的构造以及优先函数

第6章 LR分析法(8学时) 1、教学内容:

6.1 LR分析法的概述 6.2 LR(0)分析 6.3 SLR(1)分析 6.4 LR(1)分析 6.5 LALR(1) 分析

6.6 二义性文法在LR分析中的应用 2、教学重点:

LR(0)分析与LR(1)分析方法

3、教学难点:

构造LR 分析法的分析表

第7章 语法制导翻译和中间代码生成(8学时) 1、教学内容:

7.1 属性文法

7.2 语法制导翻译的概述 7.3 中间代码的形式 7.4 简单赋值语句的翻译 7.5 布尔表达式的翻译 7.6 控制结构的翻译 7.7 说明部分的翻译 7.8 数组与结构的翻译 2、教学重点:

中间代码的形式、布尔表达式的翻译与控制结构的翻译

3、教学难点:

布尔表达式与控制结构的语义过程

第8章 目标程序运行时的存储组织(4学时) 1、教学内容:

8.1 数据空间的三种不同使用方法和管理方法 8.2 栈式存储分配的实现 8.3 参数传递

8.4 过程调用、过程进入和过程返回 2、教学重点:

栈式存储分配的实现

3、教学难点:

嵌套过程语言的栈式实现和分程序结构的存储管理

第9章 代码优化(4学时) 1、教学内容:

9.1优化技术的简介 9.2局部优化

9.3控制流分析和循环优化 9.4数据流的分析与全局优化 2、教学重点:

重点介绍几种优化技术、局部优化以及循环优化 3、教学难点:

循环优化的过程

第10章 代码生成(2学时) 1、教学内容:

11.1代码的生成概述 11.2一个计算机模型 11.3一个简单的代码生成器 11.4代码生成研究现状 2、教学重点:

一个简单的代码生成器 3、教学难点:

待用信息链表法及代码生成算法

主要教材:

《编译原理(第2版)》吕映芝、张素琴、蒋维杜主编,清华大学出版社,2005年

参考教材:

[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、课外训练指导方案:

仔细阅读课本,掌握基本概念,通过典型例子掌握内容。

五星文库wxphp.com包含总结汇报、资格考试、党团工作、IT计算机、文档下载、教学研究以及《编译原理》教学大纲等内容。