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

编译原理复习题及答案一、选择题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)。
编译原理题——简答题

编译原理A1.简要说明语义分析的基本功能。
2. 考虑文法 G[S]:S → (T) | a+S | aT → T,S | S消除文法的左递归及提取公共左因子。
3试为表达式 w+(a+b)*(c+d/(e-10)+8) 写出相应的逆波兰表示。
4. 按照三种基本控制结构文法将下面的语句翻译成四元式序列:while (A<C ∧ B<D){if (A ≥ 1) C=C+1;else while (A ≤ D)A=A+2;}。
5. 已知文法 G[S] 为S → aSb|Sb|b,试证明文法 G[S] 为二义文法。
A答案1答:语义分析的基本功能包括: 确定类型、类型检查、语义处理和某些静态语义检查。
2解:消除文法G[S]的左递归:S→(T) | a+S | aT→ST′T′→,ST′| ε提取公共左因子:S→(T) | aS′S′→+S | εT→ST′T′→,ST′| ε3答:w a b + c d e 10 - / + 8 + * +4答:该语句的四元式序列如下(其中E1、E2和E3分别对应A<C∧B<D、A≥1和A≤D,并且关系运算符优先级高):100 (j<,A,C,102)101 (j,_,_,113)102 (j<,B,D,104)103 (j,_,_,113)104 (j=,A,1,106)105 (j,_,_,108)106 (+, C, 1, C)107 (j,_,_,112)108 (j≤,A,D,110) 109 (j,_,_,112)110 (+, A, 2, A)111 (j,_,_,108)112 (j,_,_,100)1135答:证明:由文法G[S]:S→aSb|Sb|b,对句子aabbbb对应的两棵语法树为:因此,文法G[S]为二义文法。
编译原理B1.什么是句子?什么是语言 ?2. 写一文法,使其语言是偶正整数的集合,要求:(1)允许0打头;(2) 不允许0打头。
《编译原理》考试试题及答案(汇总)

《编译原理》考试试题及答案(汇总)一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)1.编译程序是对高级语言程序的解释执行。
(× )2.一个有限状态自动机中,有且仅有一个唯一的终态。
(×)3.一个算符优先文法可能不存在算符优先函数与之对应. (√ )4.语法分析时必须先消除文法中的左递归。
(×)5.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。
(√)6.逆波兰表示法表示表达式时无须使用括号。
(√ )7.静态数组的存储空间可以在编译时确定. (×)8.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。
(×) 9.两个正规集相等的必要条件是他们对应的正规式等价. (×)10.一个语义子程序描述了一个文法所对应的翻译工作。
(×)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分) 1.词法分析器的输出结果是_____.A.()单词的种别编码B.( )单词在符号表中的位置C.( ) 单词的种别编码和自身值D.() 单词自身值2.正规式M 1 和M 2 等价是指_____。
A.( )M1和M2的状态数相等B.()M1和M2的有向边条数相等C.()M1和M2所识别的语言集相等D.()M1和M2状态数和有向边条数相等3.文法G:S→xSx|y所识别的语言是_____.A.( )xyx B.( ) (xyx)* C.()xnyxn(n≥0)D.()x*yx*4.如果文法G是无二义的,则它的任何句子α_____.A.( )最左推导和最右推导对应的语法树必定相同B.( ) 最左推导和最右推导对应的语法树可能不同C.()最左推导和最右推导必定相同D.()可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握______。
编译原理小题答案

