还剩1页未读,继续阅读
文本内容:
(7)《编译原理》学习指导大纲一.课程的性质和目的《编译原理》是计算机与应用专业必修课程设置本课程的目的是
(1)使学生了解程序语言编译系统的结构及各部分的功能;
(2)使学生掌握设计和构造程序语言编译系统的基本原理和技术.二.课程内容编译概述、语言的基本知识,词法分析,语法分析,语法制导翻译,符号表,运行时刻环境,中间代码生成,优化,目标代码生成,并行编译基础三.各章重点内容1.编译概述、语言的基本知识知识点文法和语言的形式定义,分析树和二义性,形式语言概观要求·了解0型,1型文法的定义·理解字母表,符号事的定义及符号事的有关术语,子树·深刻理解上下文无关文法,推导,语言,最左推导,最右推导,分析树和二义性·掌握符号串及符号串集会的运算·熟练掌握
(1)已知上下文无关文法G和句型W,构造出w的推导,最左推导,最右推导,分析树;
(2)判定上下又无关文法G是二义性的
(3)已知上下文无关文法G,求出L,使得L=L(G);已知上下文无关语言L,求出G,使得L(G)=L.(注
(2)和
(3)针对难度不大的问题)2.编译概述知识点翻译和解释,编译程序的组成部分,有关编译程序的设计与实现要求·了解翻译和解释·理解编译程序的组成部分和遍的概念3.词法分析知识点词法分析程序的功能,输入缓冲,正规表达式与正规集,正规表达式与正规文法,壮态转换图与基本符号的识别,有限自动机要求·理解词法分析程序的功能词法分析程序与语法分析程序的关系·深刻理解正规表达式,有限自动机,正规文法以及三者之间的等价性;确定的有限自动机和非确定的有限自动机之间的等价性·掌握设置输入缓冲区·熟练掌握
(1)对于某一程序语言,设置其词类种别编码和词类符号,画出其识别各种词类的确定的有限自动机,用某一程序语言实现它
(2)对于某一正规集,写出其正规表达式,构造其非确定的有限自动机、确定的有限自动机,并将其最小化4.语法分析知识点语法分析器的作用,书写文法要求·深刻理解语法分析器的作用,左递归文法不能用来构造自顶向下分析,·掌握对于已知文法G,构造其LR1分析表,LALR
(1)分析表·熟练掌握
(1)自顶向下分析对于已知文法G,消除二义性,消除左递归,提取左公因子,构造其预测的递归下降分析器,求其FIRST和FOLLOW集,构造其LL
(1)分析表
(2)自底向上分析规范规约找出W的短语,直接短语和句柄算符优先分析法对于已知表达式文法G,构造其算符优先关系表和优先函数自底向上分析是移近一归约分析,关键是求规范句型的句柄LR分析器的逻辑结构和工作过程LR分析器
(3)对于已知文法G,构造其含LR
(0)项目识别其活前缀的确定的有限自动机,构造其SLR
(1)分析表;构造其含LR
(1)项目识别其活前缀的确定的有限自动机,构造其LR
(1)分析表及用LR分析思想处理二义性文法5.语法制导翻译知识点语法制导定义,抽象语法树的构造,S-属性定义及其自底向上计算属性,L-属性定义,自顶向下的翻译,自底向上计算继承属性要求·理解语法制导翻译·深刻理解属性,综合属性,继承属性,依赖图,计算顺序,语法树,语法制导定义,S-属性定义,L-属性定义,翻译模式·熟练掌握对于已知文法G和翻译任务,构造其L-属性定义,将其改造成适于自顶向下分析或自底向上分析的翻译模式6.中间代码生成知识点中间语言,说明语句,赋值语句,布尔表达式,CASE语句,过程调用语句,控制流语句的翻译以及回填技术要求·理解三元式,间接三元式深刻理解语法树,有向非循环圈,三地址代码,四元式,三元式,逆波兰表示·掌握布尔表达式(求值)以及CASE语句翻译·熟练掌握
(1)程序中说明的处理,重要的是在符号表中维持作用域信息;
(2)数组元素,赋值语句,过程调用语句的翻译模式;
(3)用回填技术实现布尔表达式和控制流语句的翻译7.符号表符号表的组织,重要的是在符号表中维持作用域信息8.运行时刻环境知识点有关源语言中一些问题的讨论,存储组织,运行时刻存储分配策略,对非局部名子的访问,参数传递,要求·了解动态作用域,堆式存储分配·理解静态存储分配,参数传递方式,符号表的表项·深刻理解程序结构,活动树,控制栈,活动记录,栈式存储分配,访问链(存取链),display表·掌握把符号表组织成线性表或散列表·熟练掌握
(1)对于已知过程,设计出其活动记录;2对于已知程序,若采用钱式存储分配,随着程序的执行,画出相应动态栈,访问键(存取链)以及display表的变化;反之,根据动态栈,访问链(存”取键)以及display表的变化,画出相应的程序结构8.优化熟练掌握
(1)局部优化基本块,流图,DAG优化
(2)循环优化代码外提,强度消弱,删除归纳变量9.目标代码生成知识点目标机器,运行存储管理,待用信息,一个简单的代码生成器,基本块的DAG表示法,从DAG生成目标代码要求·理解目标机器·深刻理解待用信息,基本块的DAG表示法·掌握计算变量的下次引用信息;一个简单的代码生成器;从DAG生成目标代码·熟练掌握对于已知三地址代码,画出其基本块和流图;对于一个基本块,画出其DAG表示法寄存器的分配在循环中将寄存器固定分配给节省执行代价最多的变量使用10.并行编译基础主要掌握并行体系结构,及数据依赖关系。