大学编译原理课程复习试题及答案

合集下载

编译原理试题及答案

编译原理试题及答案

编译原理试题及答案一、选择题1. 编译器的主要功能是什么?A. 程序设计B. 程序翻译C. 程序调试D. 数据处理答案:B2. 下列哪一项不是编译器的前端处理过程?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D3. 在编译原理中,词法分析器的主要作用是什么?A. 识别程序中的关键字和标识符B. 将源代码转换为中间代码C. 检查程序的语法结构D. 确定程序的运行环境答案:A4. 语法分析通常采用哪种方法?A. 自顶向下分析B. 自底向上分析C. 正则表达式匹配D. 直接解释执行答案:B5. 语义分析的主要任务是什么?A. 检查程序的语法结构B. 检查程序的类型安全C. 识别程序中的变量和常量D. 将源代码转换为机器代码答案:B二、简答题1. 简述编译器的工作原理。

答案:编译器的工作原理主要包括以下几个步骤:词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成。

词法分析器将源代码分解成一系列的词素;语法分析器根据语法规则检查词素序列是否合法;语义分析器检查程序的语义正确性;中间代码生成器将源代码转换为中间代码;代码优化器对中间代码进行优化;最后,目标代码生成器将优化后的中间代码转换为目标机器代码。

2. 什么是词法分析器,它在编译过程中的作用是什么?答案:词法分析器是编译器前端的一个组成部分,负责将源代码分解成一个个的词素(tokens),如关键字、标识符、常量、运算符等。

它在编译过程中的作用是为语法分析器提供输入,是编译过程的基础。

三、论述题1. 论述编译器中的代码优化技术及其重要性。

答案:代码优化是编译过程中的一个重要环节,它旨在提高程序的执行效率,减少资源消耗。

常见的代码优化技术包括:常量折叠、死代码消除、公共子表达式消除、循环不变代码外提、数组边界检查消除等。

代码优化的重要性在于,它可以显著提高程序的运行速度和性能,同时降低程序对内存和处理器资源的需求。

四、计算题1. 给定一个简单的四则运算表达式,请写出其对应的逆波兰表达式。

最新编译原理复习题及答案

最新编译原理复习题及答案

编译原理复习题及答案一、选择题1.一个正规语言只能对应(B)A 一个正规文法B 一个最小有限状态自动机2.文法G[A]:A→εA→aB B→Ab B→a是(A)A 正规文法B 二型文法3.下面说法正确的是(A)A 一个SLR(1)文法一定也是LALR(1)文法B 一个LR(1)文法一定也是LALR(1)文法4.一个上下文无关文法消除了左递归,提取了左公共因子后是满足LL(1)文法的(A)A 必要条件B 充分必要条件5.下面说法正确的是(B)A 一个正规式只能对应一个确定的有限状态自动机B 一个正规语言可能对应多个正规文法6.算符优先分析与规范归约相比的优点是(A)A 归约速度快B 对文法限制少7.一个LR(1)文法合并同心集后若不是LALR(1)文法(B)A 则可能存在移进/归约冲突B 则可能存在归约/归约冲突C 则可能存在移进/归约冲突和归约/归约冲突8.下面说法正确的是(A)A Lex是一个词法分析器的生成器B Yacc是一个语法分析器9.下面说法正确的是(A)A 一个正规文法也一定是二型文法B 一个二型文法也一定能有一个等价的正规文法10.编译原理是对(C)。

A、机器语言的执行B、汇编语言的翻译C、高级语言的翻译D、高级语言程序的解释执行11.用高级语言编写的程序经编译后产生的程序叫(B)A.源程序 B.目标程序C.连接程序D.解释程序12.(C)不是编译程序的组成部分。

A.词法分析程序B.代码生成程序C.设备管理程序D.语法分析程序13.通常一个编译程序中,不仅包含词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成等六个部分,还应包括(C)。

A.模拟执行器B.解释器 C.表格处理和出错处理D.符号执行器14.源程序是句子的集合,(B)可以较好地反映句子的结构。

