编译原理期末考试试卷A卷

合集下载

编译原理期末考试试题及答案

编译原理期末考试试题及答案

编译原理期末考试试题及答案一、选择题(每题2分,共20分)1. 编译器的前端主要负责以下哪项工作?A. 代码优化B. 目标代码生成C. 词法分析和语法分析D. 运行时支持2. 词法分析器的主要任务是什么?A. 识别语法结构B. 识别词法单元C. 构建语法树D. 代码优化3. 语法分析中,使用哪种方法可以避免回溯?A. 递归下降分析B. LR分析C. LL分析D. 自顶向下分析4. 下列哪个选项不是中间代码的形式?A. 三地址代码B. 四元组C. 抽象语法树D. 汇编语言5. 代码优化的目标不包括以下哪项?A. 提高代码执行速度B. 减少程序占用的内存C. 增加程序的可读性D. 减少程序的执行时间二、简答题(每题10分,共30分)1. 简述编译器的主要组成部分及其功能。

2. 解释什么是语法制导翻译,并举例说明其在编译过程中的应用。

3. 描述静态作用域规则和动态作用域规则的区别。

三、计算题(每题15分,共30分)1. 给定一个简单的算术表达式 `3 + (4 * 5) - 2`,请使用逆波兰表示法表示,并说明其转换过程。

2. 假设有一个简单的文法如下:```S -> A BA -> a A | εB -> b B | ε```请写出使用该文法生成字符串 "ab" 的所有派生树。

四、论述题(每题20分,共20分)1. 论述编译器中代码优化的重要性,并举例说明常见的优化技术。

参考答案一、选择题1. C2. B3. B4. D5. C二、简答题1. 编译器的主要组成部分包括前端、中端和后端。

前端负责词法分析和语法分析,中端进行语义分析和中间代码生成,后端则负责代码优化和目标代码生成。

2. 语法制导翻译是一种基于文法规则的翻译技术,它将源程序的语法结构映射到相应的语义操作上。

例如,在编译过程中,语法制导翻译可以用于将源代码中的条件语句转换为中间代码中的跳转指令。

3. 静态作用域规则是指变量的作用域在编译时确定,而动态作用域规则是指变量的作用域在运行时确定。

编译原理考试试卷+答案A卷

编译原理考试试卷+答案A卷

编译原理期末试卷1.给出LL(1)分析方法的总控流程图。

(5分)2.按指定类型给出下列语言的文法。

(10分)(1) L1={ ca n b m| n≥0,m>0 } 用正规文法。

S→cA A→aA|aB|a B→bB|b(2) L2={ 0n a 1n b m| n>0,m ≥0} 用二型文法。

S→0S1B|0a1 B→bB|c3.文法G[S]为:(10分)S→SdT | T T→T<G | G G→(S) | a试给出句型adT<(S)的短语、简单(直接)短语、句柄和最左素短语。

短语:a, T, (S), T<(S), adT<(S) 直接短语:a, (S) 句柄:a 最左素短语:a 4.将文法G[S] 改写为等价的G'[S],使G'[S]不含左递归和左公共因子。

(5分)S→[A A→B]|AS B→aB|+aS→[A A→B]A’A’→SA’|εB→aB|+a5.判断下面文法是否为LL(1)文法,若是,请构造相应的LL(1)分析表,并写出aabbb 的分析过程。

(10分)S→aD D→STe|ε T→bM M→bH H→M|ε6.简述编译程序概念及构成。

