《编译技术》课程教学大纲

《编译技术》课程教学大纲
《编译技术》课程教学大纲

《编译技术》课程教学大纲

英文名称:Compiler Technology

课程类型:学科基础课

学时/学分:56/3.5

适用专业:计算机科学与技术

一、课程性质、目的和任务

编译技术是计算机科学与技术专业重要的学科基础课之一,目的是使学生掌握编译程序的相关理论知识;理解编译程序构造的一般原理;了解编译程序的基本设计方法和主要实现技术。其任务是让学生掌握编译程序的相关概念和一般原理;掌握词法分析和语法分析的常用分析方法;理解编译程序翻译高级语言的原理和翻译过程,把学生培养成为知识面宽、动手能力强的适应社会发展和需要的高级应用型人才。

二、教学基本要求

1.编译程序概述

了解语言处理程序的含义及种类;理解编译程序的工作原理;掌握编译程序的相关概念及各组成部分的功能。

2.词法分析

了解词法分析器的任务;理解有限自动机的理论;掌握正规式的定义和状态转换图的表示方法。

3.语法分析

了解语言和文法的知识;理解上下文无关文法的定义和产生式的含义;掌握自上而下和自下而上两种分析方法。

4.语义分析概述

了解符号表的操作及完善过程;理解语义分析的概念和静态语义分析的内容;掌握正下而上语法制导翻译的语义分析方法。

5.运行时存储空间的组织和管理

了解动态存储分配策略;理解参数传递的种类和方法;掌握过程的定义方法、名字的作用域及其引用规则。

6.中间代码生成

了解分支语句和控制语句的中间代码表示及翻译方法;理解赋值语句和布尔表达式的中间代码表示及翻译方法;掌握后缀表示,语法树和三地址代码的中间表示方法。

7.目标代码生成

了解指令的选择、寄存器的分配方法和目标机器的指令系统;理解指令代价的计算方法和流图的概念及表示方法;掌握目标程序的种类和特点、基本块的定义及表示方法。

三、课程内容

1.编译程序概述

1.1编译程序的概念

1.2编译程序的组成

重点:翻译程序和编译程序的概念

难点:词法分析程序和语法分析程序的分析方法,

2.词法分析

2.1词法记号及属性

2.2词法记号的描述与识别

2.3有限自动机

重点:词法记号和词法单元等相关概念,NFA和DFA的构成及表示方法

难点:NFA到DFA的转换方法

3.语法分析

3.1上下文无关文法

3.2语言和文法

3.3自上而下分析

3.4 自下而上分析

3.5 LR分析器

重点:终结符、非终结符和推导的含义,非递归预测分析方法,用栈实现移进—归约分析,LR 分析器的工作原理;

难点:模式的含义和产生式的表示,文法左递归的消除方法,LL(1)文法,LR分析方法。4.语义分析

4.1 语义分析概述

4.2 符号表

重点:自下而上语法制导翻译的语义分析的原理,符号表的概念及内容;

难点:自下而上语法制导翻译的语义分析方法,符号表的操作及完善过程。

5.运行时存储空间的组织和管理

5.1 局部存储分配策略

5.2 全局存储分配策略

5.3 非局部名字的访问

5.4 参数传递

重点:过程的定义和局部数据的存储安排,静态分配的含义及分配方法,参数的值调用方法;

难点:名字的作用域,动态分配,参数的引用调用方法。

6.中间代码生成

6.1 中间代码的种类

6.2声明语句的翻译

6.3赋值语句的翻译

6.4布尔表达式及控制语句的翻译

重点:后缀表示和三地址代码,赋值语句的文法,布尔表达式的中间代码翻译;

难点:翻译时变量地址的计算方法,赋值语句的翻译方法,控制语句的翻译方法。

7.目标代码生成

7.1目标代码生成器设计中的的问题

7.2 目标机器

7.3基本块和流图

重点:目标代码和种类和特点,指令系统,基本块和流图的含义和划分方法;

难点:指令选择和寄存器的分配方法,指令代价的计算。

四、实验(上机)内容及要求

实验题目:词法分析程序的设计

实验目的:通过完成词法分析程序,了解词法分析的过程,加深对词法分析原理的理解。

实验内容及要求:用C语言编写一个词法分析程序,使其完成词法分析的功能。学生可以通过上网等方式查阅词法分析程序的相关资料,进一步理解词法分析程序的工作原理和分析过程。

源程序进行词法分析后,将形成内部输出形式。

实验步骤:1、设计主要数据结构。

2、设计程序结构和算法。

3、编码实现

4、程序调试和实例测试。

五、教学环节学时分配

六、选用教材及参考教材

1.教材

编译原理.陈意云,张昱.高等教育出版社,2003.

2.参考教材

编译程序构造原理和实现技术.金成植.高等教育出版社,2000.

七、说明

1.修订大纲的指导思想

教学大纲必须体现课程建设的指导思想,是组织教学过程及安排教学任务的基本依据。因此,按照教育部《普通高等学校计算机基础教育教学基本要求(本科)》,在遵循国家教育部有关文件精神的基础上,对大纲进行了修订。新的教学大纲注重突出整体优化的原则,提高学生的科学素养,将实践能力和创新精神的培养融为一体,使其符合基本的教学规律和社会、经济、科学技术发展的要求,实现我们的培养目标。

2.本课程与其它课程的联系

先行课:高级程序设计语言(C / PASCAL)、汇编语言、数据结构

后续课:软件工程

3.教学方式与教学方法的具体改革措施

本课程以课堂讲授为主,结合上机实践,注意培养学生的自学能力与动手实践能力,提高程序设计水平。实践环节建议在C语言环境下,学生能通过上网查阅等方式,查找有关词法分析的相关资料,编写出相应程序,然后进行程序的调试,实现词法分析和语法分析的功能。

4.在教学过程中,课堂讲授多采用CAI辅助教学形式和启发式的教学方式,从调动学生自身学习的积极性、引导学生主动思考问题、强调知识的连贯性等方面入手,进而使学生在完成相关内容学习的同时,还可提高学生计算机专业素质,培养学生的抽象思维能力。

相关主题
相关文档
最新文档