《编译原理》常见题型一、填空题1.编译程序的工作过程一般可以划分为词法分析,语法分析,中间代码生成,代码优化(可省) ,目标代码生成等几个基本阶段。
2.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序.3.编译方式与解释方式的根本区别在于是否生成目标代码 .5.对编译程序而言,输入数据是源程序,输出结果是目标程序 .7.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序。
8.一个典型的编译程序中,不仅包括词法分析、语法分析、中间代码生成、代码优化、目标代码生成等五个部分,还应包括表格处理和出错处理。
其中,词法分析器用于识别单词。
10.一个上下文无关文法所含四个组成部分是一组终结符号、一组非终结符号、一个开始符号、一组产生式。
12.产生式是用于定义语法成分的一种书写规则。
13.设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为:L(G)={x│S=>*x,x∈VT*} 。
14.设G是一个给定的文法,S是文法的开始符号,如果S*⇒x(其中x∈V*),则称x是文法的一个句型。
15.设G是一个给定的文法,S是文法的开始符号,如果S*⇒x(其中x∈V T*),则称x是文法的一个句子。
16.扫描器的任务是从源程序中识别出一个个单词符号。
17.语法分析最常用的两类方法是自上而下和自下而上分析法。
18.语法分析的任务是识别给定的终结符串是否为给定文法的句子。
19.递归下降法不允许任一非终结符是直接左递归的。
20.自顶向下的语法分析方法的关键是如何选择候选式的问题。
21.递归下降分析法是自顶向下分析方法。
22.自顶向下的语法分析方法的基本思想是:从文法的开始符号开始,根据给定的输入串并按照文法的产生式一步一步的向下进行直接推导,试图推导出文法的句子,使之与给定的输入串匹配。
23.自底向上的语法分析方法的基本思想是:从给定的终结符串开始,根据文法的规则一步一步的向上进行直接归约,试图归约到文法的开始符号。
编译原理习题及答案(整理后)

第一章1、将编译程序分成若干个“遍”是为了。
b.使程序的结构更加清晰2、构造编译程序应掌握。
a.源程序b.目标语言c.编译方法3、变量应当。
c.既持有左值又持有右值4、编译程序绝大多数时间花在上。
d.管理表格5、不可能是目标代码。
d.中间代码6、使用可以定义一个程序的意义。
a.语义规则7、词法分析器的输入是。
b.源程序8、中间代码生成时所遵循的是- 。
c.语义规则9、编译程序是对。
d.高级语言的翻译10、语法分析应遵循。
c.构词规则二、多项选择题1、编译程序各阶段的工作都涉及到。
b.表格管理c.出错处理2、编译程序工作时,通常有阶段。
a.词法分析b.语法分析c.中间代码生成e.目标代码生成三、填空题1、解释程序和编译程序的区别在于是否生成目标程序。
2、编译过程通常可分为5个阶段,分别是词法分析、语法分析中间代码生成、代码优化和目标代码生成。
3、编译程序工作过程中,第一段输入是源程序,最后阶段的输出为标代码生成程序。
4、编译程序是指将源程序程序翻译成目标语言程序的程序。
一、单项选择题1、文法G:S→xSx|y所识别的语言是。
a. xyxb. (xyx)*c.x n yx n(n≥0) d. x*yx*2、文法G描述的语言L(G)是指。
a. L(G)={α|S+⇒α , α∈V T*}b. L(G)={α|S*⇒α, α∈V T*}c. L(G)={α|S*⇒α,α∈(V T∪V N*)} d. L(G)={α|S+⇒α, α∈(V T∪V N*)}3、有限状态自动机能识别。
a. 上下文无关文法b. 上下文有关文法c.正规文法d. 短语文法4、设G为算符优先文法,G 的任意终结符对a、b有以下关系成立。
a. 若f(a)>g(b),则a>bb.若f(a)<g(b),则a<bc. a~b都不一定成立d. a~b一定成立5、如果文法G是无二义的,则它的任何句子α。
a. 最左推导和最右推导对应的语法树必定相同b. 最左推导和最右推导对应的语法树可能不同c. 最左推导和最右推导必定相同d. 可能存在两个不同的最左推导,但它们对应的语法树相同6、由文法的开始符经0步或多步推导产生的文法符号序列是。
编译原理考试题及答案

