编译原理试题B及答案
《编译原理》考试试题及答案
《编译原理》考试试题及答案(附录)一、判断题:1.一个上下文无关文法的开始符,可以是终结符或非终结符。
( X )2.一个句型的直接短语是唯一的。
( X )3.已经证明文法的二义性是可判定的。
( X )4.每个基本块可用一个DAG表示。
(√)5.每个过程的活动记录的体积在编译时可静态确定。
(√)6.2型文法一定是3型文法。
( x )7.一个句型一定句子。
( X )8.算符优先分析法每次都是对句柄进行归约。
(应是最左素短语) ( X )9.采用三元式实现三地址代码时,不利于对中间代码进行优化。
(√)10.编译过程中,语法分析器的任务是分析单词是怎样构成的。
( x )11.一个优先表一定存在相应的优先函数。
( x )12.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
( )13.递归下降分析法是一种自下而上分析法。
( )14.并不是每个文法都能改写成LL(1)文法。
( )15.每个基本块只有一个入口和一个出口。
( )16.一个LL(1)文法一定是无二义的。
( )17.逆波兰法表示的表达试亦称前缀式。
( )18.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
( )19.正规文法产生的语言都可以用上下文无关文法来描述。
( )20.一个优先表一定存在相应的优先函数。
( )21.3型文法一定是2型文法。
( )22.如果一个文法存在某个句子对应两棵不同的语法树,则文法是二义性的。
( )二、填空题:1.( 最右推导 )称为规范推导。
2.编译过程可分为(词法分析),(语法分析),(语义分析和中间代码生成),(代码优化)和(目标代码生成)五个阶段。
3.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是()。
4.从功能上说,程序语言的语句大体可分为()语句和()语句两大类。
5.语法分析器的输入是(),其输出是()。
6.扫描器的任务是从()中识别出一个个()。
《编译原理》试卷B答案【考试试卷答案】
《编译原理》试卷B 答案【考试试卷答案】《编译原理》课程考试试卷B 答案一:(每选项2分)DFABA 二:(每题2分)× √××√ 三:(每题10分) 1. 解答:S-属性文法是只含有综合属性的属性文法。
L-属性文法要求对于每个产生式A X1X2…Xn ,其每个语义规则中的每个属性或者是综合属性,或者是Xj 的一个继承属性,且该属性仅依赖于:(1) 产生式Xj 的左边符号X1,X2…Xj -1的属性; (2) A 的继承属性。
S-属性文法是L-属性文法的特例。
2.什么是句柄?什么是素短语?一个句型的最左直接短语称为该句型的句柄。
素短语是这样的一个短语,它至少包含一个终结符并且不包含更小的素短语。
3.答:(1)E ⇒T ⇒F ⇒(E) ⇒(E+T) ⇒(E+F) ⇒(E+i) ⇒(T+i) ⇒(T*F+i) (2)短语:(T*F+i), T*F+i, T*F, i 直接短语:T*F, i 句柄:T*F 素短语:T*F, i4. 答:文法:S → 1S0|A|ε A →0A1|011最小化:{1,2,3} {4}{1,2,3}0={2,4} {1,3} {2} {4}6.解答:计算文法的FIRST 和FOLLOW 集合: FIRST(M) = { a ,b ,e ,d ,ε }FIRST(T) = { a ,b ,e ,d ,ε } FIRST(B) = {b ,e ,d ,ε } FIRST(D) = {d ,ε}FOLLOW (M) = {#}FOLLOW (T) = { a ,b ,e ,d ,#} FOLLOW (B) = {a ,# }FOLLOW (D) = { b}检查文法的所有产生式,我们可以得到:1. 该文法不含左递归,2. 该文法中每一个非终结符M ,T ,B ,D 的各个产生式的候选首符集两两不相交。
3. 该文法的非终结符T 、B 和D ,它们都有ε候选式,而且FIRST(T)∩FOLLOW(T)={ a ,b ,e ,d }≠φ 所以该文法不是LL(1)文法。
编译原理考试题库B
西北民族大学计算机科学与信息工程学院期末考试编译原理试卷(B卷)专业:计算机科学技术课程代码: 15002171学号: 姓名:一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其代码填入题后的括号内。
每小空1分,共 10 分)1、一般程序设计语言的定义都涉及 B 三个方面。
(1)语法 (2)语义 (3)语用 (4)程序基本符号的确定供选答案:A. (1)(2)(3) B. (1)(2)(4)C. (1)(3)(4)D. (2)(3)(4)[能力层次:记忆] [难易度:B]2、程序语言一般分为(A)和(C)两大类,其中(C)通常又称为面向机器的语言。
面向机器语言指的是(B),其特点是(D),在此基础上产生了与人类自然语言比较接近的(D)(1)(2)(3)(6)A. 高级语言B. 专用语言C. 低级语言D. 通用程序语言(4)A. 用于解决机器硬件设计问题的语言B. 特定计算机系统所固有的语言C. 各种计算机系统都通用的语言D.只能在一台计算机上使用的语言(5) A. 程序的执行效率低,编制效率低,可读性差B. 程序的执行效率高,编制效率高,可读性强C. 程序的执行效率低,编制效率高,可读性强D. 程序的执行效率高,编制效率低,可读性差[能力层次:记忆] [难易度:C]3、高级语言编译程序常用的语法分析方法中,递归下降分析法属于 B 分析方法。
A.自左至右B.自顶向下C.自底向上D.自右向左[能力层次:记忆] [难易度:A]4、文法 G 产生的 D 的全体是该文法描述的语言。
A .句型 B. 终结符集 C. 非终结符集 D. 句子[能力层次:记忆] [难易度:A]5、下列属于三性文法的是: CA.G1:S→AbB S→AAS A→Bab B→bB.G2: S→A ASA→abbSa bSA→ABB AS→aabbb A→baC.G3: S→aB S→aA A→bA B→bD.G4: S→Aa S→Babb A→Cc A→Bb B→Bb B→a C→D C→Bab D→d[能力层次:简单运用] [难易度:C]二、判断题(认为对的,在题后的括号内打“√”,认为错的打“×”。
完整word版,编译原理试卷及答案,推荐文档
东 北 大 学秦 皇 岛 分 校课程名称: 编译原理 试卷: (B )答案 考试形式: 闭卷授课专业: 计算机科学与技术 考试日期: 年 月 日 试卷:共 2 页 题号 一 二 三 四 总分得分 阅卷人一、填空题(每空2分,共30分)1、编译程序的整个过程可以从逻辑上划分为词法分析、 语法分析 、语义分析、中间代码生成、 代码优化 和目标代码生成等几个阶段,另外还有两个重要的工 作是 理 和出错处理。
表格管2、规范规约中的可归约串是 句柄 ,算符优先分析中的可归约串是 最左素短语 。
3、语法分析方法主要可分为 自顶向下 和 自底向上 两大类。
4、LR (0)文法的项目集中不会出现 移进-归约 冲突和 归约-归约 冲突。
5、数据空间的动态存储分配方式可分为 栈式 和 堆式 两种。
6、编译程序是指能将 源语言 程序翻译成 目标语言 程序的程序。
7、确定有穷自动机DFA 是 NFA 的一个特例。
8、表达式 (a+b)*c 的逆波兰表示为 ab+c* 。
二、选择题(每题2分,共20分)1、LR 语法分析栈中存放的状态是识别 B 的DFA 状态。
A 、前缀B 、可归前缀C 、项目D 、句柄 2、 D 不可能是目标代码。
A 、汇编指令代码B 、可重定位指令代码C 、绝对机器指令代码D 、中间代码 3、一个控制流程图就是具有 C 的有向图A 、唯一入口结点B 、唯一出口结点C 、唯一首结点D 、唯一尾结点 4、设有文法G[S]:S →b|bBB →bS ,则该文法所描述的语言是C 。
A 、L (G )={b i |i ≥0}B 、L (G )={b 2i |i ≥0}C 、L (G )={b 2i+1|i ≥0}D 、L (G )={b 2i+1|i ≥1}5、把汇编语言程序翻译成机器可执行的目标程序的工作是由 B 完成的。
A 、编译器B 、汇编器C 、解释器D 、预处理器 6、在目标代码生成阶段,符号表用于 D 。
电子科技大学编译原理--B答案--网络教育
《计算机编译原理》试卷B参考答案一、单项选择题(每小题1分,共25分)1、有文法G:E→E*T|TT→T+i|i句子1+2*8+6按该文法G归约,其值为___B___。
A、23B、42C、30D、172、规范归约指___B___。
A、最左推导的逆过程B、最右推导的逆过程C、规范推导D、最左归约的逆过程3、词法分析所依据的是___B___。
A、语义规则B、构词规则C、语法规则D、等价变换规则4、词法分析器的输出结果是___C___。
A、单词的种别编码B、单词在符号表中的位置C、单词的种别编码和自身值D、单词自身值5、正规式M1和M2等价是指___C___。
A、M1和M2的状态数相等B、M1和M2的有向弧条数相等C、M1和M2所识别的语言集相等D、M1和M2状态数和有向弧条数相等6、下面的状态转换图接受的字集为___D___。
A、以0开头的二进制数组成的集合B、以0结尾的二进制数组成的集合C、含奇数个0的二进制数组成的集合D、含偶数个0的二进制数组成的集合7、词法分析器作为独立的阶段使整个编译程序结构更加简洁、明确,因此,___B___。
A、词法分析器应作为独立的一遍B、词法分析器作为子程序较好C、词法分析器分解为多个过程,由语法分析器选择使用D、词法分析器并不作为一个独立的阶段8、若a为终结符,则A→α·aβ为___B___项目A、归约B、移进C、接受D、待约9、若项目集I k含有A→α·,则在状态k时,仅当面临的输入符号a∈FOLLOW(A)时,才采取“A→α·”动作的一定是___D___。
A、LALR文法B、LR(0)文法C、LR(1)文法D、SLR(1)文法10、就文法的描述能力来说,有___C___。
A、SLR(1)⊂LR(0)B、LR(1)⊂LR(0)C、SLR(1)⊂LR(1)D、无二义文法⊂LR(1)11、在LR(0)的ACTION子表中,如果某一行中存在标记“r j”的栏,则___A___。
2020秋《编译原理》试题及参考答案
《编译原理》参考资料一、单选题1.现代多数实用编译程序所产生的目标代码都是一种可重定位的指令代码,在运行前必须借助于一个(C)把各个目标模块,包括系统提供的库模块连接在一起,确定程序变量或常数在主存中的位置,装入内存中制定的起始地址,使之成为一个可运行的绝对指令代码的程序。
A.重定位程序B.解释程序C.连接装配程序D.诊断程序2.一个句型中的( A)称为该句型的句柄。
A.最左直接短语B.最右直接短语C.终结符D.非终结符3.将编译程序分成若干个“遍”是为了(B)。
A.提高程序的执行效率B.使程序的结构更加清晰C.利用有限的机器内存并提高机器的执行效率D.利用有限的机器内存但降低了机器的执行效率4.语法分析器接收以(C)为单位的输入,并产生有关信息供以后各阶段使用。
A.表达式B.产生式C.单词D.语句5.词法分析器用于识别(C )A.句子B.产生式C.单词D.句型6.语言的词法规则一般用Chomsky的(D)型文法来描述A.0B.1C.2D.37.由文法的开始符经0步或多步推导产生的文法符号序列是(C)。
A.短语B.句柄C.句型D.句子8.LR(k)文法(A )A.都是无二义性的B.都是二义性的C.一部分是二义性的D.无法判定9.Chomsky把文法分成四种类型,其中,(D)也称正规文法A.0型B.1型C.2型D.3型10.( C)不是编译程序的组成部分。
A.词法分析程序B.代码生成程序C.设备管理程序D.语法分析程序11.编译程序绝大多数时间花在(D)上。
A.出错处理B.词法分析C.目标代码生成D.管理表12.设G为算符优先文法,G的任意终结符对a、b有以下关系成立(C)。
A.若f(a)>g(b),则a>bB.若f(a)<g(b),则a<bC.a~b都不一定成立D.a~b一定成立13.使用(A)可以定义一个程序的意义。
A.语义规则B.词法规则C.产生规则D.词法规则14.在运行空间的划分中有一个单独的区域叫堆,用来存放(C)。
编译原理试题及参考答案
编译原理试题及参考答案课程测试试题(04A卷)I、命题院(部):数学与计算机科学学院II、课程名称:编译原理III、测试学期:2006-2007 学年度第1 学期IV、测试对象:数计、国交学院计科专业2004 级1、2、国交班V、问卷页数(A4):3 页VI、答卷页数(A4):4 页VII、考试⽅式:闭卷(开卷、闭卷或课程⼩论⽂,请填写清楚)VIII、问卷内容:(请⽼师在出题时安排紧凑,填空题象征性的留出⼀点空格,学⽣将所有的答案做在答题纸上的规定位置,并写清楚⼤题、⼩题的题号)⼀、填空题(共30分,30个空,每空1分)1、典型⾼级程序设计语⾔编译系统的⼯作过程⼀般分为六个阶段,即词法分析、语法分析、语义分析、中间代码⽣成、、⽬标代码⽣成。
编译阶段的两种组合⽅式是组合法和按遍组合法,这两种组合⽅式的主要参考因素都是的特征。
2、Chomsky将⽂法按其所表⽰语⾔的表达能⼒,由⾼往低分为四类:0型,1型,2型,3型⽂法。
其中,2型⽂法也称,它的所有规则α→β都满⾜:α∈,β∈ ((V N∪V T) *且,仅当β= ε时例外。
3、现代编译系统多采⽤⽅法,即在语法分析过程中根据各个规则所相联的或所对应的语义⼦程序进⾏翻译的办法。
该⽅法使⽤为⼯具来说明程序设计语⾔的语义。
4、构造与NFA M等价的正规⽂法G的⽅法如下:(1)对转换函数f(A,a)=B或f(A,ε)=B,改成形如或的产⽣式;(2)对可识别终态Z,增加⼀个产⽣式:。
5、代码⽣成要考虑的主要问题:充分利⽤的问题、选择的问题、选择的问题。
6、设有穷⾃动机M=(K,∑,f,S,Z),若当M为时,满⾜z0∈f(S,α)且z0∈Z,或当M为时,满⾜f(S,α)=P∈Z,则称符号串α∈∑*可被M所。
7、符号表中每⼀项对应⼀个多元组。
符号表项的组织可分为组织、组织、组织等。
8、对于A∈?VN 定义A的后续符号集:FOLLOW(A)={a|S=*>uAβ,a∈VT,且a∈,u∈VT*,β∈V+;若,则#∈FOLLOW(A)。
2008.6编译原理期末考试试卷(B卷)答案(20201110155547)
华南农业大学期末考试答案(B 卷)2007学年第2学期考试科目:编译原理—、简述编译程序的工作过程。
(10) 编译程序的工作过程,是指从输入源程序开始到输出目标程序为止的整个过程,是 非常复杂的,就其过程而言,一般可以划分为五个工作阶段:①词法分析,对构成 源程序的字符串进行扫描和分解,识别出一个个的单词;②语法分析,根据语言的语法规则,把单词符号串分解成各类语法单位;③语义分析与中间代码产生,即对⑤目标代码生成,把中间代码变换成特定机器上的低级语言指令形式。
彳、S FQ S QQ S&S aaaeS 右aaea2、 S aSeS aaSeS aaaeS aaaea各类语法单位, 分析其汉一并进行初步翻译; ④代码优化,以期产生更高效的代码;二、构造下列正规式相应的DFA (用状态转换图表示)1(0 I 1) *1四、 (1)(45)4⑶(0|5)(1*01*01=^) * (2)伸 |2|3|4|5|6|7|8|9)* (3) =炉10曲 ) 对句子8眈閃存在如下两个不同的最左推导序列:因此,文法是二义的。
五、给出下面语言的相应文法:(10)_{a 仞n> 1} Lz={a n b m+n a m | nA 1, m> 0}G1・ G1 :S^aSb|abS—ABA —*aAb | abB —> bBa | E六、设有文法G[A]:L BCc|gDBB~bCDE | £C ―¥ DaB | caD—dD |£E—^gAf | c(1) 计算该文法的每一个非络篩FIRST集和FOLLOW集;(2) 试判断该文法是禹LL(1)文法。
(讪 _D d, £a,b,c,f,gE c,ga,c,d,f.g 是LL(1)文法。
七、G :L ABA TO A'A L OA’AfOA'B B八、对表达式文法G :E — E+T | T T -> T*F | F F 一 (E)|l(1) 造各非终结符的FIRSTVT 和LASTVT 集合; (2)构造文法的算符优先关系表。
编译原理B卷答案
平顶山工学院2008—2009学年第二学期期末考试(查)《编译原理》试题参考答案(B卷)一、填空题1、散列法2、词法分析、语义分析和中间代码生成、代码优化3、自顶向下、自底向上4、abcde/+*+5、编译、解释6、语法单位二、选择题1、BD2、A3、C4、D三、计算题1、先用R+=RR*改造题设的正规表达式为b*(d∣ad) (b∣ab) (b∣ab)*,然后构造其NFA M,如图2、100 (j<, a, 0, 102) 101 (j,_, _,110)102 (j>,b,5,104)103 (j, _,_,110)104 (*,1,40,T1)105 (*,1,2,T2)106 (+,T1,T2,T3)107 (−,X,42,T4)108 ([]=,1, _,T4[T3]) 109 (j, _,_,115)110 (*,3,40,T1)111 (*,2,2,T2)112 (+,T1,T2,T3)113 (−,X,42,T4)114 ([]=,0, _,T4[T3]) 1153、短语有:T+T*F+iT+T*FTT*Fi根据最左素短语必须具备的条件及短语的要求得到最左素短语为T*F。
4、对(a,(a,a)的最左推导为:S(T)(T,S)(S,S)(a,S)(a,(T))(a,(T,S))(a,(S,S))(a,(a,S))(a,(a,a))四、证明题:1、对于句子v*v+d的语法树不只一棵,可画出语法树或写出两个不同的最左推导。
2、由于文法G[E]中的任何产生式右部都不含两个相邻的非终结符,所以G[E]是算符文法。
此外,因为(1) 由于存在E→E+E,而E+E中的第二个E可推出E E*E,即有+⋖*;(2) 由于存在E→E*E,而E*E中的第一个E可推出E E+E,即有+⋗*。
此即运算符+和*之间同时存在着两种不同的优先关系,故文法G[E]不是一个算符优先文法。
五、综合题1、D(1)={1}D(2)={1,2}D(3)={1,2,3}D(4)={1,2,4}D(5)={1,2,4,5}D(6)={1,2,4,6}D(7)={1,2,4,7}6→6、7→4、4→2是回边由回边6→6组成的循环是{6},由回边7→4组成的循环是{4,5,6,7},由回边4→2组成的循环是{2,3,4,5,6,7}2、Fistvt(S)={[,a} Firstvt(A)={[,a} Firstvt(B)={a}3、解:初始分划得Π0:终态组{0},非终态组{1,2,3,4,5} 对非终态组进行审查:{1,2,3,4,5}a {0,1,3,5}而{0,1,3,5}既不属于{0},也不属于{1,2,3,4,5} ∵{4} a {0},所以得到新分划 Π1:{0},{4},{1,2,3,5} 对{1,2,3,5}进行审查: ∵{1,5} b {4}{2,3} b {1,2,3,5},故得到新分划 Π2:{0},{4},{1, 5},{2,3}{1, 5} a {1, 5}。
《编译原理》历年试题及答案
<编译原理>历年试题及答案一.(每项选择2分,共20分)选择题1.将编译程序分成若干个“遍”是为了___。
a.提高程序的执行效率b.使程序的结构更加清晰c.利用有限的机器内存并提高机器的执行效率d.利用有限的机器内存但降低了机器的执行效率2.构造编译程序应掌握____。
a.源程序b.目标语言c.编译方法d.以上三项都是3.变量应当_。
a.持有左值b.持有右值c.既持有左值又持有右值d.既不持有左值也不持有右值4.编译程序绝大多数时间花在____上。
a.出错处理b.词法分析c.目标代码生成d.管理表格5.词法分析器的输出结果是____。
a.单词的种别编码b.单词在符号表中的位置c.单词的种别编码和自身值d.单词自身值6.正规式MI和M2等价是指____。
a. MI和M2的状态数相等b.Ml和M2的有向弧条数相等。
C.M1和M2所识别的语言集相等 d. Ml和M2状态数和有向弧条数相等7.中间代码生成时所依据的是—。
a.语法规则 b.词法规则 c.语义规则 d.等价变换规则8.后缀式ab+cd+/可用表达式___来表示。
a.a+b/c+d b.(a+b)/(c+d) c.a+b/(c+d) d.a+b+c/d9.程序所需的数据空间在程序运行前就可确定,称为______管理技术。
a.动态存储b.栈式存储c.静态存储d.堆式存储10.堆式动态分配申请和释放存储空间遵守________原则。
a.先请先放b.先请后放c.后请先放d.任意二(每小题10分,共80分)简答题1.画出编译程序的总体结构图,简述各部分的主要功能。
2. 已知文法G[E]:E→ET+|T T→TF* | F F→F^ | a试证:FF^^*是文法的句型,指出该句型的短语、简单短语和句柄.3.为正规式(a|b) *a(a|b)构造一个确定的有限自动机。
4.设文法G(S):S→(L)|a S|aL→L,S|S(1) 消除左递归和回溯;(2) 计算每个非终结符的FIRST和FOLLOW;(3) 构造预测分析表。
编译原理试题B及答案
编译原理试题B一、单项选择题(每题1分,共20分)1、对编译系统有关概念描述正确的是( B)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→0S|1A|0,A→1|1S|0B,B→1A|0B,下列符号串中是该文法的句子的是()?A.1010001001101 B.0101001110010010C.1101010011110111 D.1010011101101010(可画出DFA验证)5. 文法G[S]:S→aA|bC|aA→aS|bBB→aC|bA|bC→aB|bS ,则不是L(G)句子的是( B )A.a100b50ab100 B. a1000b500abaC.a500b60aab2a D. a100b40ab10aa(画出DFA)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、将编译程序分成若干个“遍”是为了。
a.提高程序的执行效率b.使程序的结构更加清晰c.利用有限的机器内存并提高机器的执行效率d.利用有限的机器内存但降低了机器的执行效率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、语法分析应遵循。
a.语义规则b.语法规则c.构词规则d.等价变换规则二、多项选择题1、编译程序各阶段的工作都涉及到。
a.语法分析b.表格管理c.出错处理d.语义分析e.词法分析2、编译程序工作时,通常有阶段。
a.词法分析b.语法分析c.中间代码生成d.语义检查e.目标代码生成三、填空题1、解释程序和编译程序的区别在于。
2、编译过程通常可分为5个阶段,分别是、语法分析、代码优化和目标代码生成。
3、编译程序工作过程中,第一段输入是,最后阶段的输出为程序。
4、编译程序是指将程序翻译成程序的程序。
单选解答1、将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰,故选b。
2、构造编译程序应掌握源程序、目标语言及编译方法等三方面的知识,故选d。
3、对编译而言,变量既持有左值又持有右值,故选c。
4、编译程序打交道最多的就是各种表格,因此选d。
5、目标代码包括汇编指令代码、可重定位指令代码和绝对指令代码3种,因此不是目标代码的只能选d。
13-14学年第2学期期末考试《编译原理》B详解
我以一名大学生的人格尊严保证,在本场考试中,自觉遵守考试纪律,服从考试管理,决不作弊或帮助别人作弊!签名:学院专业学号级班··················密···················封·····················线··················命题人签字:系主任签字:审核院长签字:共印份数:第 1 页共 4页聊城大学计算机学院13—14学年第2学期期末考试2011级《编译原理》试题(闭卷B卷)一、填空题(共10题,每空1分,共15分)1、语法分析是依据语言的规则进行的,中间代码产生是依据语言的紧密联系的。
2、规范归约是推导的逆过程。
3、表达式a+b/5*(e+f)*3的逆波兰式为。
4、自顶向下语法分析会遇到的主要问题有和。
5、对于文法G,仅含终结符号的句型称为。
6、LL(K)文法中,第一个L表示,第二个L表示,K表示。
7、若两个正规式所表示的相同,则认为二者是等价的。
8、设有文法G[S]=({b},{S,B},S,{S →b|bB,B→bS}),该文法所描述的语言是。
编译原理考B答案【考试试卷答案】
编译原理考B答案【考试试卷答案】《编译原理》考试试卷B参考答案适用专业:考试日期:闭卷所需时间:120分钟总分:100分一、填空题:(每空1分,共10分)1. 边翻译边执行和不生成目标代码。
2. 表格。
3. 自上而下和自底向上。
4. 左递归和回溯。
5. 正则式或正规文法, 有穷自动机。
6. 最左素短语。
二、单选题(每小题2分,共10分)1-5:CCBBB三、问答题(每小题10分,共80分)1.(1)编译程序一个编译程序就是一个语言翻译程序,它把一种语言(称作源语言)书写的程序翻译成另一种语言(称作目标语言)的程序(2)句柄一个句型的最左直接短语称为该句型的句柄(3)上下文无关文法对任一产生式α→β,α为非终结符,β为终结符和非终结符组成的符号串。
2.编译程序一般由词法分析程序,语法分析程序,语义分析程序,中间代码生成程序,目标代码生成程序,代码优化程序,符号表管理程序和错误处理程序等成分构成。
3.G[S]:S→ABA→aAbb|εB→cB|ε4.初始划分:I1={1,2,3,4},I2={5,6,7}因为move(I1,a)={6,1,7,4}→move({1,2},a)={6,7}move({3,4},a)={1,4} 所以第二次划分:I1={1,2},I2={3,4},I3={5,6,7}又因为move({3,4},a)={1,4}→ move({3},a)={1}, move({4},a)={4}所以,将{3,4}划分为集合:{3},{4}move({5,6,7},a)={4,7}→move({5},a)={7}, move({6,7},a)={4} 所以将集合{5,6,7}划分为:{5},{6,7}最终划分结果:I1={1,2},I2={3},I3={4},I4={5},I5={6,7}产生式的Select集交集都为空集,所以该文法是LL(1)文法。
6. G[ E]: (1) E →TE’ (2) E’ →+TE’(3) E’ →ε (4) T →FT’(5) T’ →*FT’ (6) T’ →ε(7) F → (E) (8) F →a7.S → V → ViT→ViF→Vi(→Ti(→T+Fi(→T+(i(→F+(i(→(+(i( 句型F+Fi(短语:F,F+F,(,F+Fi( 句柄:F素短语:F+F,(。
编译原理(B卷)答案
湖北第二师范学院2014-2015学年度第二学期《编译原理》课程考试答案(B卷) 院系:计算机学院专业班级:学生姓名:学号:考试方式:闭卷………………………………………………………………………………………………………………一、填空题(每空1分,共10分)1.从编译系统的方式看,有两种编译方式,一种是(解释)方式,另一种是(编译)。
2.编译的过程一般讲,有(词法分析),(语法分析),(语义分析),(中间代码生成),(中间代码优化)和(目标代码生成)。
3.程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即(静态存储分配)方案和(动态存储分配)方案。
二、综合题(共90分)1.(5分)构造语言{a3n|n≥1}的文法答案:其文法是(5分)P(A):A→aaa|aaaA2.(5分)给出下面表达式的逆波兰表示:a*b+(c-d)/e答案:ab*cd-e/+ (5分)3.(30分)给定文法 G[E] :E → E+T | TT → T*F | FF → (E) | i该文法是 LL(1) 文法吗?为什么?不是的能否改造为LL(1)文法,如果能够改造,给出改造后的文法,并给出改造后文法是LL(1)文法的证明过程。
无论改造前还是改造后的文法,如果是LL(1)文法,则给出(i+i)*i的分析过程(要求给出详细过程,并给出LL(1)的分析表)答案:(1)该文法不是LL(1)文法,因为文法的产生式含有左递归(2分)(2)该文法可改造为LL(1)文法,即消除左递归,改造后的文法是(3分)E → TE’E’→ +TE’ | εT → FT’T’→ *FT’ |εF → (E) | i证明改造后的文法是LL(1)文法的过程A.求可达ε的非终结符(1分)可达的是E’,T’B.求每个非终结符的First集合(3分)First(E)={ (,i}First(E’)={+}First(T)={ (,i}First(T’)={*}First(F)={ (,i}C.求每个产生式右部字符串的First集合(3分)First(TE’)={ (,i}First(+TE’)={+}First(FT’)={ (,i}First(*FT’)={*}First((E))={ ( }First(i)={ i }First(ε)={ ε}D.求每个非终结符的Follow集合(3分)Follow(E)={$,)}Follow(E’)= Follow(E)={$,)}Follow(T)=First(E’) ∪ Follow(E)={$,+,)}Follow(T’)= Follow(T)={$,+,)}Follow(F)= First(T’) ∪ Follow(T)={$,+, *,)}E.求每个非终结符的Select集合(5分)Select(E → TE’)=First(TE’)={ (,i }Select(E’→ +TE’)=First(+TE’)={ + }Select(E’→ε)=First(ε)-{ ε} ∪ Follow(E’)={ $,) }Select(T → FT’)=First(FT’)={ (,i }Select(T’→ *FT’)=First(*FT’)={ * }Select(T’→ε)=First(ε)-{ ε} ∪ Follow(T’)={ $,+,) }Select(F → (E))=First((E))={ ( }Select(F → i)=First(TE’)={ i }F.求有多个产生式的非终结符Select集合的交集(2分)显然有Select(E’→ +TE’) ∩Select(E’→ε)=ΦSelect(T’→ *FT’) ∩Select(T’→ε)= ΦSelect(F → (E))= ∩Select(F → i)= Φ所以改造后的文法是LL(1)文法(3)、根据E给出预测分析表(4分)符号串(i+i)*i的分析过程(4分)4.(10分)对下面的DFA进行最简化答题:第1步:确定化过程(5分)将7个状态分成两个状态集,终态集[q5,q6],非终态集[q0,q1,q2,q3,q4,q7]根据上表命名不可分割的终态集,及到达状态第2步:最小化的DFA5.(15分)给定文法 G[E] :E → E+T | TT → T*F | FF → (E) | i该文法是算符优先文法吗?是,则构造该文法的算符优先关系矩阵,并给出(i+i)*i的分析过程(要求给出详细过程)答案:(1)该文法是算符优先文法(1分)(2)构造该文法的算符优先矩阵A.求各非终结符的FirstVT集合(3分)FirstVT(E)={+,*,(,i}FirstVT(T)={*,(,i}FirstVT(F)={(,i}B.求各非终结符的LasttVT集合(3分)LastVT(E)={ +,*,),i }LastVT(T)={ *,),i }LastVT(F)={ ),i }C.构造优先关系表(4分)6.(25分)给定文法 G[E] :E → E+T | TT → T*F | FF → (E) | i该文法是LR(0)文法吗?是,则构造该文法的LR(0)分析表,并给出(i+i)*i的分析过程,不是的,是SLR(1)文法吗,是,则构造该文法的SLR(1)分析表,并给出(i+i)*i的分析过程。
答案编译原理(B)
一、填空题(每小题2分,共20分)
1. 机器语言程序,编译程序
2. 表格处理,出错处理
3. 简单短语
4. =α {ε}=α
5. {ba,bb}
6. a,b,A,B
7. 0型包含1型包含2型包含3型
8. 优先分析,LR分析9. 确定,不确定10. abcde/+*+
二、选择题(每个2分,共20分)
1.C
2.B
3.C
4.D
5.D
6.C
7.B
8.D
9.C 10.B
三、简答题(每小题10分,共计20分)
1. 答:相同点是都是一个五元组(K,∑,M,S,Z),其中K是有穷非空的状态集合;∑为有
穷的输入字母表;Z是非空的终止状态结合。
不同点是M是映射函数,是一一映射关系,S是开始状态,个数唯一。
2. 答:出现移进归约冲突的项目集里的表达式,first集与移进项集交集为空集。
四、应用题(每小题10分,共计20分)
1. Z→ (+|-)AB|D (2分)
A→AB|C (2分)
B→0|C|BB (2分)
C→1|2|3|4|5|6|7|8|9 (2分)
D→2|4|6|8 (2分)
2. A⇒B⇒…⇒ ecfeaeg (共11步,错步漏步均不给分)(5分)
A⇒B⇒…⇒ edecfeaeg (共13步,错步漏步均不给分)(5分)
五、综合题(每小题10分,共计20分)
1. (1) 图略(2分)
(2)
(3)
2.
第 1 页共 1 页。
编译原理试题B及答案
(B )编译程序处理的对象是源语言 词法分析无法自动进行C. a 500b 60aab 2aD. a(画出DFA6.哪个不是DFA 的构成成分 A.有穷字母表B.C. 终止状态集合D. 100 40- 10b ab aa初始状态集合有限状态集合 (B )A.单词符号串B.源程序 C .语法单位 D. 目标程序(C )常数编译原理试题B、单项选择题(每题1分,共20 分)1、对编译系统有关概念描述正确的是 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 — 0S|1A|0, A — 1|1S|0B , B — 1A|0B,下列符号串中是该文 法的句子的是A. 1010001001101B.0101001110010010C. 1101010011110111D.1010011101101010 (可画出DFA 验证) 5. 文法 G[S]: S — aA|bC|a A — aS|bB B — aC|bA|bC — aB|bS ,则不是L(G)句子的是.100 50. 10^_1000 500 . A. a b ab B. ab aba7•词法分析器的输入是8.在词法分析阶段不能识别的是A.标识符B. 运算符C .四元式 D.9.设有一段C语言程序while(i&&++j)(A ),贝U FIRST(Ap)为 .{a,c} D.(C ) 其他.素短语A.语法规则换规则B . 词法规则C .语义规则 D. 等价变{c=2.19;j+=k;i++;},经过词法分析后可以识别的单词个数是(B )A. 19B.20 C . 21 D.2310•自上而下语法分析的主要动作是(B )A.移进B. 推导 C .规约 D. 匹配11.下面不属于LL(1)分析器的自称部分是(D )A. LL(1)总控程序B. 分析表C.分析栈D. 源程序串12. 设有文法G[S]为S— AB|bC, Ar |b , Bf |aD , C— AD|b, D^aS|c 贝U FOLLOW(A为A. {a,c,#}B.{c,#} C . {a,#} D.{#}13. 设有文法G[S]:S—Ap|Bq, A—a|cA , B—b|dBA. {p,q}B. {b,d} C14. 自下而上语法分析的主要分析动作是(D )A.推导B. 规约 C .匹配 D. 移进-规约15. 算法优先分析中,可规约串是A.句柄 B .活前缀 C .最左素短语 D16. 设有文法 G={{S},{a},{S — SaS| £},S},该文法是(B )A. LL(1)文法 B .二义性文法C. SLR(1)文法 D .算法优先文法17、中间代码生成时所以据的是(C )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 •便于目标代码优化 的组织C •便于目标代码的移植B •便于存储空间D .便于编译程序的移植.简答(每题3分,共12分)20.中间代码是介于源语言程序和什么之间的一种代码(D )A.源代码B.机器语言C.汇编语言 D. 目标代码解释程序也是一种翻译程序,它将源程序作为输入并执行之,即边解释边执行2•词法分析器的主要任务是什么?词法分析器的主要任务是逐步扫描和分解构成源程序的字符串, 识别出一个一个 的单词符号。
上海大学编译原理试卷B--试卷格式3(B4)-答案
S (L) | a L SL L ,SL |
5. 无左递归的文法是 LL(1)文法。
(F)
6. LR 分析法是一种规范归约分析法。
(T)
7. 文法符号的属性有两种,即继承属性和综合属性。
(T)
8. 紧跟在条件转移语句后的语句是基本块的入口语句。
(T)
9. PL0 程序具有分程序结构、过程可嵌套且支持递归调用。
(T)
10. 符号表可以辅助上下文语义正确性检查。
【解答】 (1) 最右推导为:(4 分)
S (L) (L,S) (L,(L)) (L,(L,S)) (L,(L,(L))) (L,(L,(L,S))) (L,(L,(L,a))) (L,(L,(S,a))) (L,(L,(a,a))) (L,(S,(a,a))) (L,((L),(a,a))) (L,((L,S),(a,a))) (L,((L,a),(a,a))) (L,((S,a),(a,a))) (L,((a,a),(a,a))) (S,((a,a),(a,a))) (a,((a,a),(a,a)))
A. ab0
B. a0c01
C. aaa
D. bc10
4..如果在推导过程中的任何一步 α β 都是对 α 中的最右非终结符进行替换,则称这种推导为
得__ BD__ _.
分A. 直接推导
B. 最右推导
C. 最左推导
D. 规范推导
5. 程序设计语言的单词符号一般可分为 5 种,它们是 ACD _ _及运算符和界符.
。
第1页 (共4页)
成
上海大学 09 ~ 10 学年 秋 季学期试卷(B) 绩
7. 通常程序设计语言的单词符号都能用 AC _ _描述.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编译原理试题B
一、单项选择题(每题1分,共20分)
1、对编译系统有关概念描述正确的是( B)
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→0S|1A|0,A→1|1S|0B,B→1A|0B,下列符号串中是该文法的句子的是
()?A.1010001001101 B.0101001110010010
C.1101010011110111 D.1010011101101010
(可画出DFA验证)
5. 文法G[S]:
S→aA|bC|a
A→aS|bB
B→aC|bA|b
C→aB|bS ,则不是L(G)句子的是( B )
A.a100b50ab100 B. a1000b500aba
C.a500b60aab2a D. a100b40ab10aa
(画出DFA)
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.23
10.自上而下语法分析的主要动作是( 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. 什么是解释程序?
解释程序也是一种翻译程序,它将源程序作为输入并执行之,即边解释边执行。
2. 词法分析器的主要任务是什么?
词法分析器的主要任务是逐步扫描和分解构成源程序的字符串,识别出一个一个的单词符号。
3. 文法有哪几部分组成?
文法是一个四元组,由非终结符号集合、终结符号集合、非空有穷的文法规则集合、文法的开始符号(识别符号)组成。
4. 语法分析的基本任务是什么?
在词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单元。
三、解答题(本大题共6小题,每小题4分,共24分)
1.写正则式:所有表示偶数的串。
(0|1|…|9)*(0|2|4|6|8)
2.构造有限自动机M ,使得:L(M)={a n b n c n |n ≥1}。
应是L(M)={a n b m c k |n,m,k ≥1}
3.给定文法G[S]:S→aAcB|BdS,B→aScA|cAB|b,A→BaB|aBc|a,试检验aacb 是不是其句子。
SÞaAcBÞaacBÞaacb ,所以aacb是句子
4.文法G[S]=({A,B,C},{a,b,c},A,P),其中P有以下产生式组成:
A→abc,A→aBbc,Bb→bB,Bc→Cbcc,bC→Cb,aC→aaB,aC→aa,问此文法表示的语言是什么?
L(G)={a n b n c n|n>=1}
5.把下列表达式变换成后缀表达式:(x:=x+3)*4
同试卷A
6.把下列表达式变换成后缀表达式:(not A and B) or (C or not D)
同试卷A
四、求解题(本大题共5小题,每小题6,共30分)
得分
1.设文法G[E]: E→E+T|E-T|T,T→T*F|T/F|F,F→F↑P|P,P→(E)|i,求T*(T-i)+P的短语、直接短语、素短语和句柄。
同试卷A
2. 对文法G[R]:R→R’|’T|T,T→TF|F,F→F*|C,C→(R)|a|b,消除文法左递归。
同试卷A
3. 给定程序:
void fun(int x,int y)
{
x++;y++;
}
main()
{
int x=0;
fun(x,x);
printf(x);
}
调用函数fun时,若参数传递机制是1)按值传递,那么输出结果为多少?
2)按引用传递,那么输出结果为多少?
3)按值-结果传递,那么输出结果为多少?
同试卷A
4. 把下列表达式翻译成三地址代码:i:=(j+k)*(10+m)。
同试卷A
5.已知文法G的EBNF表示为:
A→[B,B→X]{A},X→(a|b){a|b},试用C语言写出其递归下降子程序。
同试卷A
五、综合题(本大题共2小题,每小题7分,共14分) Array
1.将下列NFA确定化,并画出最小化的DFA。
同试卷A
2. 给定文法G[S]:S→AS|b,A→SA|a,
1)构造它的LR(0)项集规范簇;
2)构造识别该文法所有活前缀的DFA。
同试卷A
如有侵权请联系告知删除,感谢你们的配合!。