(10分)编译程序是现代计算机系统的基本组成部分.从功能上看,一个编译程序就是一个语言翻译程序,它把一种语言(称作源语言)书写的程序翻译成另一种语言(称作目标语言)的等价的程序.7.设G=(V N,V T,P,<S>)是上下文无关文法,产生式集合P中任意一个产生式应具有什么样的形式?若G是正则文法呢?(10分)2型(上下文无关):规则形式:A→βA ∈VN,β∈ (VT⋃VN)*3型(右线性):A→aB或A→a(右线性)A→Ba或A→a (左线性)a ∈VT⋃{ε}8.为文法G[E]:(10分)V → N | N[E] E → V | V+E N → i构造递归下降识别程序E( ){ V( ); if symbol = ‘+’E( ); }V( ){ N(); if symbol = ‘[’ { E(); if symbol != ‘]’error(); }N( ){ if symbol != ‘i ’ error(); }/* 这样的写法很简化,当文法提取左公因子后,需要计算相关非终结符的Follow 集,才能确定什么时候用空串规则推导。

编译原理(A卷)答案

编译原理(A卷)答案

湖北第二师范学院2014-2015学年度第二学期《编译原理》课程考试答案(A卷) 院系:计算机学院专业班级:学生姓名:学号:考试方式:闭卷………………………………………………………………………………………………………………一、填空题(每空1分,共10分)1.词法分析程序是逐个识别(字符),形成单词级别的(字符)串,词法分析程序输出的数据是(2 )个,它们分别是(种别编码)和(自身值)。

2.语法分析程序是逐个识别(单词),形成语句级别的(单词)串。

3.一遍扫描的编译方法,是以语法分析程序为主,调用(词法分析)程序、语义分析程序,再由语义程序调用中间代码生成、中间代码优化等。

4.程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即(静态存储分配)方案和(动态存储分配)方案。

二、综合题(共90分)1.(5分)将下面文法改写成3型文法:G=({S,A,B},{a,b,c,d,e},P,S)其中:P={S→abcA|edB,A→beB,B→d}答案:改写后的3型文法是(5分)G=({S,A,B,C,D,E,F},{a,b,c,d,e},P,S)其中:P={S→aC|eF, C→bD,D→cA,A→bE,E→eB,F→dB,B→d}2.(5分)给出下面表达式的四元式形式:a*b+(c-d)/e答案:四元式形式(5分)(*,a,b,t1)(-,c,d,t2)(/,t2,e,t3)(+,t1,t3,t4)3.(30分)给定文法 G[E] :E → E+T | E-T | TT → T*F | 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’ | -TE’ | εT → FT’T’→ *FT’ | /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(-TE’)={-}First(FT’)={ (,i}First(*FT’)={*}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’→ -TE’)=First(-TE’)={ - }Select(E’→ε)=First(ε)-{ ε} ∪ Follow(E’)={ $,) }Select(T → FT’)=First(FT’)={ (,i }Select(T’→ *FT’)=First(*FT’)={ * }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’→ -TE’) ∩Select(E’→ε)=ΦSelect(T’→ *FT’) ∩Select(T’→ /FT’) ∩Select(T’→ε)= ΦSelect(F → (E))= ∩Select(F → i)= Φ所以改造后的文法是LL(1)文法4.(10分)对下面的NFA进行确定化答题:第1第25.(15分)给定文法 G[E] :E → E+T | E-T | TT → T*F | T/F | F该文法是算符优先文法吗?是,则构造该文法的算符优先关系矩阵,并给出(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] :T → T*F | FF → (E) | i该文法是LR(0)文法吗?是,则构造该文法的LR(0)分析表,并给出(i+i)*i的分析过程,不是的,是SLR(1)文法吗,是,则构造该文法的SLR(1)分析表,并给出(i+i)*i的分析过程。

编译原理试卷A参考答案

编译原理试卷A参考答案

《编译原理》试卷A 参考答案注意事项:1. 请考生按要求在试卷装订线内填写姓名、学号和年级专业。

2. 请仔细阅读各种题目的回答要求,在规定的位置填写答案。

3. 不要在试卷上乱写乱画,不要在装订线内填写无关的内容。

4. 满分100分,考试时间为120分钟。

题号一二三四总分统分人得分一、单项选择题(每小题2分共20分)1.中间代码生成所依据的是语言的(C )。

A: 词法规则B: 语法规则C: 语义规则D: 产生式规则2.词法分析器的加工对象是(C )。

A: 中间代码B: 单词C: 源程序D: 元程序3.同正则表达式a*b*等价的文法是(C )。

A: G1: S aS|bS|εB: G2: S aSb|εC: G3: S aS|Sb|εD: G4: S abS|ε4.文法G[A]:A→b A→bH H H →BA B→Ab H →a 不是(B ):A: 2型文法B: 正规文法C: 0型文法D: 1型文法5.算符优先分析每次都是对(算符优先分析每次都是对( B B B )进行规约。

)进行规约。

A: A: 短语短语短语 B: B: B: 最左素短语最左素短语最左素短语 C: C: C: 素短语素短语素短语 D: D: D: 句柄句柄6.一个LR (1)文法合并同心集后,如果不是LALR(1)文法必定存在(B ):A: 移进-归约冲突B: 归约-归约冲突C: 识别句型D: 收集类型信息7.下列不属于类型检查范畴的描述是(C )。

A: 运算符的分量类型的相容性B: 形参和实参类型的相容性C :形参和实参的个数的一致性D: 赋值语句的左右部类型的相容性8.( B B )不是)不是DFA 的成分。

A:A:有穷字母表有穷字母表有穷字母表 B: B: B:初始状态集合初始状态集合C:C:终止状态集合终止状态集合终止状态集合 D: D: D:有限状态集合有限状态集合9.若B 为非终结符,则A α.B β为(为( B B 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. 边翻译边执行和不生成目标代码。

XX大学20XX~202X学年第X学期期末考试《编译原理》试卷

XX大学20XX~202X学年第X学期期末考试《编译原理》试卷

XX大学20XX~202X学年第X学期期末考试《编译原理》试卷(A卷)一单选题 (共3题,总分值15分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。

)1. 一个正则语言只能对应?(B)(5 分)A. 一个正则文法B. 一个最小有限状态自动机C. 一个自然语言D. 一个上下文有关文法2. 一个句型中最左的(A )称为该句型的句柄。

(5 分)A. 简单短语B. 短语C. 非终结符号D. 终结符号3. Micro语言只有三种语句:(B)、输入语句和输出语句。

(5 分)A. GOTO语句B. 赋值语句C. 条件语句D. 循环语句二填空题 (共3题,总分值15分 )4. 描述高级语言语法的常用方法有__语法图________和BNF范式。

(5 分)5. 对于编译程序而言,输入数据是 __目标程序_______ ,输出数据是 __目标程序_______ 。

(5 分)6. 给出在字母表{0,1}上的“所有以00结尾的符号串的集合”的语言的正则表达式:__(0/1)*00________。

(5 分)三简答题 (共2题,总分值20分 )7. 简述DFA与NFA有何区别。

(10 分)答:解: DFA与NFA的区别主要有两点:1是NFA可以若千个开始状态,而DFA仅只一个开始状态。

2是DFA的映象M是从KX E到K,而NFA的映象M是从KX E到K的子集,即映象 M将产生一个状态集合(可能为空集),而不是单个状态。

8. 给出与正规式R=(ab)*(a|b*)ab等价的NFA。

(10 分)答:四综合计算题 (共2题,总分值50分 )9. 判断分析下列文法是否具有二义性:G[P]: P→PaP|PbP|cP|Pe|f (25 分)答:10. 对于下面的文法G[Z],构造句子(i*i+i)*i的最左和最右推导及相应的语法树。

(1)Z::=E(2)E::=T+E(3)E::=T(4)T::=F*T(5)T::=F(6)F::=(E)(7)F::=i(25 分)解:最左:Z=>E=>T=>F*T=>(E)*T=>(T+E)*T=>(F*T+E)*T=>(i*T+E)*T=>(i*F+E)*T=>(i*i+E)*T =>(i*i+T)*T=>(i*i+F)*T=>(i*i+i)*T=>(i*i+i)*F=>(i*i+i)*i最右:Z=>E=>T=>F*T=>F*F=>F*i=>(E)*i=>(T+E)*i=>(T+T)*i=>(T+F)*i=>(T*i)*i=>(F*T+i)*i =>(F*F+i)*i=>(F*i+i)*i=>(i*i+i)*iXX大学20XX~202X学年第X学期期末考试《编译原理》试卷(B卷)一单选题 (共4题,总分值20分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。

编译原理试卷A(考试专用)

编译原理试卷A(考试专用)
3.表达式(b*5)的逆波兰式表示为。
4.文法的属性有和。
5.根据所涉与程序的范围,优化可分为局部优化、和全局优化三种。
得分
二、选择题(每小题2分,共10分)
1.描述语言{≥1}的文法为( )。
A.B.
C.D.ε
2.以10结尾的二进制数串为( )。
A.(0|1)*01B.(0|1)*10C.01(0|1)*D.10(0|1)*
()
p();
1; ;
23; p(); a .
A.2和8 B.2和9 C.7和9 D.7和8
得分
三、判断并改错(每小题2分,共10分)
1.文法的二义性和语言的二义性是两个相同的概念。
2.图中运算符,操作符可作为终端结点。
3.和所含的终态结点可以是若干个。
4.存在一个优先关系表就一定存在优先函数与之对应。
G(M):
M →
T → |
B → | |
D → d |
4.给出赋值语句 *()的四元式表示形式。(5分)
5.设文法G(S):(15分)
1)构造各非终结符的和集合;
2)构造优先关系表。
3)该文法是算法优先文法吗?
6.设有基本块(5分)
T1:=2
T2:=10
T3:=S-R
T4:=S+R
A:=T2* T4
编译原理考试试卷(A卷)
2009— 2010学年第一学期
科目:编译原理计算机系_计算机科学与技术专业_级班
题号




总分
得分
阅卷人
得分
一、填空题(每空1分,共10分)
1.编译程序的工作的过程一般可以划分为词法分析、、、、等几个基本阶段,同时还会伴有和出错处理。

湖南大学编译原理期末试卷

湖南大学编译原理期末试卷
诚信应考,考试作弊将带来严重后果!
考试中心填写: ____年___月___日
湖南大学课程考试试卷
考试用
课程名称: 编译原理 ;课程编码:
试卷编号: A ;考试时间:120 分钟
题 号 一 二 三 四 五 六 七 八 九 十 总分
应得分 40 60
100
实得分评卷人专源自班级:一.简答题(每题 8 分,共 40 分)
(3) E→not E1 { E.truelist:=E1.falselist; E.falselist:=E1.truelist}
(4) E→(E1) { E.truelist:=E1.truelist; E.falselist:=E1. falselist}
(5) E→id1 relop id2 { E.truelist:=makelist(nextquad); E.falselist:=makelist(nextquad+1); emit(‘j’ relop.op ‘,’ id 1.place ‘,’ id 2.place‘,’ ‘0’); emit(‘j, -, -, 0’) }
的过程伪代码。
二、综合题(每题 20 分,共 60 分)
1、试写出无符号整数的正则表达式并构造对应的 NFA 和 DFA。
学号:
姓名:
2.证明如下的文法 G[S] S → SA | A A →|a
是 SLR(1)的,但不是 LL(1)的。
3.对于布尔表达式 b<1 and a>3 or c<12 ,根据下面的语法制导翻译方案(SDT) (1)画出对应的注释分析树; (2)翻译成四元式; (3)并说明 truelist 和 falselist 是综合属性还是继承属性。 (注:设起始四元式标号为 100,真出口 E.true=110,假出口 E.false=120)。 (1) E→E1 or M E2

编译原理期末考试试卷(A卷)

编译原理期末考试试卷(A卷)

编译原理期末考试试卷( A 卷)一、简述编译程序的工作过程。

( 10)二、构造下列正规式相应的DFA (用状态转换图表示)( 15)(1) 1( 0 | 1) *100(2) 0*10*10*10*1(3) letter (letter | digit ) *三、给出下面语言的相应文法:(15)L1 ={a n b n |n≥1}L 2={a n b m+n a m|n≥1,m≥ 0}四、对下面的文法G:S→a | b | ( T)T→T,S | S(1)消去文法的左递归,得到等价的文法G2;(2)判断文法 G2 是否 LL ( 1)文法,如果是,给出其预测分析表。

( 15)五、设有文法G[A] :A→ BCc | gDBB→ bCDE | εC→DaB | caD→ dD |εE→gAf | c(1) 计算该文法的每一个非终结符的FIRST 集和 FOLLOW 集;(2)试判断该文法是否为 LL ( 1)文法。

(15)六、对表达式文法G:E → E+T|TT → T*F|FF → (E)|I(1)造各非终结符的 FIRSTVT 和 LASTVT 集合;(2)构造文法的算符优先关系表。

(15)七、有定义二进制整数的文法如下:L →LB|BB →0|1构造一个翻译模式,计算该二进制数的值(十进制的值)。

( 15)简述编译程序的工作过程。

(10)编译程序的工作过程,是指从输入源程序开始到输出目标程序为止的整个过程,是非常复杂的,就其过程而言,一般可以划分为五个工作阶段:①词法分析,对构成源程序的字符串进行扫描和分解,识别出一个个的单词;②语法分析,根据语言的语法规则,把单词符号串分解成各类语法单位;③语义分析与中间代码产生,即对各类语法单位,分析其汉一并进行初步翻译;④代码优化,以期产生更高效的代码;⑤目标代码生成,把中间代码变换成特定机器上的低级语言指令形式。

二、构造下列正规式相应的DFA (用状态转换图表示)( 15)(4) 1(0 | 1)*1( 5) 0*10*10*10*10,1(6) letter (letter | digit ) *01( 1)1230000( 2)151111234(3)letterletter12digit三、给出下面语言的相应文法:(15)L1 ={a n b n|n≥1}L 2={a n b m+n a m|n≥1,m≥ 0}G1:G1 :A→ aAb |ab S→ABA → aAb | abB → bBa |ε四、对下面的文法G:S→a | b | ( T)T→T,S | S(1) 消去文法的左递归,得到等价的文法G2;(2) 判断文法G2 是否 LL ( 1)文法,如果是,给出其预测分析表。

编译原理期末考试试卷A卷

编译原理期末考试试卷A卷

试卷答题时限:  分钟 考试形式:闭卷笔试得分统计表:一、单项选择题(请从 个备选答案中选择最适合的一项,每小题 分,共 分)编译程序是对( )✌ 汇编程序的翻译  高级语言程序的解释执行 机器语言的执行  高级语言的翻译 词法分析器的输出结果是( )✌.单词的种别编码 .单词在符号表中的位置.单词的种别编码和自身值 .单词自身值在规范规约中,用( )来刻画可规约串。

✌.直接短语 .句柄 .最左素短语 .素短语与正规式☎♋✉ ♌✆ ✉ ☎♍  ♎✆等价的正规式是( )✌.♋✉ ☎♍  ♎✆  ♌☎♍  ♎✆.♋✉ ☎♍  ♎✆ ✉  ♌☎♍  ♎✆ ✉.♋✉ ☎♍  ♎✆ ♌✉ ☎♍  ♎✆ .☎♋  ♌✆ ✉ ♍ ☎♋  ♌✆ ✉ ♎ 若项目集✋ 含有✌✹α·,则在状态 时,仅当面临输入符号♋∈☞☹☹☎✌✆时,才采取✌✹α·动作的一定是( )✌.☹✌☹文法 .☹☎✆ 文法 .☹☎ ✆文法 . ☹☎ ✆文法 四元式之间的联系是通过( )实现的。

✌ 指示器  临时变量  符号表  程序变量.文法☝: ✹ ⌧ ⌧  ⍓所识别的语言是( )✌.⌧⍓⌧ .☎⌧⍓⌧✆ ✉ .⌧⏹⍓⌧⏹☎⏹≥ ✆ .⌧✉⍓⌧✉有一语法制导翻译如下所示:✹ ♌ ✌♌ ☐❒♓⏹♦ ❽ ❾❝✌✹☎ ☐❒♓⏹♦ ❽❾❝✌✹♋ ☐❒♓⏹♦ ❽ ❾❝✹✌♋✆ ☐❒♓⏹♦ ❽ ❾❝若输入序列为♌☎☎☎♋♋✆♋✆♋✆♌,且采用自下而上的分析方法,则输出序列为( )✌.     .    .关于必经结点的二元关系,下列叙述不正确的是( )✌.满足自反性 .满足传递性 .满足反对称型 .满足对称性 .错误的局部化是指( )。

.当发现错误时,跳过错误所在的语法单位继续分析下去.当发现错误时立即停止编译,待用户改正错误后再继续编译二、判断题(每小题 分,共 分)文法☝的一个句子对应于多个推导,则☝是二义性的。

华科《编译原理》试卷及答案

华科《编译原理》试卷及答案

得分
评卷人
七、请将如下三地址代码程序划分基本块,并作出其程序流图。 (共 10 分)
(1) I:=1; (2) Goto (4); (3) I:=I+1; (4) If I≤N goto (6); (5) Goto (9);
(6) T:=M+I; (7) M:=T; (8) Goto (3);
(9) Write M; (10) Halt
I0
E′→.E E→.aA
E I1 a I2
E′→.E E→a.A A→.cA A→.d
A d c I3 I5
A→d.
d
I4
E→aA.
A→c.A A→.cA A→.d
A
I6
A→cA.
c
(2) 因为识别文法 LR(0)活前缀的 DFA 的状态(即 LR(0)项目集)中没有任何冲突 项目,所以该文法是 LR(0)文法。 构造该文法 LR(0)分析表如下。 ACTION c d GOTO # acc R3 R1 R2 S5 R3 R1 S5 R2 S3 R3 R1 S3 R2 4 R3 R1 6 R2 E 1 A
题号 答案
1.符号串 dbb 是给定文法 G[A]:A→dBC,B→aB| ε,C→bC|b 的句子,试问其活前 缀包括 。 A. ε B. d C. db D. dbb 2.常见的自底而上语法分析方法有 A. 递归下降分析 B. 算符优先分析 。 C. LL(1)预测分析
D. LR 分析
3.已知字母表Σ={a ,b},下列________是字母表Σ上的正规式。 A. ab+a B. abc|b* C. (a|b)* D. ε 4.若 G 和 G'是两个不同的文法,如果它们是等价的,那么 。 A. G'必须超出 G 所定义语言的范围 B. G'应缩小 G 所定义语言的范围 C. G 和 G'描述的语言相同 D. G'既不超出 G 所定义语言的范围,也不缩小 G 所定义语言的范围 5.一个文法是 LR(0)文法一定也是 A. SLR(1)文法 B. LR(1)文法 。 C. LALR(1)文法

编译原理试题及答案(期末复习版)

编译原理试题及答案(期末复习版)

<编译原理>历年试题及答案一.(每项选择2分,共20分)选择题1.将编译程序分成若干个“遍”是为了_b__。

a.提高程序的执行效率b.使程序的结构更加清晰c.利用有限的机器内存并提高机器的执行效率d.利用有限的机器内存但降低了机器的执行效率2.构造编译程序应掌握__d__。

a.源程序b.目标语言c.编译方法d.以上三项都是3.变量应当c_。

a.持有左值b.持有右值c.既持有左值又持有右值d.既不持有左值也不持有右值4.编译程序绝大多数时间花在_d___上。

a.出错处理b.词法分析c.目标代码生成d.管理表格5.词法分析器的输出结果是_c___。

a.单词的种别编码b.单词在符号表中的位置c.单词的种别编码和自身值d.单词自身值6.正规式MI和M2等价是指__c__。

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

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

a.语法规则b.词法规则c.语义规则d.等价变换规则8.后缀式ab+cd+/可用表达式__b_来表示。

a.a+b/c+d b.(a+b)/(c+d)c.a+b/(c+d)d.a+b+c/d9.程序所需的数据空间在程序运行前就可确定,称为____c__管理技术。

a.动态存储b.栈式存储c.静态存储d.堆式存储10.堆式动态分配申请和释放存储空间遵守___d_____原则。

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)构造预测分析表。

编译原理试卷A(含答案)

编译原理试卷A(含答案)
S → ·(T)SS → ·(T)
I10:
T’→, ST·
T
I11:
T →ST’·
不存在项目冲突:
Follow(S’) = {#}
Follow(S) = {, ,),#}
Follow(T) = {)}
Follow(T’) = {)}
构造SLR分析表:
状态
ACTION
GOTO
a

(
)
,
#
S
T
T’
0
S2
A→a|b|,
FIRST(S)等于(A)
a){a,b}b) {a,b,c}c){c}d){a,b,}
(8)某翻译器依如下翻译模式设计,其基础文法可由开始符号S产生一个二进制数。
S→L{ print(L.val); }/*print函数以10进制方式打印数值*/
L→L1B{L.val = L1.val*2 + B.val; }
11.T → ·ST’
12.T →S·T’
13.T →ST’·
14.T → ·
15.T’→·,ST’
16.T’→,·ST’
17.T’→,S·T’
18.T’→,ST’·
构造SLR项目集规范族:
I0: S I1:∧I3:∧
S’→ ·S S’4:
答:
(1)S→a|∧|(T)
TST’
T’,ST’|e
(2)
该文法不含左递归
First(S) = { a,∧,( }
First(T) = {a,∧,( }
First(T’) = {, , e}
Follow(S) = {, ,),#}
Follow(T) = {)}
Follow(T’) = {)}

编译原理与技术期末考试模拟试题1及答案

编译原理与技术期末考试模拟试题1及答案

编译原理与技术模拟试题一一、填空题(20分,每空2分)1.1编译程序的工作过程可划分为词法分析、语法分析、、中间代码生成、代码优化、等阶段,一般在阶段对表达式中运算对象的类型进行检查。

答案:语义分析、目标代码生成、语义分析解释:要求掌握编译器的工作原理和特点。

编译和解释方式是翻译高级程序设计语言的两种基本方式。

解释程序也称为解释器,它或者直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行;而编译程序(编译器)则首先将源程序翻译成目标语言程序,然后在计算机上运行目标程序。

编译过程包含词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成,以及符号表管理和出错处理。

表达式的类型信息属于语义信息,所以在语义分析阶段进行类型检查。

1.2和预测分析法是自上而下的语法分析方法。

答案:递归下降法解释:语法分析的任务是根据语言的语法规则,分析单词串是否构成短语和句子,即表达式、语句和程序等基本语言结构,同时检查和处理程序中的语法错误。

根据语法树(或分析树)的建立方式,语法分析可分为自上而下分析和自下而上分析两类,递归下降分析和预测分析属于自上而下的语法分析方法。

1.3常用的存储分配策略有存储分配和动态存储分配,其中,动态存储分配策略包括分配和分配。

答案:静态、栈、堆解释:编译器怎样对存储空间进行组织和采用什么样的存储分配策略,很大程度上取决于程序设计语言中所采用的机制。

编译器具体实现时,根据语言机制的特性,采用静态分配策略、栈分配策略和堆分配策略三种方式的其中若干种。

静态分配策略是指编译时安排所有数据对象的存储,即绑定是静态确定的;栈分配策略是指按栈的方式管理运行时的存储;堆分配策略是指在运行时根据要求从堆数据区动态地分配和释放存储。

1.4移进、归约是分析中的典型操作。

答案:自下而上或LR解释:自下而上分析的一般思路是从句子ω开始,从左到右扫描ω,反复用产生式的左部替换产生式的右部、谋求对ω的匹配,最终得到文法的开始符号,或者发现一个错误。

编译原理期末考试试卷及答案

编译原理期末考试试卷及答案

期末考试试卷(A)卷一、填空题(每小题2分,共20分)1、字母表∑,用∑*表示∑上所有有穷长的串集合,∑*称为∑的①。

2、设z=abc,则z的固有头是①。

3、如何由语言基本符号组成程序中各个语法成分(包括程序)的一组规则叫①。

4、设∑={a,b},∑上的正规式(a|b)(a|b) 相应的正规集为①5、NFA的映象f是从"状态×字"映射到"状态子集",f为①值函数。

6、LR分析是按规范句型的①为可归约串。

7、结点的①属性值由该结点的兄弟结点和父结点的属性值计算。

8、如果分析树中一结点的属性b依赖于属性c,那么这个结点的属性b的语义规则的计算必须在定义属性c的语义规则的计算①。

9、对于栈式符号表,引入一个显示嵌套层次关系表- ①表,该表总是指向当前正在处理的最内层的过程的子符号表在栈符号表中的起始位置。

10、任一有向边序列n1 → n2,n2 → n3,…,nk-1 → nk为从结点n1到结点nk的一条通路。

如果n1=nk,则称该通路为①。

二、单项选择(每小题2分,共14分)1、乔姆斯基把文法分成4种类型,即0型、1型、2型和3型。

其中3型文法也称为()。

A.上下无关文法 B.正规文法C.上下文有关文法 D.无限制文法2、生成非0开头的正偶数集的文法是()。

A. Z::=ABC B. Z::=ABCC::=0|2|4|6|8 C::=0|2|4|6|8B::=BA|B0|ε B::=BA|B0|0A::=1|2|3|…|9 A::=1|2|3|…|9C. Z::=ABC|2|4|6|8D. Z::=ABC|2|4|6|8C::=0|2|4|6|8 C::=0|2|4|6|8B::=BA|B0|0 B::=BA|B0|εA::=1|2|3|…|9 A::=1|2|3|…|93、简单优先分析法从左到右扫描输入串,当栈顶出现()时进归约。

A.素短语B.直接短语C.句柄D.最左素短语4、同心集合并有可能产生新的()冲突。

【免费下载】编译原理期末考试试卷及答案

【免费下载】编译原理期末考试试卷及答案

D. 文法
D. 自右向左
C. 该句子有两个不同的最右推导 D. 该句子有两棵不同的语法树
E. 该句子对应的语法树唯一
8. 下面( )语法制导翻译中,采用拉链—回填技术。
A. 赋值语句 B. 布尔表达式的计算 C. 条件语句
得分
三. 解答题(共 60 分)
1. (共 15 分)已知文法 G[E]:
E→ETE|(E)|i
④ bc10
D.①②③④
D. 自右向左
D. ④②
(4) 语法分析
(5) 目标代码生成
(6) 表格管理
(7) xyz*ab+/+
(8) 继承属性
(9) a+(i-1)*20+j-1
(10) 基本块 一、选择题(每问 2 分,共 20 分) 1.C B 2.D 3.B 4.A 5.D 6.A,C
7.BCD,选对一个得 1 分且不超过满分,选错一个扣一分,扣完为止。
得 二. 选择题(1-6 为单选题,7-8 为多选题,每问 2 分,共 20 分)

1. 一个上下文无关文法 G 包括四个组成部分:一组终结符,一组非终结符,一个( ),以及一
组( )。
A. 字符串
2.程序的基本块是指( )。
A. 一个子程序
B. 产生式
C. 开始符号
B. 一个仅有一个入口和一个出口的语句
得分
一. 填空题(每空 2 分,共 20 分)
1. 不同的编译程序关于数据空间的存储分配策略可能不同,但大部分编译中采用的方案有两种: 静态存储分配方案和动态存储分配方案,而后者又分为(1) 和 (2) 。
2. 规范规约是最(3)规约。
3. 编译程序的工作过程一般划分为 5 个阶段:词法分析、(4) 、语义分析与中间代码生成,代码优化及(5) 。另外还有(6)和出错处理。 4.表达式 x+y*z/(a+b)的后缀式为 (7) 。 5.文法符号的属性有综合属性和 (8)。 6.假设二位数组按行存放,而且每个元素占用一个存储单元,则数组 a[1..15,1..20]某个元素 a[i,j]的地址 计算公式为(9)。 7.局部优化是局限于一个(10)范围内的一种优化。

编译原理期末试题(8套含答案+大题集)

编译原理期末试题(8套含答案+大题集)

《编译原理》期末试题(一)一、是非题(请在括号内,正确的划√,错误的划×)(每个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.构造编译程序应掌握______。

编译原理期末试题8套含答案大题集

编译原理期末试题8套含答案大题集

《编译原理》期末试题(一)一、是非题(请在括号内,正确的划√,错误的划×)(每个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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

试卷
答题时限:120 分钟考试形式:闭卷笔试
得分统计表:
一、单项选择题(请从4个备选答案中选择最适合的一项,每小题2分,共20分)
1. 编译程序是对()
A. 汇编程序的翻译
B. 高级语言程序的解释执行
C. 机器语言的执行
D. 高级语言的翻译
2. 词法分析器的输出结果是()
A.单词的种别编码B.单词在符号表中的位置
C.单词的种别编码和自身值D.单词自身值
3. 在规范规约中,用()来刻画可规约串。

A.直接短语B.句柄C.最左素短语D.素短语
4. 与正规式(a* | b) * (c | d)等价的正规式是()
A.a* (c | d) | b(c | d) B.a* (c | d) * | b(c | d) *
C.a* (c | d)| b* (c | d) D.(a | b) * c| (a | b) * d
5. 若项目集I K含有Aα·,则在状态K时,仅当面临输入符号a∈FOLLOW(A)时,才采取Aα·动作的一定是()
A.LALR文法B.LR(0) 文法C.LR(1)文法D.SLR(1)文法
6. 四元式之间的联系是通过()实现的。

A. 指示器
B. 临时变量
C. 符号表
D. 程序变量
7.文法G:S x Sx | y所识别的语言是()
A.xyx B.(xyx) *C.x n yx n(n≥0) D.x*yx*
8. 有一语法制导翻译如下所示:
S b Ab {print “1”}
A(B {print “2”}
A a {print “3”}
B Aa) {print “4”}
若输入序列为b(((aa)a)a)b,且采用自下而上的分析方法,则输出序列为()A.32224441 B. 34242421 C.12424243 D. 34442212
9.关于必经结点的二元关系,下列叙述不正确的是()
A.满足自反性B.满足传递性C.满足反对称型D.满足对称性
10.错误的局部化是指()。

A.把错误理解成局部的错误B.对错误在局部范围内进行纠正
C.当发现错误时,跳过错误所在的语法单位继续分析下去
D.当发现错误时立即停止编译,待用户改正错误后再继续编译
二、判断题(每小题1分,共5分)


1. 文法G的一个句子对应于多个推导,则G是二义性的。

(×)
2. 动态的存储分配是指在运行阶段为源程序中的数据对象分配存储单元。

(√)
3. 算符优先文法采用“移进-规约”技术,其规约过程是规范的。

(×)
4. 删除归纳变量是在强度削弱以后进行。

(√)
5. 在目标代码生成阶段,符号表用于目标代码生成。

(×)
三、简答题(每小题5分,共15分)
1. 构造正规式(0∣1)*00相应的正规式并化简。

(共5分)
(1)根据正规式,画出相应的NFA M(2分)
X14
(2)用子集法将NFA确定化(2分)
(3)化简,并画出DFA M(1分)
划分为状态:{0,2} {1 } {3} 将这三个状态命名为0,1,2三个状态
0 1 0 1 2 0 2
2
2. 设文法G[S]: (共5分) S →S + aT | aT | +aT
T →*aT | *a
(1)写出句型 aT + a *a *a 的最右推导并画出语法树(2分) S S +aT S +a*aT S+a*a*a aT+a*a*a
(2)写出该句型中所有的短语、直接短语、句柄和最左素短语。

(3分) 短语:aT 、*a*a 、*a 、aT+a*a*a 直接短语:aT 、*a 句柄:aT 最左素短语:aT
3. 将下列语句翻译为逆波兰表示,三元式、间接三元式和四元式表示:(共5分)
a = (
b + c) * e + (b + c) / f
(1) 逆波兰表示(1分)
abc + e * bc + f / + =
10
120
10
1
S
S +
* a
* a
a
T
(2) 三元式(1分)
① (+,b, c)
② (*,①,e)
③ (+,b, c)
④ (/,③,f)
⑤ (+,②, ④)
⑥ (=,a, ⑤)
(3) 间接三元式(1分)
① (+, b, c)
② (*,①, e)
③(/,①,f)
④ (+, ②,③)
⑤ (=, a, ④)
间接码表:①②①③④⑤
(4) 四元式(2分)
① (+, b, c, T1)
② (*, T1, e,T2)
③ (+, b, c, T3)
④ (/, T3, f, T4)
⑤ (+, T2, T4, T5)
⑥ (=, T5,-, a)
四、综合题(共60分)


1.已知文法G(S):(共15分)
S * A
A 0A1 | *
(1)求文法G的各非终结符号的FIRSTVT和LASTVT集合。

(5分)
FIRSTVT(S)={ * } LASTVT(S)={ 1, *}
FIRSTVT(A)={ 0, * } LASTVT(S)={ 1, *}
(2)构造文法G的优先关系矩阵,并判断该文法是否是算符优先文法。

(5分)
G是一个算符优先文法。

(3)分析句子*0*1,并写出分析过程。

(5分)
步骤符号栈输入串输出
2.已知文法G(S):(共15分) S aS | bS | a
(1) 构造该文法的拓广文法。

(1分)
(0)S ’→S
(1) S →aS
(2)A →bS
(3)A →a
(2) 构造其LR(0)项目集规范族,并给出识别活前缀的DFA 。

(7分)
(3)构造其SLR 分析表,并判断该文法是否是SLR(1)文法。

(7分)
状态I 1移进-规约冲突,计算S 的Follow 集合:Follow(S)={#},可以采用SLR 冲突消解法,得到如下SLR 分析表:
I 0 : S’→.S S→.aS S →.bS
I 2 : S →b.S S →.aS S →.bS
I 3 : S’→S.
I 5 : S →b S.
a
a
S
b b
S
b
I 1 : S →a.S S →.aS S →.bS
I 4 : S →aS.
a
S
该文法是SLR (1)文法。

3.设有如下基本块:(共10分) T1 = A + B T2 = 5 M = T2 * 4 T3 = C - D T4 = M + T3 L = T1 * T3 T4 = A + B
n
A
B
5
C
T
(2) 假设变量L ,M ,N 在基本块出口之后是活跃的,给出优化后的四元式序列。

(5分) N =A +B M=20 T3=C-D L=N*T3
4.以下程序段是最内循环(共13分)
A = 0
I = 1
L1: B = J + 1 C = B + I A = C + A
if I = 100 GOTO L2 I = I + 1 GOTO L1
L2:
(1) 画出程序流图,并找出回边与循环。

(3分)
D
2
流图中有一条回边B3 B2,且B2DOMB3,所以,有一个循环{B2, B3},B2是循环入口结点,也是出口结点。

(2)对循环优化(8分)
1. 代码外提:对于B2中的赋值四元式B=J+1,由于循环中没有对J的定值操作,所有对J的定值都在循环外,所以,它是循环中的不变运算,可以进行代码外提。

2. 删除归纳变量:循环中I是基本归纳变量,C是与I同族的归纳变量,两者有如下线性关系:C=B+I,则I=100可以用C=B+100替代,相应的I=I+1可用C=C+1替代,再将新的不变运算提到循环外。

(3)画出优化后的程序流图(2分)
5. 有一程序如下:
program ex;
a: integer;
procedure PP(x: integer);
begin:
x:=5; x:=a+1
end;
begin
a:=2;
PP(a);
write(a)
end
试用图表示ex 调用PP(a)前后活动记录的过程。

(共7分) PP_TOP →
→ PP_SP ex_TOP →
ex_SP → PP 的活动记录 (调用PP (a )ex 的活动记录 (调用PP (a )之。

相关文档
最新文档