A. 线性表B. 树C. 完全图D. 堆栈15.词法分析器的输出结果是(D)。

A、单词自身值B、单词在符号表中的位置C、单词的种别编码D、单词的种别编码和自身值16.词法分析器不能(D)A. 识别出数值常量B. 过滤源程序中的注释C. 扫描源程序并识别记号D. 发现括号不匹配17.文法:G:S→xSx | y所识别的语言是(D)。

完整版编译原理复习题及答案

完整版编译原理复习题及答案

编译原理复习题及答案一、选择题1.一个正规语言只能对应( B )A 一个正规文法B 一个最小有限状态自动机2.文法G[A] :A→εA→aB B→Ab B→a是( A )A 正规文法B 二型文法3.下面说法正确的是( A ) A一个SLR(1)文法一定也是LALR (1)文法B一个LR (1)文法一定也是LALR (1)文法4.一个上下文无关文法消除了左递归,提取了左公共因子后是满足LL (1)文法的( A )A 必要条件B 充分必要条件5.下面说法正确的是( B )A 一个正规式只能对应一个确定的有限状态自动机B 一个正规语言可能对应多个正规文法6.算符优先分析与规范归约相比的优点是( A )A 归约速度快B 对文法限制少7.一个LR (1)文法合并同心集后若不是LALR (1)文法( B )A 则可能存在移进/归约冲突B 则可能存在归约/归约冲突C 则可能存在移进/归约冲突和归约/ 归约冲突8.下面说法正确的是( A )A Lex 是一个词法分析器的生成器B Yacc 是一个语法分析器9.下面说法正确的是( A )A一个正规文法也一定是二型文法B一个二型文法也一定能有一个等价的正规文法10.编译原理是对(C) 。

A 、机器语言的执行B、汇编语言的翻译C、高级语言的翻译D、高级语言程序的解释执行11.(A) 是一种典型的解释型语言。

A .BASICB .CC.FORTRAN D.PASCAL12.把汇编语言程序翻译成机器可执行的目标程序的工作是由(B) 完成的。

A. 编译器B. 汇编器C. 解释器D. 预处理器13.用高级语言编写的程序经编译后产生的程序叫(B) A .源程序B .目标程序C.连接程序 D .解释程序14.(C) 不是编译程序的组成部分。

A. 词法分析程序B. 代码生成程序C.设备管理程序D. 语法分析程序15.通常一个编译程序中,不仅包含词法分析,语法分析,语义分析,中间代码生成,代码优目标代码生成等六个部分,还应包括(C)A .模拟执行器B .解释器C.表格处理和出错处理D .符号执行器16.编译程序绝大多数时间花在(D) A .出错处理B.词法分析C.目标代码生成D.表格管理17.源程序是句子的集A. 线性表(B) 可以较好地反映句子的结构。

大学课程《编译原理》考试试卷A卷及答案

大学课程《编译原理》考试试卷A卷及答案

《编译原理》考试试卷A适用专业:考试日期:闭卷所需时间:120分钟总分:100分一、填空题:(每空1分,共10分)1.解释系统与编译系统的区别在于和。

2.在编译过程中始终伴随着管理和出错处理过程。

3.语法分析的方法为和两大类。

4.LL(1)文法中不能有和。

5.词法分析器中单词的描述工具是 ,单词的识别工具。

6.算符优先语法分析,在符号栈栈顶出现时,进行规约处理。

二、单选题(每小题2分,共10分)1.词法分析器的加工对象是()A.中间代码B.单词C.源程序D.元程序2.同正则表达式a*b*等价的文法是()A. G1:S→aS|bS|εB. G2: S→aSb|εC. G3:S→aS|Sb|εD. G4: S→abS|ε3.文法G[A]:A→bH H→BA B→Ab H→a 不是()A. 2型文法B. 3型文法C. 0型文法D.1型文法4.算符优先分析每次都是对()进行规约。

A.短语B.最左素短语C.素短语D.句柄5.( )不是DFA的成分。

