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

编译原理复习题及答案一、选择题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、算符优先关系表不一定存在对应的优先函。
………………………………………()2、数组元素的地址计算与数组的存储方式有关。
……………………………()3、仅考虑一个基本块,不能确定一个赋值是否真是无用的。
…………………………()4、每个文法都能改写为LL(1)文法。
……………………………………………()5、对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。
………………()二、填空题1、从功能上说,程序语言的语句大体可分为()语句和()语句两大类。
2、扫描器的任务是从()中识别出一个个()。
3、所谓最右推导是指:()。
4、语法分析最常用的两类方法是()和()分析法。
5、一个上下文无关文法所含四个组成部分是()。
6、所谓语法制导翻译方法是()。
7、符号表中的信息栏中登记了每个名字的有关的性质,如()等等。
8、一个过程相应的DISPLA Y表的内容为()。
9、常用的两种动态存贮分配办法是()动态分配和()动态分配。
10、产生式是用于定义()的一种书写规则。
三、名词解释1、遍--2、无环路有向图(DAG)--3、语法分析--4、短语--5、后缀式--四、简述题1、考虑下面程序…………V ar a:integer;Procedure S(X);V ar X:integer;Begina:=a+1;X:=a+XEnd;Begina:=5;S(a);Print(a)End.试问:若参数传递方式分别采取传名和传值时,程序执行后输出a的值是什么?2、画出Pascal中实数(不带正负号,可带指数部分)的状态转换图。
3、写出表达式(a+b*c)/(a+b)-d的逆波兰表示及三元式序列。
4、已知文法G(S)S→a|∧|(T)T→T,S|S写出句子((a,a),a)的规范归约过程及每一步的句柄。
5、何谓优化?按所涉及的程序范围可分为哪几级优化?6、目标代码有哪几种形式?生成目标代码时通常应考虑哪几个问题?五、计算题1、写一个文法,使其语言是奇数集,且每个奇数不以0开头。
大连理工大学编译原理复习

编译技术命题指导意见教学内容知识点及题型第一章编译器概述A (1)编译的阶段划分[选择题2分][1] 编译程序绝大多数时间花在( )上。
A. 出错处理B. 词法分析C. 目标代码生成D. 符号表管理答案:D[2] ( ) 和代码优化部分不是每个编译程序都必需的。
A. 语法分析B. 中间代码生成C. 词法分析D. 代码生成答案:B[3] 编译程序前三个阶段完成的工作是( )。
A. 词法分析、语法分析和代码优化B. 代码生成、代码优化和词法分析C. 词法分析、语法分析和语义分析D. 词法分析、语法分析和代码生成答案:C(2)遍的概念[填空题2分][1] 编译阶段的活动常用一遍扫描来实现,一遍扫描包括和。
答案:读一个输入文件写一个输出文件[2] 将编译程序分成若干个“遍”是为了________。
答案:使程序的结构更加清晰[3] 编译器从逻辑上可以分为7个阶段,其中,可以作为一个后端遍的是___________阶段。
答案:代码生成(3)前端和后端的划分[简答题5分][1] 什么是前端?[5分]答案:编译器分成分析和综合两大部分。
分析部分揭示源程序的基本元素和它们所形成的层次结构,决定它们的含义,建立起源程序的中间表示,分析部分经常被称为前端。
[2] 什么是后端?[5分]答案:编译器分成分析和综合两大部分。
综合部分从源程序的中间表示建立起和源程序等价的目标程序,它经常被称为后端。
[3] 什么是前端?什么是后端?[5分]答案:编译器分成分析和综合两大部分。
分析部分揭示源程序的基本元素和它们所形成的层次结构,决定它们的含义,建立起源程序的中间表示,分析部分经常被称为前端。
综合部分从源程序的中间表示建立起和源程序等价的目标程序,它经常被称为后端。
第二章2.1 2.2 词法记号的定义及描述B (1)词法分析器的功能[选择题2分][1] 词法分析程序的输出结果是()。
A. 单词的种别编码B. 单词在符号表中的位置C. 单词的种别编码和单词属性值D. 单词的单词属性值答案:C[2] 词法分析器用于识别_____。
编译原理复习题-ans

