计算机编译原理名词解释_总结版
2.二义性文法:如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义性文法。
5.最左推导:任何一步α=>β都是对α中的最右非终结符替换。
6.语法:一组规则,用它可形成和产生一组合式的程序。长沟
7.文法:描述语言的语法结构的形式规则。
8.基本块:指程序中一顺序执行的语句序列,其中只有一个入口和一个出口,入口就是其中的第一个语句,出口就是其中的最后一个语句。
欧美头像情侣10.短语:令G 是一个文法,S 划文法的开始符号,假定αβδ是文法G 的一个句型,如果有S αAδ且A β,则称β是句型αβδ相对非终结符A 的短语。 12.规范句型:由规范推导所得到的句型。 13.扫描器:执行词法分析的程序。 15.句柄:一个句型的最左直接短语。 16.语法制导翻译:在语法分析过程中,根据每个产生式所对应的语义程序进行翻译的方法 叫做语法制导
翻译。 18.素短语:素短语是指这样一个短语,至少含有一个终结符,并且,除它自身外不再含任何更小的素短语。
20.语义:定义程序的意义的一组规则。 三种级别:局部优化、循环优化、全局优化
21.词法分析
词法分析的主要任务是从左向右扫描每行源程序的符号,按照词法规则从构成源程序的字符串中识别出一个个具有独立意义的最小语法单位,并转换成统一的内部表示(token),送给语法分析程序。 23.语法树
句子的树结构表示法称为语法树(语法分析树或语法推导树)。给定文法G=(V N ,V T ,P ,S),对于G 的任何句型都能构造与之关联的语法树。这棵树具有下列特征:(1)根节点的标记是开始符号S 。(2)每个节点的标记都是V 中的一个符号。(3)若一棵子树的根节点为A ,且其所有直接子孙的标记从左向右的排列次序为A 1A 2…A R ,那么A →A 1A 2…A R 一定是P 中的一条产生式。(4)若一标记为A 的节点至少有一个除它以外的子孙,则A ∈V N 。(5)若树的所有叶节点上的标记从左到右排列为字符串w ,则w 是文法G 的句型;若w 中仅含终结符号,则w 为文法G 所产生的句子。 25.语言和文法
文法就是语言结构的定义和描述,是有穷非空的产生式集合。文法G 定义为四元组的形式:G=(V N ,V T ,P ,S)其中:V N 是非空有穷集合,称为非终结符号集合;V T 是非空有穷集合,称为终结符号集合;P 是产生式的集合(非空);S 是开始符号(或识别符号)。这里,V N ∩V T =?,S ∈V N 。V=V N ∪V T ,称为文法G 的字母表,它是出现文法产生式中的一切符号的集合。文法G 所描述的语言用L(G)表示,它由文法G 所产生的全部句子组成,即L(G)={x| S ?*x ,其中S 为文法开始符号,且+
∈T V x }简单的说,文法描述的语言是该文法一切句子的集合。 26.词法分析
词法分析的主要任务是从左向右扫描每行源程序的符号,按照词法规则从构成源程序的字符串中识别出一个个具有独立意义的最小语法单位,并转换成统一的内部表示(token),送给语法分析程序。 31.编译过程的六个阶段:词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成
32.解释程序:把某种语言的源程序转换成等价的另一种语言程序——目标语言程序,然后再执行目标程序。解释方式是接受某高级语言的一个语句输入,进行解释并控制计算机执行,马上得到这句的执行结果,然后再接受下一句。 33.编译程序:就是指这样一种程序,
广东高考总分通过它能够将用高级语言编写的源程序转换成与之在逻辑上等价的低级语言形式的目标程序(机器语言程序或汇编语言程序)。
34.解释程序和编译程序的根本区别:是否生成目标代码
35.句子的二义性(这里的二义性是指语法结构上的。):文法G[S]的一个句子如果能找到两种不同的最左推导(或最右推导),或者存在两棵不同的语法树,则称这个句子是二义性的。
36文法的二义性:一个文法如果包含二义性的句子,则这个文法是二义文法,否则是无二义文法。 24.LR(0)分析器小学音乐课本
所谓LR(0)分析,是指从左至右扫描和自底向上的语法分析,且在分析的每一步,只须根据分析栈当前已移进和归约出的全部文法符号,并至多再向前查看0个输入符号,就能确定相对于某一产生式左部符号的句柄是否已在分析栈的顶部形成,从而也就可以确定当前所应采取的分析动作 (是移进还是按某一产生式进行归约等)。 22.LL(1)文法
若文法的任何两个产生式A → α | β都满足下面两个条件:(1)FIRST(α ) ? FIRST(β ) = φ;海森堡测不准原理
梦见买苹果(2)若β ?* ε ,那么FIRST(α ) ? FOLLOW( A ) = φ。我们把满足这两个条件的文法叫做LL(1)文法,其中的第一个L 代表从左向右扫描输入,第二个L 表示产生最左推导,1代表在决定分析器的每步动作时向前看一个输入符号。除了没有公共左因子外,LL(1)文法还有一些明显的性质,它不是二义的,也不含左递归。
37.LL(1)的含义:(LL(1)文法是无二义的; LL(1)文法不含左递归)第1个L :从左到右扫描输入串。第2个L :生成的是最左推导。1 :向右看1个输入符号便可决定选择哪个产生式
38.某些非LL(1)文法到LL(1)文法的等价变换: 1. 提取公因子 2. 消除左递归 39.文法符号的属性:单词的含义,即与文法符号相关的一些信息。如,类型、值、存储地址等。
76.什么是属性文法:它是在上下文无关文法的基础上,为每个文法符号配备若干相关的“值”(称为属性)。这些属性代表与文法符号相关的信息。
40.一个属性文法(attribute grammar)是一个三元组A=(G, V, F)
imei码怎么查询G :上下文无关文法。V :属性的有穷集。每个属性与文法的一个终结符或非终结符相连。属性与变量一样,可以进行计算和传递。F :关于属性的断言或谓词(一组属性的计算
规则)的有穷集。断言或语义规则与一个产生式相联,只引用该产生式左端或右端的终结符或非终结符相联的属性。
广州海南鸡饭
41.综合属性:若产生式左部的单非终结符A 的属性值由右部各非终结符的属性值决定,则A 的属性称为综合属。
42.继承属性:若产生式右部符号B 的属性值是根据左部非终结符的属性值或者右部其它符号的属性值决定的,则B 的属性为继承属性。(1)非终结符既可有综合属性也可有继承属性,但文法开始符号没有继承属性。(2) 终结符只有综合属性,没有继承属性,它们由词法程序提供。在计算时: 综合属性沿属性语法树向上传递(即传递信息的方向是自下而上);继承属性沿属性语法树向下传递(即传递信息的方向是自上而下)。 43.语法制导翻译:是指在语法分析过程中,完成附加在所使用的产生式上的语义规则描述的动作。
44.语法制导翻译实现:对单词符号串进行语法分析,构造语法分析树,然后根据需要构造属性依赖图,遍历语法树并在语法树的各结点处按语义规则进行计算。
49.符号表的一般形式:一张符号表的的组成包括两项,即名字栏和信息栏。 信息栏包含
许多子栏和标志位,用来记录相应名字和种种不同属性,名字栏也称主栏。主栏的内容称为关键字(key word )。
50.符号表的功能:(1)收集符号属性 (2) 上下文语义的合法性检查的依据: 检查标识符属性在上下文中的一致性和合法
性。(3)作为目标代码生成阶段地址分配的依据
51.符号的主要属性及作用:1. 符号名 2. 符号的类型 (整型、实型、字符串型等))3. 符号的存储类别(公共、私有)4. 符号的作用域及可视性 (全局、局部) 5. 符号变量的存储分配信息 (静态存储区、动态存储区)
53.静态存储分配:1、基本策略:在编译时就安排好目标程序运行时的全部数据空间,并能确定每个数据项的单元地址。2、适用的分配对象:子程序的目标代码段;全局数据目标(全局变量)3、静态存储分配的要求:不允许递归调用,不含有可变数组。FORTRAN 程序是段结构,不允许递归,数据名大小、性质固定。 是典型的静态分配
54.动态存储分配 :1、如果一个程序设计语言允许递归过程、可变数组或允许用户自由申
请和释放空间,那么,就需要采用动态存储管理技术。2、两种动态存储分配方式:栈式,堆式栈式动态存储分配策略:将整个程序的数据空间设计为一个栈。【例】在具有递归结构的语言程序中,每当调用一个过程时,它所需的数据空间就分配在栈顶,每当过程工作结束时就释放这部分空间。
21.优化:对程序进行各种等价变换,使得从变换后的程序出发,能产生更有效的目标代码。
57.什么是代码优化
所谓优化,就是对代码进行等价变换,使得变换后的代码运行结果与变换前代码运行结果相同,而运行速度加快或占用存储空间减少。
58.优化原则:等价原则:经过优化后不应改变程序运行的结果。