编译原理考试题及答案一、选择题(每题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. 假设编译器在进行语法分析时,遇到一个语法错误的代码片段,请简述编译器如何处理这种情况。
编译原理试题B及答案

编译原理试题B一、单项选择题每题1分;共20分1、对编译系统有关概念描述正确的是 BA.目标程序只能是机器语言 B. 编译程序处理的对象是源语言C.解释程序属于编译程序 D. 词法分析无法自动进行2. 设有表达式ab-c;将其中ab识别为表达式的编译阶段是什么BA.词法分析 B. 语法分析C.语义分析 D. 代码生成3. 下面不能用于对文法进行描述的是 AA.源语言 B. EBNF C.BNF D. 语法图4. 设有文法GS: S→0S|1A|0;A→1|1S|0B;B→1A|0B;下列符号串中是该文法的句子的是A. B.C. D.可画出DFA验证5. 文法GS:S→aA|bC|aA→aS|bBB→aC|bA|bC→aB|bS ;则不是LG句子的是 BA.a100b50ab100 B. a1000b500abaC.a500b60aab2a D. a100b40ab10aa画出DFA6. 哪个不是DFA的构成成分 BA.有穷字母表 B. 初始状态集合C.终止状态集合 D. 有限状态集合7.词法分析器的输入是 B A.单词符号串 B.源程序 C.语法单位 D.目标程序8.在词法分析阶段不能识别的是 C A.标识符 B. 运算符 C.四元式 D. 常数9.设有一段C语言程序whilei&&++j{c=2.19;j+=k;i++;} ;经过词法分析后可以识别的单词个数是 B A.19 B.20 C.21 D.2310.自上而下语法分析的主要动作是 B A.移进 B. 推导 C.规约 D. 匹配11.下面不属于LL1分析器的自称部分是 D A.LL1总控程序 B. LL1分析表C.分析栈 D.源程序串12.设有文法GS为S→AB|bC; A→ε|b;B→ε|aD;C→AD|b;D→aS|c则FOLLOWA为 AA.{a;c;} B.{c;} C.{a;} D.{}13.设有文法GS:S→Ap|Bq;A→a|cA;B→b|dB ;则FIRSTAp为 CA.{p;q} B. {b;d} C.{a;c} D. 其他14.自下而上语法分析的主要分析动作是 DA.推导 B. 规约 C.匹配 D. 移进-规约15.算法优先分析中;可规约串是 CA.句柄 B.活前缀 C.最左素短语 D.素短语16. 设有文法G={{S};{a};{S→SaS|ε};S};该文法是 BA.LL1文法 B.二义性文法C.SLR1文法 D.算法优先文法17、中间代码生成时所以据的是 CA.语法规则 B.词法规则 C.语义规则 D.等价变换规则18、给定文法G: E→E+T|T;T→TF|F;F→i|E则LG中的一个句子i+i+iii的逆波兰表示为 CA.iiii++ B.ii+iii+ C.ii+iii+ D.其他19.在编译程序中与生成中间代码的目的无关的是 B A.便于目标代码优化 B.便于存储空间的组织 C.便于目标代码的移植 D.便于编译程序的移植20.中间代码是介于源语言程序和什么之间的一种代码 D A.源代码 B. 机器语言 C. 汇编语言 D. 目标代码二.简答每题3分;共12分1. 什么是解释程序解释程序也是一种翻译程序;它将源程序作为输入并执行之;即边解释边执行..2. 词法分析器的主要任务是什么词法分析器的主要任务是逐步扫描和分解构成源程序的字符串;识别出一个一个的单词符号..3.文法有哪几部分组成文法是一个四元组;由非终结符号集合、终结符号集合、非空有穷的文法规则集合、文法的开始符号识别符号组成..4. 语法分析的基本任务是什么在词法分析的基础上;根据语言的语法规则把单词符号串分解成各类语法单元..三、解答题本大题共6小题;每小题4分;共24分1.写正则式:所有表示偶数的串..0|1|…|90|2|4|6|82.构造有限自动机M;使得:LM={a n b n c n|n≥1}..应是LM={a n b m c k|n;m;k≥1}3.给定文法GS:S→aAcB|BdS;B→aScA|cAB|b;A→BaB|aBc|a;试检验aacb 是不是其句子..S aAcB aacB aacb ;所以aacb是句子4.文法GS={A;B;C};{a;b;c};A;P;其中P有以下产生式组成:A→abc;A→aBbc;Bb→bB;Bc→Cbcc;bC→Cb;aC→aaB;aC→aa;问此文法表示的语言是什么LG={a n b n c n|n>=1}5.把下列表达式变换成后缀表达式:x:=x+34同试卷A6. 把下列表达式变换成后缀表达式:not A and B or C or not D四、求解题本大题共5小题;每小题6;共30分1.设文法GE: E→E+T|E-T|T;T→TF|T/F|F;F→F↑P|P;P→E|i;求TT-i+P 的短语、直接短语、素短语和句柄..同试卷A2. 对文法GR:R→R’|’T|T;T→TF|F;F→F|C;C→R|a|b;消除文法左递归..同试卷A3. 给定程序:void funint x;int y{x++;y++;}main{int x=0;funx;x;printfx;}调用函数fun时;若参数传递机制是1按值传递;那么输出结果为多少2按引用传递;那么输出结果为多少3按值-结果传递;那么输出结果为多少4. 把下列表达式翻译成三地址代码:i:=j+k10+m..同试卷A5.已知文法G的EBNF表示为:A→B;B→X{A};X→a|b{a|b};试用C语言写出其递归下降子程序..同试卷A五、综合题本大题共2小题;每小题7分;共14分1.将下列NFA确定化;并画出最小化的DFA..同试卷A2. 给定文法GS:S→AS|b;A→SA|a;1构造它的LR0项集规范簇;2构造识别该文法所有活前缀的DFA..同试卷A。
编译原理试题A及答案

编译原理试题A一、单项选择题(每题1分,共20分)1、哪个不是编译系统的组成部分(C )A.词法分析器 B. 代码生成器C.设备管理程序 D. 语法分析器2. 设有表达式a*b-c,将其中a*b识别为表达式的编译阶段是什么( B )A.词法分析 B. 语法分析C.语义分析 D. 代码生成3. 下面不能用于对文法进行描述的是(A )A.源语言 B. EBNF C.BNF D. 语法图4. 设有文法G[S]: S→S1|S0|Sa|Sc|a|b|c,下列符号串中不是该文法的句子的是(A )A.ab0 B. a0c01 C.aaa D. bc105. 文法G[S]:S→aAA→bBB→a|aS ,则L(G)为(C )A.{(ab)n a|n≥1} B. {a (ba)n|n≥1}C.{(aba)n|n≥1} D. {(aba)n|n≥0}6. 哪个不是DFA的构成成分(B )A.有穷字母表 B. 初始状态集合C.终止状态集合 D. 有限状态集合7.词法分析器的输入是(B )A.单词符号串 B.源程序C.语法单位 D.目标程序8.在词法分析阶段不能识别的是(C )A.标识符 B. 运算符C.四元式 D. 常数9.设有一段C语言程序while(i&&++j){c=2.19;j+=k;i++;} ,经过词法分析后可以识别的单词个数是(B )A.19 B.20 C.21 D.2310.自上而下语法分析的主要动作是(B )A.移进 B. 推导C.规约 D. 匹配11.下面不属于LL(1)分析器的组成部分是(D )A.LL(1)总控程序 B. LL(1)分析表C.分析栈 D.源程序串12.设有文法G[S]为S→AB|bC,A→ε|b,B→ε|aD,C→AD|b,D→aS|c则FOLLOW(A)为(A )A.{a,c,#} B.{c,#} C.{a,#} D.{#}13.设有文法G[S]:S→Ap|Bq,A→a|cA,B→b|dB,则FIRST(Ap)为( C )A.{p,q} B. {b,d} C.{a,c} D. 其他14.自下而上语法分析的主要分析动作是(D )A.推导 B. 规约C.匹配 D. 移进-规约15.算法优先分析中,可规约串是(C )A.句柄B.活前缀C.最左素短语D.素短语16. 设有文法G={{S},{a},{S→SaS|ε},S},该文法是(B )A.LL(1)文法B.二义性文法C.SLR(1)文法D.算法优先文法17、中间代码生成时所以据的是(C )A.语法规则B.词法规则C.语义规则 D.等价变换规则18、给定文法G: E→E+T|T,T→T*F|F,F→i|(E)则L(G)中的一个句子i+i+(i*i)*i的逆波兰表示为(C)A.iii*i++B.ii+iii**+ C.ii+ii*i*+ D.其他19.在编译程序中与生成中间代码的目的无关的是(B)A.便于目标代码优化B.便于存储空间的组织C.便于目标代码的移植D.便于编译程序的移植20.中间代码是介于源语言程序和什么之间的一种代码 (D )A .源代码 B. 机器语言 C. 汇编语言 D. 目标代码二.简答(每题3分,共12分) 1. 什么是编译程序?编译程序是将源语言程序翻译为目标语言程序的程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《编译原理》常见题型一、填空题1.编译程序的工作过程一般可以划分为词法分析,语法分析,中间代码生成,代码优化(可省) ,目标代码生成等几个基本阶段。
2.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序.3.编译方式与解释方式的根本区别在于是否生成目标代码 .5.对编译程序而言,输入数据是源程序,输出结果是目标程序 .7.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序。
8.一个典型的编译程序中,不仅包括词法分析、语法分析、中间代码生成、代码优化、目标代码生成等五个部分,还应包括表格处理和出错处理。
其中,词法分析器用于识别单词。
10.一个上下文无关文法所含四个组成部分是一组终结符号、一组非终结符号、一个开始符号、一组产生式。
12.产生式是用于定义语法成分的一种书写规则。
13.设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为:L(G)={x│S=>*x,x∈VT*} 。
14.设G是一个给定的文法,S是文法的开始符号,如果S*⇒x(其中x∈V*),则称x是文法的一个句型。
15.设G是一个给定的文法,S是文法的开始符号,如果S*⇒x(其中x∈V T*),则称x是文法的一个句子。
16.扫描器的任务是从源程序中识别出一个个单词符号。
17.语法分析最常用的两类方法是自上而下和自下而上分析法。
18.语法分析的任务是识别给定的终结符串是否为给定文法的句子。
19.递归下降法不允许任一非终结符是直接左递归的。
20.自顶向下的语法分析方法的关键是如何选择候选式的问题。
21.递归下降分析法是自顶向下分析方法。
22.自顶向下的语法分析方法的基本思想是:从文法的开始符号开始,根据给定的输入串并按照文法的产生式一步一步的向下进行直接推导,试图推导出文法的句子,使之与给定的输入串匹配。
23.自底向上的语法分析方法的基本思想是:从给定的终结符串开始,根据文法的规则一步一步的向上进行直接归约,试图归约到文法的开始符号。
24.自底向上的语法分析方法的基本思想是:从输入串入手,利用文法的产生式一步一步地向上进行直接归约,力求归约到文法的开始符号。
26.在LR(0)分析法的名称中,L的含义是自左向右的扫描输入串,R的含义是最左归约,0 的含义是向貌似句柄的符号串后查看0个输入符号。
31.终结符只有综合属性,它们由词法分析器提供。
32.在使用高级语言编程时,首先可通过编译程序发现源程序的全部A(语法)错误和B (语义)部分错误.34.一个句型中的最左简单短语称为该句型的__句柄___。
36.从功能上说,程序语言的语句大体可分为_执行性____语句和说明性____语句两大类。
37.语法分析是依据语言的__语法_规则进行的,中间代码产生是依据语言的_语义___规进行的。
38.语法分析器的输入是_单词符号____,其输出是_语法单位____。
40.逆波兰式ab+c+ d*e- 所表达的表达式为__(a+b+c)*d-c__ 。
41.计算机执行用高级语言编写的程序主要有两种途径:_解释__和_编译__。
42.自上而下分析法采用___移进_、归约、错误处理、接受__等四种操作。
43.一个LR分析器包括两部分:一个总控程序和_一张分析表___。
44.后缀式abc-/所代表的表达式是a/(b-c)____。
46.语法分析基于_上下文无关___文法进行,即识别的是该类文法的句子。
语法分析的有效工具是_语法树___。
48.语义分析阶段所生成的与源程序等价的中间表示形式可以有_逆波兰__、四元式表示___与_三元式表示____等。
51.自顶向下语法分析会遇到的主要问题有左递归和回溯。
52.已知文法G[E]:E→T|E+T; T→F|T*F; F→(E)|i该文法的开始符号是,终结符号集合V T是,非终结符号结合V N是。
二、单选题1.一个编译程序中,不仅包含词法分析,( A),中间代码生成,代码优化,目标代码生成等五个部分。
A.语法分析B.文法分析C.语言分析D.解释分析2.语法分析器则可以发现源程序中的(D )。
A.语义错误B.语法和语义错误C.错误并校正D.语法错误3.解释程序处理语言时, 大多数采用的是(B)B方法。
A.源程序命令被逐个直接解释执行B.先将源程序转化为中间代码, 再解释执行C.先将源程序解释转化为目标程序, 再执行D.以上方法都可以4.编译程序是一种(B)。
A.汇编程序B.翻译程序C.解释程序D.目标程序5.通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括(C)。
A.模拟执行器 B.解释器 C.表格处理和出错处理D.符号执行器6.一个句型中的最左(B)称为该句型的句柄。
A.短语B.简单短语C.素短语D.终结符号7.文法G[E] :E→T∣E+TT→F∣T﹡FF→a∣(E)该文法句型E+F﹡(E+T)的简单短语是下列符号串中的(B)。
① (E+T)②E+T ③F④ F﹡(E+T)A.① 和③ B.② 和③C.③ 和④ D.③8.词法分析器用于识别(C)。
A.句子B.句型C.单词D.产生式9.在自底向上的语法分析方法中,分析的关键是(D)。
A.寻找句柄B.寻找句型C.消除递归D.选择候选式10.文法G 产生的( D)的全体是该文法描述的语言。
A.句型B.终结符集C.非终结符集D.句子11.若文法G 定义的语言是无限集,则文法必然是(A)。
A.递归的B.前后文无关的C.二义性的D.无二义性的12.四种形式语言文法中,1型文法又称为(C)C文法。
A.短语结构文法B.前后文无关文法C.前后文有关文法D.正规文法13.一个文法所描述的语言是(A)。
A.唯一的B.不唯一的C.可能唯一,好可能不唯一D.都不对14.(B)和代码优化部分不是每个编译程序都必需的。
A.语法分析B.中间代码生成C.词法分析D.目标代码生成15.(B)是两类程序语言处理程序。
A.高级语言程序和低级语言程序B.解释程序和编译程序C.编译程序和操作系统D.系统程序和应用程序16. 一个上下文无关文法G包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组(D)。
A.句子B.句型C.单词D.产生式17.文法分为四种类型,即0型、1型、2型、3型。
其中2型文法是(D)。
A.短语文法B.正则文法C.上下文有关文法D.上下文无关文法18.文法G 所描述的语言是(C)的集合。
A.文法G的字母表V中所有符号组成的符号串B.文法G 的字母表V 的闭包V* 中的所有符号串C.由文法的开始符号推出的所有终结符串D.由文法的开始符号推出的所有符号串19.文法分为四种类型,即0型、1型、2型、3型。
其中0型文法是(A)。
A.短语文法B.正则文法C.上下文有关文法D.上下文无关文法20.(A是一种典型的解释型语言。
A.BASIC B.C C.FORTRAN D.PASCAL21.与编译系统相比,解释系统(D)。
A.比较简单, 可移植性好, 执行速度快B.比较复杂, 可移植性好, 执行速度快C.比较简单, 可移植性差, 执行速度慢D.比较简单, 可移植性好, 执行速度慢22.用高级语言编写的程序经编译后产生的程序叫(B)。
A.源程序 B.目标程序 C.连接程序D.解释程序23.编写一个计算机高级语言的源程序后,到正式上机运行之前,一般要经过(B)这几步:(1) 编辑(2) 编译(3) 连接(4) 运行A.(1)(2)(3)(4) B.(1)(2)(3) C.(1)(3) D.(1)(4)24.把汇编语言程序翻译成机器可执行的目标程序的工作是由(B )完成的。
A .编译器B .汇编器C .解释器D .预处理器25.词法分析器的输出结果是(C )。
A .单词的种别编码B .单词在符号表中的位置C .单词的种别编码和自身值D .单词自身值26. 正规式M 1和M 2 等价是指(C )。
A .M1和M2的状态数相等B .M1和M2的有向边条数相等C .M1和M2所识别的语言集相等D .M1和M2状态数和有向边条数相等 27. 文法G :S→xSx|y 所识别的语言是(C )。
A .xyxB .(xyx)*C .)0( n yx x n nD .x*yx*28.如果文法G 是无二义的,则它的任何句子α (A )。
A .最左推导和最右推导对应的语法树必定相同B .最左推导和最右推导对应的语法树可能不同C .最左推导和最右推导必定相同D .可能存在两个不同的最左推导,但它们对应的语法树相同29.构造编译程序应掌握(D )。
A .源程序B .目标语言C .编译方法D .以上三项都是30.四元式之间的联系是通过(B )实现的。
A .指示器B .临时变量C .符号表D .程序变量31.表达式(┐A∨B)∧(C∨D)的逆波兰表示为(B )。
A .┐AB∨∧CD∨B .A┐B∨CD∨∧C .AB∨┐CD∨∧D .A┐B∨∧CD∨33. 编译程序是对(D )。
A.汇编程序的翻译B.高级语言程序的解释执行C.机器语言的执行D.高级语言的翻译34.采用自上而下分析,必须(C)。
A.消除左递归B.消除右递归C.消除回溯D.提取公共左因子35.在规范归约中,用()B来刻画可归约串。
A.直接短语B.句柄C.最左素短语D.素短语36.间接三元式表示法的优点为(A)。
A.采用间接码表,便于优化处理B.节省存储空间,不便于表的修改C.便于优化处理,节省存储空间D.节省存储空间,不便于优化处理37.在目标代码生成阶段,符号表用(D)。
A.目标代码生成B.语义检查C.语法检查D.地址分配38.下面关于解释程序的描述正确的是 B .(1) 解释程序的特点是处理程序时不产生目标代码(2) 解释程序适用于COBOL 和FORTRAN 语言(3) 解释程序是为打开编译程序技术的僵局而开发的A. (1)(2)B. (1)C. (1)(2)(3)D.(2)(3)39.解释程序处理语言时,大多数采用的是B方法.A.源程序命令被逐个直接解释执行B.先将源程序转化为中间代码,再解释执行C.先将源程序解释转化为目标程序,在执行D.以上方法都可以40.用不同语言编写的程序产生后,可用连接在一起生成机器可执行的程序.在机器中真正执行的是 . 上面三空格对应的选项是:Aa. 源程序b. 目标程序c. 函数d. 过程e. 机器指令代码f. 模块g. 连接程序h.程序库A. b、g、eB. b、c、eC. e、g、fD. e、c、f41.由于受到具体机器主存容量的限制,编译程序几个不同阶段的工作往往被组合成,诸阶段的工作往往是进行的. 上面两空格对应的选项是: Aa. 过程b. 程序c. 批量d.遍e. 顺序f. 并行g. 成批h.穿插A. d和hB. d和eC. a和hD. a和e42.编译过程中,语法分析器的任务就是B .(1)分析单词是怎样构成的 (2) 分析单词串是如何构成语句和说明的(3)分析语句和说明是如何构成程序的(4) 分析程序的结构A. (2)(3)B. (2)(3)(4)C. (1)(2)(3)D.(1)(2)(3)(4)43.编译程序必须完成的工作有 A .(1) 词法分析(2) 语法分析(3) 语义分析(4) 代码生成(5) 中间代码生成(6) 代码优化A. (1)(2)(3)(4)B. (1)(2)(3)(4)(5)C. (1)(2)(3)(4)(5)(6)D. (1)(2)(3)(4)(6)44.按逻辑上划分,编译程序第二步工作是C。