A.有穷字母表B. 初始状态集合C.终止状态集合D.有限状态集合三、问答题(第1,5小题每题15分,其余每小题10分,共80分)1. (15分)解释下列术语:(1)编译程序(2)句柄(3)上下文无关文法2.编译程序主要有哪些构成成分?(10分)3.给出描述语言L={a n b2n c m|n,m≥0}的cfg。

(10分)4.(10分)将下图中的DFA M最小化。

5. (15分)判断文法G[S]:S→aHH→aMd|dM→Ab|εA→aM|e是否为LL(1)文法?给出判断过程。

6. (10分)改写文法G[E]:E → E+T|TT →T*F|FF →(E)| a为无左递归文法。

7. (10分)已知文法G[S]为:S→VV→T|ViTT→F|T+FF→)V*|(请指出句型(+(i( 规范推到,并指出句型F+Fi( 中的短语、句柄和素短语。

《编译原理》考试试卷A参考答案适用专业:考试日期:闭卷所需时间:120分钟总分:100分一、填空题:(每空1分,共10分)1. 边翻译边执行和不生成目标代码。

《编译原理》样卷及答案

《编译原理》样卷及答案

一、简答题(每题4分,共24分)1、构造一个文法G,使得:L(G)={(m )m|m>0}解答:G[S]: s-> ()|(S)2、构造一个正规式,它接受={0,1}上符合以下规则的字符串:串内有且只有2个1的0、1字符串全体。

解答:0*10*10*3、消除文法G[S]中的直接左递归和回溯S→ (L) | aS | aL→ L,S | S解答:S→ (L) | aS'S'→ S | εL→ S L'L'→,S L' | ε4、文法G[S]是乔姆斯基几型文法S → ABS | ABAB → BAA → 0B → 1解答:1型文法/上下文有关文法5、按Thmopson算法构造与正则表达式(1*|0) * 等价的NFA。

解答:略6、设计一个状态转换图,其描述的语言规则为:如果以a开头,则其后是由a、b组成的任意符号串;如果以b开头,则其后是至少包含一个a的由a、b组成的任意符号串。

解答:略二、(本题10分)对于文法G[E]:E→ET+|TT→TF* | FF→F^ | a(1) 给出句子FF^^*的最左推导和语法树;(2) 给出句子FF^^*的短语、直接短语和句柄。

解答: (1) 2分:句子FF^^*的最左推导 2分:句子FF^^*的语法树 E=>T=>TF*=>FF*=>FF^*=>FF^^*(2) 3分:句子FF^^*的短语FF^^*、FF^^*、F、F^、F^^2分:句子FF^^*的直接短语F、F^1分:句子FF^^*的句柄F三、(本题15分)构造与下列NFA等价的最小化DFA。

解答:(1)10分:构造与NFA等价的DFA(2)5分:对DFA最小化首先,将所有的状态集合分成子集: k1={0,1,2,4} k2={3,5}四、(本题15分)对下列文法G[S]:s→ eT | RTT→ DR | εR→ dR | εD→ a | bd(1) 写出文法G[S]每个非终结符的FIRST集和FOLLOW集;(2) 判断文法G[S]是否LL(1)文法(注:必须给出判断过程,否则不得分);(3) 写出文法文法G[S]的预测分析表。

完整版编译原理试题

完整版编译原理试题

编译原理考试题及答案汇总一、选择1.将编译程序分成若干个“遍”是为了 _B__。

A . 提高程序的执行效率 B. 使程序的结构更加清晰C. 利用有限的机器内存并提高机器的执行效率D. 利用有限的机器内存但降低了机器的执行效率 2.正规式 MI 和 M2 等价是指 __C__。

A . MI 和 M2 的状态数相等 B.Ml 和 M2 的有向弧条数相等。

C .M1 和 M2 所识别的语言集相等 D. Ml 和 M2 状态数和有向弧条数相等3.中间代码生成时所依据的是 _C_。

A.语法规则 B •词法规则 C •语义规则 D •等价变换规则 4.后缀式ab+cd+/可用表达式__B_来表示。

A. a+b/c+d B . (a+b)/(c+d) C a+b/(c+d) D a+b+c/d6. 一个编译程序中,不仅包含词法分析, _A _______ ,中间代码生成,代码优化,生成等五个部分。

A .( ) 语法分析B .( ) 文法分析C .( ) 语言分析D .( ) 解释分析 7. 词法分析器用于识别 __C___。

A .( ) 字符串B .( ) 语句C .( ) 单词D .( ) 标识符 8. 语法分析器则可以发现源程序中的 ___D__。

A .( ) 语义错误B .( ) 语法和语义错误C .( ) 错误并校正D .( ) 语法错误 9. 下面关于解释程序的描述正确的是 __B___。

(1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于 COBOL 和FORTRAN 语言 (3) 解释程序是为打开编译程序技术的僵局而开发的A .( ) (1)(2)B .( ) (1)C .( ) (1)(2)(3)D .( ) (2)(3) 10. 解释程序处理语言时 , 大多数采用的是 __B___方法。

A .( ) 源程序命令被逐个直接解释执行B .( ) 先将源程序转化为中间代码 , 再解释执行C .( ) 先将源程序解释转化为目标程序 , 再执行D .( ) 以上方法都可以11. 编译过程中 , 语法分析器的任务就是 (1) 分析单词是怎样构成的 (2) (3) 分析语句和说明是如何构成程序的 A .( ) (2)(3) B .( ) (2)(3)(4)C .( ) (1)(2)(3) D .( ) (1)(2)(3)(4) 12. 编译程序是一种 ___C__。

编译原理考试题及答案

编译原理考试题及答案

编译原理考试题及答案一、选择题(每题5分,共20分)1. 编译器的主要功能是什么?A. 代码优化B. 代码翻译C. 代码调试D. 代码运行答案:B2. 下列哪个选项不属于编译器的前端部分?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D3. 在编译原理中,文法的产生式通常表示为:A. A -> αB. A -> βC. A -> γD. A -> δ答案:A4. 下列哪个算法用于构建语法分析树?A. LL(1)分析B. LR(1)分析C. SLR(1)分析D. LALR(1)分析答案:A二、填空题(每空5分,共20分)1. 编译器的前端通常包括词法分析、语法分析和________。

答案:语义分析2. 编译器的后端主要负责________和目标代码生成。

答案:代码优化3. 编译器中的词法分析器通常使用________算法来识别单词。

答案:有限自动机4. 语法分析中,________分析是一种自顶向下的分析方法。

答案:递归下降三、简答题(每题10分,共30分)1. 简述编译器的作用。

答案:编译器的主要作用是将高级语言编写的源代码转换成计算机能够理解的低级语言或机器代码,以便执行。

2. 解释一下什么是语法制导翻译。

答案:语法制导翻译是一种翻译技术,它利用源语言的语法信息来指导翻译过程,使得翻译过程能够更好地理解源代码的语义。

3. 什么是词法分析器?答案:词法分析器是编译器前端的一部分,它的任务是将源代码文本分解成一系列的标记(tokens),这些标记是源代码的最小有意义的单位。

四、计算题(每题10分,共30分)1. 给定一个简单的文法G(E):E → E + T | TT → T * F | FF → (E) | id请计算文法的非终结符号E的FIRST集和FOLLOW集。

答案:E的FIRST集为{(, id},FOLLOW集为{), +, $}。

2. 假设编译器在进行语法分析时,遇到一个语法错误的代码片段,请简述编译器如何处理这种情况。

编译原理试题及答案

编译原理试题及答案

参考答案一、单项选择题(共10小题,每小题2分,共20分)1.语言是A .句子的集合B .产生式的集合C .符号串的集合D .句型的集合 2.编译程序前三个阶段完成的工作是 A .词法分析、语法分析和代码优化 B .代码生成、代码优化和词法分析C .词法分析、语法分析、语义分析和中间代码生成D .词法分析、语法分析和代码优化3.一个句型中称为句柄的是该句型的最左 A .非终结符号 B .短语 C .句子 D .直接短语4.下推自动机识别的语言是A .0型语言B .1型语言C .2型语言D .3型语言5.扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即 A . 字符B .单词C .句子D .句型6.对应Chomsky 四种文法的四种语言之间的关系是 A .L 0⊂L 1⊂L 2⊂L 3B .L 3⊂L 2⊂L 1⊂L 0C .L 3=L 2⊂L 1⊂L 0D .L 0⊂L 1⊂L 2=L 3 7.词法分析的任务是 A .识别单词B .分析句子的含义C .识别句子D .生成目标代码 8.常用的中间代码形式不含A .三元式B .四元式C .逆波兰式D .语法树 9. 代码优化的目的是A .节省时间B .节省空间C .节省时间和空间D .把编译程序进行等价交换10.代码生成阶段的主要任务是 A .把高级语言翻译成汇编语言 B .把高级语言翻译成机器语言C .把中间代码变换成依赖具体机器的目标代码装 订 线D.把汇编语言翻译成机器语言二、填空题(本大题共5小题,每小题2分,共10分)1.编译程序首先要识别出源程序中每个(单词),然后再分析每个(句子)并翻译其意义。

2.编译器常用的语法分析方法有(自底向上)和(自顶向下)两种。

3.通常把编译过程分为分析前端与综合后端两大阶段。

词法、语法和语义分析是对源程序的(分析),中间代码生成、代码优化与目标代码的生成则是对源程序的(综合)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

编译原理复习材料选择题1. 文法S→0S | S1 | 0的语言是( )。

A. { 0 m1m| m >=0 }B. { 0 m1m| m >=1 }C. { 0 m1n | m>=1,n>=0 }D. { 0 m1n | m>=0,n>=1 }2. 描述程序语言所采用的Ⅲ型文法是( )。

A. 短语文法B.正规文法C.上下文无关文法D.上下文有关文法3. 状态转换图实现的简单方法是使每个状态结对应( )。

A.一个终结符B.一个非终结符C.一段小程序D.一个函数4. 规范归约的关键问题是寻找( )。

A. 最左素短语B.句柄C.直接短语D.短语5. 一个算符文法的任何产生式的右部都不含有两个相继的( )。

A.终结符B.非终结符C.终结符和非终结符D.空字6. 算符优先分析法的关键在于规定( )。

A.算符优先顺序和结合性质B.算符优先顺序C.结合性质D.终结符和非终结符之间关系7. 优先函数的优点是( )。

A.形象直观B.便于进行比较运算C.语法分析速度快D.语法分析方法简单8. 文法符号的属性通常分为( )两类。

A. 共用属性和私有属性B.固有属性和可变属性C.语法属性和语义属性D.综合属性和继承属性9. 在程序流图中,组成循环的结点序列应满足( )A. 它们是强连通的B.它们中间有唯一的入口结点C.它们中间有一条回边D.它们是强连通的且有唯一的入口结点10. 在利用寄存器R生成T1:=C/B的目标代码同时,还应记录信息( )。

A. C/B在T1中B. T1在C/B中C. R含有T1, T1在R中D. R含有C/B, C/B在R中1.D2.B3.C4.B5.B6.A7.B8.D9.D 10.C1. 编译方式与解释方式的根本区别在于( )A.是否生成目标代码B.是否生成中间代码C.是否生成汇编代码D.是否生成优化代码2. 编译程序生成的目标程序( )A.一定是机器语言的程序B.不一定是机器语言的程序C.一定不是机器语言的程序D.一定是汇编语言的程序3. 设字母表∑={0,1,x,y}, 则∑上的正规式ε所对应的正规集为( )A.εB. {ε0,1,x,y }C. {ε}D.Φ4. *假设G是一个文法,S是文法的开始符号,如果S===> x,则称x是( )A.短语B.句柄C.句子D.句型5. 一个算符文法的任何产生式的右部都不含有两个相继的( )A.终结符B.非终结符C.终结符和非终结符D.ε字6. 设有文法G[A]:A →Ax|Ay|Aa|Ac|a|b|c,下列哪些是该文法的句子( )(1) aby (2) aycyx (3) aaa (4) bcxyA.(1) (2) (3)B. (1) (2) (4)C.(2) (3) (4)D.全部7. LR分析器的核心部分是( )A.带先进后出存贮器的DFAB.一张动作表C.一张GOTO表D.一张分析表8. 在程序流图中,组成循环的结点序列应满足( )A.它们是强连通的且有唯一的入B.它们中间有唯一的入口结点口结点C.它们中间有一条回边D.它们是强连通的9. 表达式a≤b+c∧a>d∨a+b≠e的后缀式式为( )。

A.abc≤ad+>∧ab+e≠∨B.ab≤c+∧da>ab+e≠∨C.abc+≤ad>∧ab+e≠∨D.abc+≤ad>ab+∧e≠∨10. 程序基本块是指 ( )A.一个子程序B.一个仅有一个入口和一个出口的语句C. 一个没有嵌套的程序段D.一组顺序执行的程序段,仅有一个入口和一个出口1.A2.B3.C4.D5.B6.C7.D8.A9.C 10.D1. BNF是一种用于( )的工具。

A. 描述句型B.描述句子C.描述语言D.描述文法2. 设字母表∑={0,1,x,y}, 则∑上的正规式ε所对应的正规集为( )A.εB. {ε}C. {ε0,1,x,y }D.Φ3. 规范推导也称为( )A. 最右推导B.最左推导C.一般推导D.自左向右推导4. 在规范归约中, 任何可归约串的出现必在( )A.栈的内部B.栈顶C.剩余的输入串中D.在先进后出栈中5. 一个算符文法的任何产生式的右部都不含有两个相继的( )A.终结符B.非终结符C.终结符和非终结符D.ε字6. LR分析器的核心部分是( )A.一张分析表B.一张动作表C.一张GOTO表D.带先进后出存贮器的DFA7. 算符优先分析的关键问题是寻找( )。

A.句柄B.最左素短语C.短语D.直接短语8. 四元式之间的联系是通过( )A.指示器B.临时变量C.四元式的编号D.中间运算结果9. 表达式a≤b+c∧a>d∨a+b≠e的逆波兰式为( )。

A.abc+≤ad>∧ab+e≠∨B.ab≤c+∧da>ab+e≠∨C.abc≤ad+>∧ab+e≠∨D.abc+≤ad>ab+∧e≠∨10. 代码外提时要求该不变运算所在的结点是循环的( )。

A.某个出口的必经结点B.至少是一个入口的必经结点C.入口的必经结点D.所有出口的必经结点1.D2.B3.A4.B5.B6.A7.B8.B9.A 10.D填空题1. 一个状态转换图可用于一定的字符串。

2. 设∑={a , b , c},则∑*中最短的符号串为。

3. 若由文法的开始符号可以推导出串α ,且,则α为原文法的一个句子。

4. 若文法的某非终结符P满足,称文法含有左递归。

5. 表达式-(a+b)/(c*d)-e的逆波兰式为______________________________。

6. 后序遍历一棵表达式树,可得到它的。

7. 中间代码是一种面向语法,易于翻译成的代码。

8. 四元式序列中各四元式出现的顺序与是一致的。

9. 若每个程序对应一个流图,则流图中的结点对应一个。

10.若从流图首结点出发, 到达n j的任一通路必须经过n i,则称的必经结点。

1. 识别或接受2. ε3. α Є VT*4. P==+>Pα5. ab+@cd*/e-6. 逆波兰式7. 目标代码8. 运算顺序9. 基本块10. ni为nj1. 一个非确定的有限自动机可以表示为一个元式。

2. 若文法的某非终结符P满足,称文法含有左递归。

3. 设∑={1 , 2, 3},则∑*中最短的符号串为。

4. 用∑+表示∑上所有的集合。

5. 三地址代码的一般形式为。

6. 递归下降法对每个构造一个相应的子程序。

7. 在算符优先分析中,用作为可归约串。

8. 在形式语言中,最推导被称为规范推导。

9. 语法树中,一个结点的属性由此结点的父结点和/或兄弟结点的属性确定。

10. 如果循环中对变量I只有唯一的形如I=I±C的赋值,则称I为循环中的变量。

1.2. 五P==+>Pα3. ε4. 长度不为0的串5. x:=y op z6. 非终结符7. 最左素短语8. 右9. 继承10. 基本归纳1. 终态与非终态的区别在于。

2. 用∑+表示∑上所有的集合。

3. 一个状态转换图可用于一定的字符串。

4. 用于词法分析的扫描缓冲区可将两个半区使用。

5. 一个句型的称为该句型的句柄。

6. 递归下降法对每个构造一个相应的子程序。

7. 算符优先法尤其适用于的分析。

8. 规范归约的关键在于如何确定。

9. 文法符号的属性值可自底向上应用语义规则计算出来。

10. DAG代表。

1. 终态可接受空串2. 长度不为0的串3. 识别4. 互补5. 最左简单短语6. 非终结符7. 表达式8. 句柄9. 综合10. 有向无环图判断题1. 若一个文法是递归的,则由它产生的语言的句子个数是有()限的。

2. 用于词法分析的扫描缓冲区可将两个半区重叠使用。

()3. 一个LR分析器实质上是一个带有后进先出存储器的()DFA。

4. 符号表的每一项一般包含入口栏和信息栏两大部分。

()5. DAG是对循环进行优化的有效工具。

()()6. 代码外提时要求该不变运算所在的结点是循环的某个出口的必经结点。

1. ×无限2. ×互补3. √4. ×名字5. ×基本块6. ×所有1. 描述程序语言所采用的Ⅲ型文法是上下文无关文法。

()2. 状态转换图实现的简单方法是使每个状态结点对应一个非()终结符3. 欲构造行之有效的自下而上分析器,则必须清除文法中含()有的左递归。

4. 在规范归约中, 任何可归约串的出现必在栈的内部。

()()5. 循环优化中的强度削弱主要是指将循环中的乘法变成加法。

6. 符号表的信息栏中的内容称为关键字。

()1. ×正规文法2. ×一段小程序3. ×自上而下4. ×栈顶5. ×递归加法6. ×名字()1. 设α是某句型的一个子串,若它能被一次直接归约为一个非终结符,则α是该句型的一个直接短语。

2. 语法分析过程可用一棵树表示出来,这棵树叫做语法树。

()3. 欲构造行之有效的自下而上分析器,则必须清除文法中含()有的左递归。

()4. 四元式作为中间语言,用于翻译除表达式外的其他语句代码。

()5. 循环优化中的强度削弱主要是指将循环中的乘法变成加法。

6. 流图中有向边a→b为回边的条件是a DOM b。

()1. ×要求这个非终结符取代α后,原句型还可继续向开始符方向归约。

2. ×分析树3. ×自上而下4. ×各种5. ×递归加法6. ×b DOM a简答题1. 简述正规式与有限自动机的关系。

2. 已知文法G: S → iSeS | iS | i该文法是否具有二义性?请根据句子iiiei构造语法树予以说明。

3. 何谓递归下降分析法?应用此种分析法的文法应满足什么条件?4.简述代码优化所依据的原则与优化的级别,并列举三种常用的优化技术。

1. 正规式用来描述正规集,而有限自动机用来识别正规集,在正规集的意义上它们存在等价关系。

即:对每一个正规式所代表的正规文法G,都存在一个有限自动机M,使得L(M)=L(G),M所能识别的字的全体恰为这个正规文法G的语言集合;对每一个有限自动机M,都存在一个可以用正规式表示的正规文法G,使得L(G)=L(M),这个正规文法G的语言集合中的任一个字可以由M识别。

2. 对于句子iiiei,该文法具有两棵不同的语法树与之对应,故为二义性文法。

S S/ / \ \ / \i S e S i S/ \ | / / \ \i S ii S e S| | |Iii3. 当文法满足LL(1)条件时,可以为它构造一个不带回溯的自上而下分析程序。

它由一组递归过程(函数)组成,每个过程(函数)对应文法的一个非终极符,这样的分析程序称为递归下降分析器。

利用这种分析程序进行语法分析的方法称为递归下降分析法。

相关文档
最新文档