1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
| 或给定文法规范句型的可归前缀的任意首部。 4)简单短语 答:简单短语——设G[Z]是给定文法,w=xuy∈V+,为该文法的句型,如果满足下面两个条件: ① Z xUy; ② Uu; 则称句型xuy 中的子串u是句型xuy的简单短语。 5)扫描遍 答:扫描遍——指编译程序对源程序或中间代码程序从头到尾扫描一次。 6)句柄 答:句柄——给定句型中的最左简单短语就是句柄。 7)句型 答:句型——设G是一个给定的文法,S是文法的开始符号,如果Sx(其中x∈V*),则称x是文法的一个句型。 8)句子 答:句子——设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈VT*),则称x是文法的一个句子。 9)非终结符 答:非终结符—出现在文法产生式的左部且能派生出符号或符号串的那些符号称为非终结符号。 10)终结符 答:终结符——出现在文法产生式的右部且不能派生出符号或符号串的那些符号称为终结符号。 11)属性文法 答:一个属性文法形式的定义为一个三元组AG,AG=(G,V,E)。 其中G为一个上下文无关文法;V为属性的有穷集;E为一组语义规则。 12)语法制导翻译 答:语法制导翻译——语法制导翻译就是在语法分析的过程中,当进行推导或归约时同步完成附加在所使用的产生式上的语义规则描述的动作,从而实现语义处理。 13)后缀式 答:后缀式——一种把运算量(操作数)写在前面,把算符写在后面(后缀)的表示法。 14)短语 答:短语——设G[Z]是给定文法,w=xuy∈V+,为该文法的句型,如果满足下面两个条件: ① Z xUy; ② U u; 则称句型xuy 中的子串u是句型xuy的短语。 或:句型语法树的全部子树的叶从左到右排列起来构成的符号串均是句型的短语。 15)基本块 答:基本块——源程序或者中间代码程序中只有一个入口和一个出口的顺序执行的代码段。 16)语义规则 答:对于文法的每个产生式都配备了一组属性的计算规则,称为语义规则。 17)语法分析 答:语法分析——按文法的产生式识别输入的符号串是否为一个句子的分析过程。 18)四元式 答:四元式——是一个带有四个域的记录结构,这四个域分别称为操作符域、左运算对象域、右运算对象域及运算结果域。 二.简答题: 什么是句子? 什么是语言? 解答:句子——设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈VT*),则称x是文法的一个句子。 语言——语言是句子的集合。 或——设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为:L(G)={x│Sx,x∈VT*} 。 DFA与NFA有何区别 ? 解答:DFA与NFA的区别表现为两个方面:一是NFA可以有若干个开始状态,而DFA仅只有一个开始状态。另一方面,DFA的映象M是从K×∑到K,而NFA的映象M是从K×∑到K的子集,即映象M将产生一个状态集合(可能为空集),而不是单个状态。 自顶向下的语法分析方法的基本思想是什么? 解答:从文法的开始符号开始,根据给定的输入串并按照文法的产生式一步一步的向下进行直接推导,试图推导出文法的句子,使之与给定的输入串匹配。 自底向上的语法分析方法的基本思想是什么? 解答:从给定的输入串(终结符串)开始,根据文法的规则一步一步的向上进行直接归约,试图归约到文法的开始符号。 一个上下文无关文法G包括哪四个组成部分? 解答:一组非终结符号,一组终结符号,一个开始符号,以及一组产生式。 在自底向上的语法分析方法中,分析的关键是什么? 解答:关键是寻找句柄。 在自顶向下的语法分析方法中,分析的关键是什么? 解答:关键是选择候选式。 编译程序中语法分析器接收以什么为单位的输入? 解答: 接收以单词为单位的输入。 若一个文法是递归的,则它所产生的语言的句子是可枚举的吗? 解答: 它所产生的语言的句子不是可枚举的,而是无穷多个。 编译程序生成的目标程序是不是一定是机器语言的程序? 解答:不一定是机器语言的程序。 词法分析器是用于做什么的? 解答:词法分析器是用于识别单词的。 “用高级语言书写的源程序都必须通过编译,产生目标代码后才能投入运行”这种说法正确吗? 解答: 不正确。 把汇编语言程序翻译成机器可执行的目标程序的工作是由什么完成的? 解答: 由汇编器(汇编程序)完成的。 14)图示运行时存储空间的划分(分为哪几个区)。 解答: 一般分为静态区和动态区: 程序代码区、静态数据区、栈区和堆区 15)词法分析的主要任务是什么? 解答:词法分析器的任务是对构成源程序的字符串从左到右逐个字符逐个字符地进行扫描,依次把它们识别为一个一个具有独立意义的单词,并确定其属性,再转换为长度统一的属性字并输出。 16)常用的中间语言种类有哪几种? 解答: 常用的中间语言种类有逆波兰表示、三元式、四元式和树形表示。 17)文法G所描述的语言是什么的集合? 解答:是由文法的开始符号推出的所有终结符串的集合。或说是句子的集合。 18)乔姆斯基把文法分为四种类型,即0型、1型、2型、3型。其中2型文法叫什么? 解答: 2型文法叫上下文无关文法。 19)编译程序是一种解释程序吗?还是什么程序? 解答:编译程序是一种翻译程序。 20)按逻辑上划分,编译程序第二步工作是什么? 解答: 编译程序第二步工作是语法分析。 21)源程序是用高级语言编写的,目标程序是机器语言程序或汇编语言程序 ,则其翻译程序称为什么? 解答: 其翻译程序称为编译程序。 22)编译方式与解释方式的根本区别为什么? 解答:编译方式与解释方式的根本区别在于是否生成目标代码。 23)常见的动态存贮分配策略有哪两种? 解答:常见的两种动态存贮分配策略是栈式动态分配策略和堆式动态分配策略。 24)常用的参数传递方式有哪三种? 解答:常见的参数传递方式有传地址、传值和传名三种方式。 25)语法分析的任务是什么? 解答:语法分析的任务是识别给定的终结符串是否为给定文法的句子。 26)局部优化是局限于一个什么范围内的一种优化? 解答: 是局限于一个基本块范围内的一种优化。 27)文法等价的定义是什么? 解答: 设G1和G2是给定的文法,如果有L(G1)= L(G2),则称G1与G2等价。 28)在语法分析处理中,FIRST集合、FOLLOW集合、SELECT集合均是什么集合? 解答: 均是终结符集。 29)通常一个编译程序中应包括哪七个部分? 解答: 通常一个编译程序中应包含词法分析,语法分析,语义分析与中间代码生成,代码优化,目标代码生成以及表格处理和出错处理等七个部分。 32)如果编译程序生成的目标程序是汇编语言程序,则源程序的执行分为哪三个阶段? 解答: 源程序的执行分为三个阶段: 编译阶段,汇编阶段和运行阶段。 33)翻译程序是这样一种程序,它能够将用什么转换成与其等价的用乙语言书写的程序? 解答:能够将用甲语言书写的程序转换成与其等价的用乙语言书写的程序。 34)说明下面文法G[S]是二义性文法:S→SaS|SbS|cSd|eS|f 解答:fafbf是文法G[S]的一个句子,并且有两个不同的最右推导。 (1)S => SaS => SaSbS => SaSbf=> Safbf=> fafbf (2)S => SbS => Sbf=> SaSbf => Safbf=> fafbf 因此说明此文法有二义性。 35)在属性文法中,综合属性与继承属性是如何传递信息的? 解答: 综合属性用于自下而上传递信息,继承属性用于自上而下传递信息。 36)代码优化的主要目标是什么? 解答: 代码优化的主要目标是如何提高目标程序的运行速度和如何减少目标程序运行时所需的空间。 37)写一个文法,使其语言是无符号二进制实数(不含指数)。 解答:文法G(N): N→L.L|L L→LB|B B→0|1
|