新建试卷20181220104955一、单选题(共65题,65分)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、词法分析的任务是B、分析句子的含义C、识别句子D、生成目标代码7、常用的中间代码形式不含A、三元式B、四元式C、逆波兰式D、语法树8、代码优化的目的是A、节省时间B、节省空间C、节省时间和空间D、把编译程序进行等价交换9、代码生成阶段的主要任务是A、把高级语言翻译成汇编语言B、把高级语言翻译成机器语言C、把中间代码变换成依赖具体机器的目标代码D、把汇编语言翻译成机器语言10、将编译程序分成若干个“遍”是为了( )A、 . 提高程序的执行效率B、使程序的结构更加清晰C、利用有限的机器内存并提高机器的执行效率D、利用有限的机器内存但降低了机器的执行效率11、11.正规式MI 和M等价是指()。
A、 . MI 和M2 的状态数相等B、 Ml 和M2 的有向弧条数相等。
C、 .M1 和M2 所识别的语言集相等D、 Ml 和M2 状态数和有向弧条数相等12、中间代码生成时所依据的是()。
A、语法规则C、语义规则D、等价变换规则13、后缀式ab+cd+/可用表达式()来表示。
A、 a+b/c+dB、 (a+b)/(c+d)C、 a+b/(c+d)D、 a+b+c/d14、一个编译程序中,不仅包含词法分析,(),中间代码生成,代码优化,目标代码生成等五个部分。
编译原理复习题2

1、(10分)下面的文法G[S]是否是LL(1)文法,说明理由,构造LL(1)分析表S→aBc|bAB A→aAb|Bb B→cB|2、(5分)消除下列文法的左递归,消除左递归后判断是否是LL(1)文法。
S→SaB|bB A→S|a B→Ac3、(5分)构造下面算符文法的优先矩阵,判断是否是算符优先文法S→A[] A→[ A→aA A→B] B→a4、(10分)将表达式A+B*(C-D)-E/F↑G分别表示为三元式、四元式、逆波兰式序列5、(10分)现有文法如下:S→aS|bS|a 判断该文法是哪一类LR文法,说明理由,并构造相应的分析表。
1、已知文法G A::=aABe|a B::=Bb|d(1)给出与上述文法等价的LL(1)文法G’。
(2)构造预测分析表并给出输入串aade#分析过程。
(10分)2、设已给文法G: E::=E+T E::=T T::=T*F T::=F F::=P↑F F::=P P::=(E)P::=i构造此文法的算符优先矩阵。
(10分)3、有正规式b*abb*(abb*)*(1)构造该正规式所对应的NFA(画出状态转换图)。
(2)将所求的NFA确定化。
(画出确定化的状态转换图)。
(3)将所求的NFA最小化。
(画出最小化后的状态转换图)。
(10分)4、若有文法G(S)的产生式如下:S::=L=R S::=R L::=*R L::=i R::=L,构造识别所有项目集规范族的DFA。
(15分)(1)判断该文法是否是LR(0)文法,说明理由。
(2)判断该文法是否是SLR(1)文法,说明理由。
(3)判断该文法是否是LR(1)文法,说明理由。
(4)判断该文法是否是LALR(1)文法,说明理由1、(10分)将表达式((B*D+A)/E+D)*F+G分别表示为三元式、四元式、逆波兰式序列2、(10分)对基本块P画出DAG图B:=3D:=A+CE::=A*CF:=E+DG:=B*FH:=A+CI:=A*CJ:=H+IK:=B*5L:=K+JM:=L假定只有L在基本块出口之后活跃,写出优化后的四元式序列。
编译原理期末考试复习题

7.在中间代码优化中循环上的优化主要有不变表达式外提和削减运算强度。(N )
8.算符优先关系表不一定存在对应的优先函数。( N)
9.数组元素的地址计算与数组的存储方式有关。(N )
10.编译程序与具体的机器有关,与具体的语言无关。(N )
SELECT(F'->*F')={*};
SELECT(F'->ε)=FOLLOW(F')={(,a,b,^,+,),#};
SELECT(P->(E))={(}
SELECT(P->a)={a}
SELECT(P->b)={b}
SELECT(P->^)={^}
可见,相同左部产生式的SELECT集的交集均为空,所以文法G[E]是LL(1)文法。
A.候选式B.句型C.单词D.产生式
5.文法G[E]:
E→T∣E+T
T→F∣T﹡F
F→a∣(E)
该文法句型E+F﹡(E+T)的简单短语是下列符号串中的_____。
①(E+T)②E+T③F④F﹡(E+T)
A.①和③B.②和③C.③和④D.③
6.若一个文法是递归的,则它所产生的语言的句子_____。
A.( )是无穷多个B.( )是有穷多个
参考答案:
解:根据题意有NFA图:
下表由子集法将NFA转换为DFA:
下面将该DFA最小化:
(1)首先将它的状态集分成两个子集:P1={A,D,E},P2={B,C,F}
(2)区分P2:由于F(F,1)=F(C,1)=E,F(F,0)=F并且F(C,0)=C,所以F,C等价。由于F(B,0)=F(C,0)=C, F(B,1)=D,F(C,1)=E,而D,E不等价(见下步),从而B与C,F可以区分。有P21={C,F},P22={B}。
编译原理课后复习题答案(陈火旺+第三版)

第二章P36-6(1)L G ()1是0~9组成的数字串(2)最左推导:N ND NDD NDDD DDDD DDD DD D N ND DD D N ND NDD DDD DD D ⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒0010120127334556568最右推导:N ND N ND N ND N D N ND N D N ND N ND N D ⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒77272712712701274434886868568P36-7G(S)O N O D N S O AO A AD N→→→→→1357924680|||||||||||P36-8文法:E T E T E T TF T F T F F E i→+-→→|||*|/()| 最左推导:E E T T TF T i T i T F i F F i i F i i i E T T F F F i F i E i E T i T T i F T i i T i i F i i i ⇒+⇒+⇒+⇒+⇒+⇒+⇒+⇒+⇒⇒⇒⇒⇒⇒+⇒+⇒+⇒+⇒+⇒+********()*()*()*()*()*()*()最右推导:E E T E TF E T i E F i E i i T i i F i i i i i E T F T F F F E F E T F E F F E i F T i F F i F i i i i i ⇒+⇒+⇒+⇒+⇒+⇒+⇒+⇒+⇒⇒⇒⇒⇒+⇒+⇒+⇒+⇒+⇒+⇒+**********()*()*()*()*()*()*()*()语法树:/********************************EE FTE +T F F T +iiiEEFTE-T F F T -iiiEEFT+T F FTiii*i+i+ii-i-ii+i*i*****************/P36-9句子iiiei 有两个语法树:S iSeS iSei iiSei iiiei S iS iiSeS iiSei iiiei ⇒⇒⇒⇒⇒⇒⇒⇒P36-10/**************)(|)(|S T TTS S →→***************/P36-11/*************** L1:ε||cC C ab aAb A AC S →→→ L2:bcbBc B aA A AB S ||→→→εL3:εε||aBb B aAb A AB S →→→ L4:AB B A A B A S |01|10|→→→ε ***************/第三章习题参考答案P64–7(1)确定化:最小化:{,,,,,},{}{,,,,,}{,,}{,,,,,}{,,,}{,,,,},{},{}{,,,,}{,,}{,,,},{},{},{}{,,,}{,012345601234513501234512460123456012341350123456012310100==== 3012312401234560110112233234012345610101}{,,,}{,,}{,},{,}{},{},{}{,}{}{,}{,}{,}{}{,}{}{},{},{,},{},{},{}=====P64–8(1)01)0|1(*(2))5|0(|)5|0()9|8|7|6|5|4|3|2|1|0)(9|8|7|6|5|4|3|2|1(*(3)******)110|0(01|)110|0(10P64–12(a)确定化:给状态编号:最小化:{,},{,}{,}{}{,}{}{,}{,}{,}{}{,},{},{}012301101223032330123a ba b ====(b)已经确定化了,进行最小化最小化:{{,}, {,,,}}012345011012423451305234523452410243535353524012435011012424{,}{}{,}{,}{,,,}{,,,}{,,,}{,,,}{,}{,}{,}{,}{,}{,}{,}{,}{{,},{,},{,}}{,}{}{,}{,}{,}a b a b a b a b a b a =============={,}{,}{,}{,}{,}{,}{,}10243535353524 b a baP64–14(2):给状态编号:最小化:{,},{,}{,}{}{,}{}{,}{,}{,}{}{,},{},{}0123011012231323301230101====第四章P81–1(1) 按照T,S 的顺序消除左递归ε|,)(||^)(T S T TS T T a S S G '→''→→' 递归子程序: procedure S; beginif sym='a' or sym='^' then abvance else if sym='('then beginadvance;T;if sym=')' then advance;else error;endelse errorend;procedure T;beginS;'Tend;procedure 'T;beginif sym=','then beginadvance;S;'Tendend;其中:sym:是输入串指针IP所指的符号advance:是把IP调至下一个输入符号error:是出错诊察程序(2)FIRST(S)={a,^,(}FIRST(T)={a,^,(}FIRST('T)={,,ε}FOLLOW(S)={),,,#}FOLLOW(T)={)}FOLLOW('T)={)}预测分析表是LL(1)文法P81–2文法:|^||)(|*||b a E P F F F P F T T T F T E E E T E →'→''→→''→+→''→εεε(1)FIRST(E)={(,a,b,^} FIRST(E')={+,ε} FIRST(T)={(,a,b,^} FIRST(T')={(,a,b,^,ε} FIRST(F)={(,a,b,^} FIRST(F')={*,ε} FIRST(P)={(,a,b,^} FOLLOW(E)={#,)} FOLLOW(E')={#,)} FOLLOW(T)={+,),#} FOLLOW(T')={+,),#}FOLLOW(F)={(,a,b,^,+,),#} FOLLOW(F')={(,a,b,^,+,),#} FOLLOW(P)={*,(,a,b,^,+,),#} (2)考虑下列产生式:'→+'→'→'→E E T T F F P E a b ||*|()|^||εεεFIRST(+E)∩FIRST(ε)={+}∩{ε}=φ FIRST(+E)∩FOLLOW(E')={+}∩{#,)}=φ FIRST(T)∩FIRST(ε)={(,a,b,^}∩{ε}=φ FIRST(T)∩FOLLOW(T')={(,a,b,^}∩{+,),#}=φ FIRST(*F')∩FIRST(ε)={*}∩{ε}=φFIRST(*F')∩FOLLOW(F')={*}∩{(,a,b,^,+,),#}=φ FIRST((E))∩FIRST(a) ∩FIRST(b) ∩FIRST(^)=φ 所以,该文法式LL(1)文法.(4)procedure E;beginif sym='(' or sym='a' or sym='b' or sym='^' then begin T; E' endelse errorendprocedure E';beginif sym='+'then begin advance; E endelse if sym<>')' and sym<>'#' then error endprocedure T;beginif sym='(' or sym='a' or sym='b' or sym='^' then begin F; T' endelse errorendprocedure T';beginif sym='(' or sym='a' or sym='b' or sym='^' then Telse if sym='*' then errorendprocedure F;beginif sym='(' or sym='a' or sym='b' or sym='^' then begin P; F' endelse errorendprocedure F';beginif sym='*'then begin advance; F' endendprocedure P;beginif sym='a' or sym='b' or sym='^'then advanceelse if sym='(' thenbeginadvance; E;if sym=')' then advance else error endelse errorend;P81–3/***************(1) 是,满足三个条件。
编译原理期末复习题+答案-北华航天工业学院

一、单项选择题概述部分1.构造编译程序应掌握 。
DA. 源程序B. 目标语言C. 编译方法D. 以上三项都是2.编译程序绝大多数时间花在 上。
DA. 出错处理B. 词法分析C. 目标代码生成D. 表格管理3.编译程序是对 。
DA. 汇编程序的翻译B. 高级语言程序的解释执行C. 机器语言的执行D. 高级语言的翻译4. 将编译程序分成若干“遍”,是为了 。
BA. 提高程序的执行效率B. 使程序的结构更为清晰C 利用有限的机器内存并提高机器的执行效率D. 利用有限的机器内存但降低了机器的执行效率词法分析部分1.DFA M(见图1-1)接受的字集为 。
DA. 以0开头的二进制数组成的集合B. 以0结尾的二进制数组成的集合C. 含奇数个0的二进制数组成的集合D. 含偶数个0的二进制数组成的集合 2.词法分析器的输出结果是 。
C A. 单词的种别编码 B. 单词在符号表中的位置C. 单词的种别编码和自身值D. 单词自身值3.正规式M1和M2等价是指 。
CA. M1和M2的状态数相等B. M1和M2的有向边条数相等C. M1和M2所识别的语言集相等D. M1和M2状态数和有向边条数相等4.词法分析器的加工对象是 。
CA .中间代码B .单词C .源程序D .元程序5.同正规式(a|b )*等价的正规式为 。
DA .(a|b)+B .a*|b*C .(ab)*D .(a*|b*)+6. 两个DFA 等价是指: 。
DA. 这两个DFA 的状态数相同B. 这两个DFA 的状态数和有向弧条数都相等C. 这两个DFA 的有向弧条数相等D. 这两个DFA 接受的语言相同7. 下列符号串不可以由符号集S ={a,b}上的正闭包运算产生的是:(A )A. εB. aC. aaD. ab8.称有限自动机A1和A2等价是指________。
DA .A1和A2都是定义在一个字母表上的有限自动机B .A1和A2状态数和有向边数相等C .A1和A2状态数或有向边数相等图1-11D.A1和A2所能识别的字符串集合相等9.同正规式(a|b)+等价的正规式是_______。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、填空题
1. 将高级语言翻译成机器语言的翻译程序有两种: 和 。
2. 程序设计语言的单词一般可分为5类: 、 、常数、算符、界符。
3. 假读也称为 或 ,是指仅向前读取字符和判断字符是什么,判明后再处
理已读字符。
4. LEX程序由3部分组成:说明部分、 和辅助过程,它们之间用 做间
隔。
5. 常见的中间语言有 、树结构形式、三元式、 等。
6. 布尔表达式在程序语言中有两个基本功用:作为控制语句的 ,和作为 ,
获得逻辑值。
7. 源程序出错,一般分为 和 。
8. 循环代码优化的5种方式是: 、强度削弱、删除归纳变量、循环展开、 。
9. 活动记录是指一块用来存放一个过程一次执行所需要的 的连续 。
10. 衡量目标代码生成程序效率的两个指标通常是:目标代码的 、执行目标代码
所需的 。
11. 将高级语言翻译成机器语言的翻译程序有两种: 和 。
12. 有限自动机分为两类: 有限自动机和 有限自动机。
13. LEX程序由3部分组成:说明部分、 和辅助过程,它们之间用 做间隔。
14. 语法分析按句型产生方式区分为 和 的语法分析方法。
15. 常见的中间语言有 、树结构形式、三元式、 等。
16. 变址取数:(=[],T1[T],-,x),相当于 := 。
17. 过程调用的实质是把 转移到 运行。
18. 从程序的范围上,可以将优化分为:局部优化、 和 。
19. 递归子程序是指子程序调用了它本身,包括 递归调用和 递归调用两种。
20. 目标程序代码的形式有: 代码、可重位代码或 代码。
21. 将高级语言翻译成机器语言的翻译程序有两种: 和 。
22. 在计算机系统中,程序设计语言可分为机器语言、 、 。
23. 编译过程,从逻辑上可划分为:词法分析、语法分析、语义分析、 、代码
优化、 6个阶段。
24. 对于符号表,一般有3种构造和处理方法,即 、 和杂凑技术。
25. 所谓的语言是指符合 的全部句子所组成的 。
二、选择题
1. 四元式是一种普遍采用的中间代码形式,一个四元式由四个部分组成:OP、ARG1、
ARG2、RESULT,说法正确的是 。
A. ARG1表示算符,OP、ARG2表示运算量,RESULT表示运算结果
B. ARG2表示算符,ARG1、OP表示运算量,RESULT表示运算结果
C. RESULT表示算符,ARG1、ARG2表示运算量,OP表示运算结果
D. OP表示算符,ARG1、ARG2表示运算量,RESULT表示运算结果
2. 数组元素引用(相当于x:=T1[T])相应的四元式是 。
A.(=[],T1[T],-,x) B.(x,T1[T],-, =[]) C.(T1[T],=[] ,-,x) D.(-,T1[T],
=[] ,x)
3. 算符优先分析法是自下而上进行句型归约的一种分析方法,它是处理 的一
种有力工具。
A. 逻辑表达式 B. 算术表达式
C. 加法和减法 D. 乘法和除法
4. LR分析法是一种 。
A.自右向左、自下而上的句柄归约方法 B. 自左向右、自上而下的句柄归约
方法
C.自右向左、自上而下的句柄归约方法 D. 自左向右、自下而上的句柄归约
方法
5. 下面 不是目标程序代码的形式。
A. 转换代码 B. 可重位代码 C. 汇编代码 D.绝对机器代码
6. 运行时程序的存储空间中的数据区可被划分为: 。
A. 静态数据区、目标代码区、堆区 B. 目标代码区、栈区、堆区
C. 静态数据区、栈区、目标代码区 D. 静态数据区、栈区、堆区
7. 对文法符号X的值(属性)进行描述,如用X.TYPE、X.CAT、X.VAL,相应属性 是
正确的?
A.类型、种属、值 B.种属、类型、值 C.值、种属、类型 D.类型、值、
种属
8. 3型语言的识别器是 。
A.图灵机 B.线性界限自动机 C.下推自动机 D.有限自动机
9. 中间代码也常用树结构来表示,在树中, 分别代表运算符和运算量。
A. 叶节点和非叶节点 B. 非叶节点和根节点 C. 非叶节点和叶节点
D. 根节点和叶节点
10. 逆波兰表示法是算术表达式的后缀表示法,以下 是正确的表达式a+(b*c)
的逆波兰表示法?
E. a+bc* B. a*bc+ C. abc*+ D. abc+*
11. LL(1)分析器由 3部分组成。
A. LL(1)分析表、文法符号表、总控程序 B. LL(1)分析图、语法符号栈、
总控程序
C. LL(1)分析表、语法符号栈、总控程序 D. LL(1)分析表、语法符号栈、
引导程序
12. LR分析法是一种 。
A.自右向左、自下而上的句柄归约方法 B. 自左向右、自上而下的句柄归约
方法
C.自右向左、自上而下的句柄归约方法 D. 自左向右、自下而上的句柄归约
方法
13. FORTRAN程序中,通过 语句来开辟公用区。
F. PUBLIC B. PRIVATE C. COMMON D. PROTECT
14. 以下 不是文法的基本化简技术。
A. 消除无用符号和无用产生式 B. 消除单个产生式 C. 消除或规范空符产
生式 D.消除终结符
15. 对文法符号X的值(属性)进行描述,如用X.TYPE、X.CAT、X.VAL,相应属性 是
正确的?
A.类型、种属、值 B.种属、类型、值 C.值、种属、类型 D.类型、值、
种属
16. 运行时程序的存储空间中的数据区可被划分为: 。
A. 静态数据区、目标代码区、堆区 B. 目标代码区、栈区、堆区
C. 静态数据区、栈区、目标代码区 D. 静态数据区、栈区、堆区
17. 3型语言的识别器是 。
A.图灵机 B.线性界限自动机 C.下推自动机 D.有限自动机
18. 文法的规范归约就是句型的 。
A.短语归约 B.句柄归约 C.直接短语归约 D. 语法树归约
19. 在高级语言的参数传递方式中,以下 不是传递参数的方式。
A. 传地址方式 B.传名字 C.传初值 D.传值方式
20. 对数组元素赋值(相当于T1[T]:= x)相应的四元式是 。
A.([]=,x,-, T1[T]) B.(x,T1[T],-, []=) C.(T1[T],[]=,-,x) D.
(-,T1[T],[]= ,x)
21. 对文法符号X的值(属性)进行描述,如用X.TYPE、X.CAT、X.VAL,相应属性 是
正确的?
A.类型、种属、值 B.种属、类型、值 C.值、种属、类型 D.类型、值、
种属
22. 形式语义学可以分为 ?
A.操作语义学、指称语义学、公理语义学 B. 操作语义学、语言语义学、公理
语义学
C.操作语义学、指称语义学、文法语义学 D. 语言语义学、指称语义学、公理
语义学
23. 逆波兰表示法是算术表达式的后缀表示法,以下 是正确的表达式a+(b*c)
的逆波兰表示法?
G. a+bc* B. a*bc+ C. abc*+ D. abc+*
24. 四元式是一种普遍采用的中间代码形式,一个四元式由四个部分组成:OP、ARG1、
ARG2、RESULT,说法正确的是 。
H. ARG1表示算符,OP、ARG2表示运算量,RESULT表示运算结果
I. ARG2表示算符,ARG1、OP表示运算量,RESULT表示运算结果
J. RESULT表示算符,ARG1、ARG2表示运算量,OP表示运算结果
K. OP表示算符,ARG1、ARG2表示运算量,RESULT表示运算结果
三、简答题
1. 简述编译过程有哪些步骤?
2. 什么是语法制导翻译?
3. 简述高级语言对存储空间的存储分配策略。
4. 四元式(return,-,-,-)表示什么操作?
5. 静态语义检查通常包括哪些内容?
6. 简述编译过程有哪些步骤?
7. 文法是一个四元组:G[S]=(VN,VT,P,S),其中,VN,VT,P,S分别代表什么?
8. 将扫描器分离主要考虑了哪三种因素?
9. 简述高级语言对存储空间的存储分配策略。
10. 基本块是中间语言代码序列的程序段,其具有哪些性质?