北方工业大学16编译原理期末复习题(答案)资料
编译原理期末考试习题及答案
编译原理期末考试习题及答案⼀、填空题|(每题4分,共20分)1. 乔母斯基定义的3型⽂法(线性⽂法)产⽣式形式 A→Ba|a,或A→aB|a,A,B∈Vn, a,b∈Vt 。
2.语法分析程序的输⼊是单词符号,其输出是语法单位。
3 型为 B → .aB 的LR(0)项⽬被称为移进项⽬,型为 B → a.B 的LR(0)项⽬被称为待约项⽬,4.在属性⽂法中⽂法符号的两种属性分别为继承属性和综合属性。
5、运⾏时存贮管理⽅案有静态存储分配、动态存储分配和堆式存储分配和⽅案。
⼆.已知⽂法 G(S)(1) E → T | E+T(2) T → F | F*F(3) F →(E)| i(1)写出句型(T*F+i)的最右推到并画出语法树。
(4分)(2)写出上述句型的短语,直接短语和句柄。
(4分)答:(1)最右推到(2分)E ==> T ==>F ==> (E) ==> (E+T) ==> (E+F) ==> (E+i) ==> (T+i) ==> (T*F+i)(2) 语法树(2分)(3)(4分)短语:(T*F+i),T*F+i ,T*F , i直接短语:T*F , i句柄:T*F三. 证明⽂法G(S) :S → SaS |ε是⼆义的。
(6分)答:句⼦aaa对应的两颗语法树为:因此,⽂法是⼆义⽂法四.给定正规⽂法G(S):(1) S → Sa | Ab |b(2) A → Sa请构造与之等价的DFA。
(6分)答:对应的NFA为:(6分)五. 构造识别正规语⾔b*a(bb*a)*b* 最⼩的DFA(要求写出求解过程)。
(15分)答:(1)对应的NFA(5分)(5分)六. 已知⽂法G(S) :(1) S → ^ | a | (T)(2) T → T,S | S试:(1)消除⽂法的左递归;(4分)(2)构造相应的first 和 follow 集合。
(6分)答:(1)消除⽂法的左递归后⽂法 G’(S)为:(1) S → ^ | a | (T)(2) T → ST’ | S(3) T ’ → ,ST ’ |ε(4分)七. 已知⽂法 G(S) :(1) S → SiA | A(2) A → A+B | B(3) B → A* | (试构造⾮终⽌符的firstVT 和lastVT 集合。
编译原理期末考试题目及答案
一、挖空题(每空2分,共20分)之阳早格格创做1.编译步调最先要辨别出源步调中每个单词汇,而后再分解每个句子并翻译其意思.2.编译器时常使用的语法分解要领有自底进与战自顶背下二种.3.常常把编译历程分为分解前端与概括后端二大阶段.词汇法、语法战语义分解是对付源步调的分解,中间代码死成、代码劣化与目标代码的死成则是对付源步调的概括.4.步调安排谈话的死长戴去了日渐多变的运止时保存管制规划,主要分为二大类,即固态保存调配规划战动背保存调配规划.5.对付编译步调而止,输进数据是源步调,输出截止是目标步调.1.估计机真止用下档谈话编写的步调主要有二种道路:阐明战编译.2.扫描器是词汇法分解器,它担当输进的源步调,对付源步调举止词汇法分解并辨别出一个个单词汇标记,其输出截止是单词汇标记,供语法分解器使用. 3.自下而上分解法采与移进、归约、过失处理、担当等四种支配.4.一个LL(1)分解步调需要用到一弛分解表战标记栈.5.后缀式abc-/所代表的表白式是a/(b-c).二、单项采用题(每小题2分,共20分)1.词汇法分解器的输出截止是__C.A.单词汇的种别编码B.单词汇正在标记表中的位子C.单词汇的种别编码战自己值D.单词汇自己值2.正规式 M 1 战 M 2 等价是指__C_.A. M1战M2的状态数相等 B. M1战M2的有背边条数相等C.M1战M2所识别的谈话集相等D.M1战M2状态数战有背边条数相等3.文法G:S→xSx|y所识别的谈话是_C____.A. xyx B. (xyx)* C.xnyxn(n≥0) D. x*yx*4.如果文法G是无二义的,则它的所有句子α_A____.A.最左推导战最左推导对付应的语法树肯定相共B.最左推导战最左推导对付应的语法树大概分歧C.最左推导战最左推导肯定相共D.大概存留二个分歧的最左推导,但是它们对付应的语法树相共5.构制编译步调应掌握____D__.A.源步调B.目心号止 C.编译要领 D.以上三项皆是6.四元式之间的通联是通过__B___真止的.A.指示器B.临时变量C.标记表 D.步调变量7.表白式(┐A∨B)∧(C∨D)的顺波兰表示为__B___.A.┐AB∨∧CD∨B.A┐B∨CD∨∧ C.AB∨┐CD∨∧ D.A┐B∨∧CD∨8. 劣化可死成__D___的目标代码.A.运止时间较短 B.占用保存空间较小C.运止时间短但是占用内存空间大 D.运止时间短且占用保存空间小9.下列___C___劣化要领没有是针对付循环劣化举止的.A. 强度削强B.简略归纳变量C.简略多余运算D.代码中提10.编译步调使用_B_辨别标记符的效用域.A. 道明标记符的历程大概函数名B.道明标记符的历程大概函数的固态条理C.道明标记符的历程大概函数的动背条理 D. 标记符的止号三、推断题(对付的挨√,错的挨×,每小题1分,共10分)2.一个有限状态自效果中,有且仅有一个唯一的末态.x3.一个算符劣先文法的每个非末结标记间皆也大概存留劣先闭系.X4.语法分解时必须先与消文法中的左递归 .X6.顺波兰表示法表示表白式时无须使用括号.R9.二个正规集相等的需要条件是他们对付应的正规式等价. X1.编译步调是对付下档谈话步调的编译真止.X2.一个有限状态自效果中,有且仅有一个唯一的初初态.R3.一个算符劣先文法的每个非末结标记间皆没有存留劣先闭系.R4.LL(1)语法分解时必须先与消文法中的左递归 . R5.LR分解法正在自左至左扫描输进串时便能创制过失,但是没有克没有及准确天指出堕落天面. R6.顺波兰表示法表示表白式时根据表白式会使用括号. X7.固态数组的保存空间不妨正在编译时决定.X8.举止代码劣化时应着沉思量循环的代码劣化,那对付普及目标代码的效用将起更大效用.X9.二个正规集相等的需要条件是他们爆收的标记串是相共的. R10.一个语义子步调形貌了一个文法所对付应的翻译处事. X1.什么是S-属性文法?什么是L-属性文法?它们之间有什么闭系?S-属性文法是只含有概括属性的属性文法. (2分)L-属性文法央供对付于每个爆收式A X1X2…Xn,其每个语义准则中的每个属性大概者是概括属性,大概者是Xj的一个继启属性,且该属性仅依好于:(1)爆收式Xj的左边标记X1,X2…Xj-1的属性;(2)A的继启属性. (2分)S-属性文法是L-属性文法的惯例.(1分)2.什么是LL(1)分解器2.什么是LR(0)分解器所谓LR(0)分解,是指从左至左扫描战自底进与的语法分解,且正在分解的每一步,只须根据分解栈目前已移进战归约出的局部文法标记,并至多再背前查看0个输进标记,便能决定相对付于某一爆收式左部标记的句柄是可已正在分解栈的顶部产死,进而也便不妨决定目前所应采与的分解动做(是移进仍旧按某一爆收式举止归约等).五、概括题(共40分)1.(10分)对付于文法 G[S] :S → 1A | 0B | ε A → 0S | 1AA B → 1S | 0BB⑴ (3 分 ) 请写出三个闭于 G[S] 的句子;⑵ (4 分 ) 标记串 11A0S 是可为 G [S] 的句型?试道明您的论断.⑶ (3 分 ) 试绘出 001B 闭于 G [S] 的语法树.问:(1)三个 0 战 1 数量相等的串(每个1分)(2) S => 1A => 11AA => 11A 0S(3)2.(10分)设有谈话 L={ α | α∈ {0,1} + ,且α没有以 0 启头,但是以 00 末端 } .3分)试写出形貌 L 的正规表白式;⑵(7分)构制辨别 L 的 DFA (央供给出仔细历程,并绘出构制历程中的NFA 、 DFA 的状态变更图,以及最小DFA的状态变更图 ) .问:( 1 )(3分)正规表白式: 1(0|1) * 00( 2 )(7分)第一步(3分):将正规表白式变更为 NFA第二步(2分):将 NFA 决定化为 DFA :(1分)状态输进I 0 I 1 t 0 1[S] —[A,D,B] q 0 —q 1[A,D,B] [D,B,C] [D,B] q 1 q 2 q 3[D,B,C] [D,B,C,Z] [D,B] q 2 q 4 q 3[D,B] [D,B,C] [D,B] q 3 q 2 q 3[D,B,C,Z] [D,B,C,Z] [D,B] q 4 q 4 q 3DFA 的状态变更图(1分)第三步(2分):将DFA 最小化:(1分)将状态区分末态与非末态二个集中:A={q0,q1,q2,q3},E={q4}根据A、E集中的情况,对付A集中举止区分状态输进I 0 I 1q0—Aq1AAq2EAq3AA将状态集A区分为二个集中:A={q0,q1,q3},B={2}根据A、B集中的情况,对付A集中举止区分状态输进I 0 I 1q0—Aq1BAq3BA将状态集A区分为二个集中:A={q0},C={q1,q3}根据A、C集中的情况,对付C集中举止区分状态输进I 0 I 1q1BAq3BA最小DFA 的状态变更图(1分)3.(20分)给定文法 G[E] :E → E+T | TT → T*F | FF → (E) | i该文法是 LL(1) 文法吗?(央供给出仔细历程,如果是LL(1),给出分解表)问:(1)该文法没有是LL(1)文法,果为有左递归,与消左递归可赢得一个LL(1)文法(2分)(2)与消左递归,得新文法 (3分)E → TE’E’→ +TE’| εT → FT’T’→ *FT’ |εF → (E) | i(3)供爆收式左部的First集 (2.5分)First(TE’) = First(T)= First(F)={(,i}First(+TE’) = {+}First(FT’) = First(F)={(,i}First(*FT’) = {*}First((E)) = {(}First(i) = {i}(4)供所有非末结符的Follow集(2.5分)Follow(E) = {$,)}Follow(E’) = Follow(E) = {$,)}Follow(T) = First(E’)∪Follow(E)={+} ∪{$,)}={$,+,)} Follow(T’) = Follow(T) ={$,*,)}Follow(F) = First(T’)∪Follow(T)∪Follow(T’)= {$,*,)} (5)供所有爆收式的Select集 (2.5分)Select(E → TE’)=First(TE’)= {(,i}Select(E’→ +TE’)=First(+TE’)= {+}Select(E’→ε)= Follow(E’) = {$,)}Select(T → FT’)=First(FT’)= {(,i}Select(T’→ *FT’)=First(*FT’)= {*}Select (T ’→ε)= Follow(T ’) ={$,+,)} Select (F → (E))=First((E))= {(} Select (F → i )=First(i)= {i}(6)对付相共左部的所有Select 即供接集(2.5分) Select (E ’→ +TE ’)∩Select (E ’→ε)=Φ Select (T ’→ *FT ’)∩Select (T ’→ε)=Φ Select (F → (E))∩Select (F → i )=Φ所以,变革后的文法是LL (1)文法,其分解表如下 (7) LL(1) 分解表( 5 分)V NV T+ * i ( )$E E → TE ’ E → TE ’ E ’ E ’→ +TE ’ E ’→ε E ’→εT T → FT ’ T → FT ’ T ’ T ’→ε T ’→ *FT ’ T ’→ε T ’→εF F → (E) F → i1.(10分)对付于文法G :SaSbS|aS|d道明该文法是二义性文法.问:一个文法,如果存留某个句子有没有只一棵语法分解树与之对付应,那么称那个文法是二义性文法.(5分)句子aadbd 有二棵语法树(5分,划一棵树给3分).如下图:(6分)(1) (2)由此可知,SaSbS|aS|d 定义的文法是二义性文法.3.(20分)给定一个简朴的算术表白式文法 G[E] : E → E+T | T T → T*F | F F → (E) | i该文法是 SLR(1) 文法吗?(央供给出仔细历程,如果是SLR 文法,给出分解表)dSSa bSSad SaSSabSdd问:(1) 该文法的拓广文法是: (2分)E’→E (1)E → E+T (2)E → T (3)T → T*F (4)T → F (5)F → (E) (6)F → i (7)(2)相映的LR(0)的DFA:(10分)(3)辩论与办理 (3分)① I1状态中有移进—规约辩论Follow(E’)={ $ } 没有含{ + }可办理移进—规约辩论② I2状态中有移进—规约辩论Follow(E)={ +,),$ } 没有含{ * }可办理移进—规约辩论③ I8状态中有移进—规约辩论Follow(E)={ +,),$ } 没有含{ * }可办理移进—规约辩论(4) SLR分解表 (5分)二、单项采用题(每小题2分,共20分)1.谈话是____C_A.末结符与非末结符的标记串的集中 B.非末结符标记串的集中 C.末结符标记串的集中 D.爆收式的集中2.编译步调分二阶段处事,前阶段完毕的处事是__C___A.词汇法分解、语法分解战代码劣化 B.代码死成、代码劣化战词汇法分解C.词汇法分解、语法分解、语义分解战中间代码死成D.词汇法分解、语法分解战代码劣化3.一个句型中称为句柄的是该句型的最左CA.句型 B.短语 C.间接短语 D.最左间接短语4.自效果识别的谈话是 DA.0型谈话 B.1型谈话 C.2型谈话 D.3型谈话5.自效果所完毕的任务是从字符串形式的源步调中辨别出一个个具备独力含意的最小语法单位即 BA.字符 B.单词汇 C.句子 D.句型6.对付应Chomsky四种文法的四种谈话之间的闭系是BA.L0L1L2L3 B.L3L2L1L0C.L3=L2L1L0 D.L0L1L2=L37.词汇法分解的任务是AA.辨别单词汇 B.分解句子的含意 C.辨别句子 D.死成目标代码8.时常使用的中间代码形式没有含DA.三元式 B.四元式 C.顺波兰式 D.语法树9.代码劣化的手段是CA.节省时间 B.节省空间 C.节省时间战空间 D.把编译步调举止等价接换10.代码死成阶段的主要任务是CA.把下档谈话翻译成汇编谈话 B.把下档谈话翻译成呆板谈话C.把中间代码变更成依好简曲呆板的目标代码D.把汇编谈话翻译成呆板谈话。
北方工业大学16编译原理期末复习题(答案)
北方工业大学《编译原理》课程期末复习题(答案)A 卷2016年春季学期开课学院考试方式:闭卷考试时间:120 分钟班级 姓名 学号 一判断题(每个小题1分,共10分)1. 程序语言主要由语法和语义两方面定义。
( )2. 自上而下分析方法会遇到的主要问题有左递归和回溯。
( )3. 已知文法G :E →i | EAE ,A →+|* ,其中的终结符号集包括{i ,+}。
( )4. 编译程序是将高级语言程序翻译成机器语言程序。
( )5. 只含有综合属性的属性文法称为S-属性文法。
( )6. LL(1)文法中第一个L 的含义是从左到右扫描输入串。
( )7. 在编译中进行语法检查的目的是为了发现程序中所有错误。
( )8. 一个语义子程序描述了一个文法所对应的翻译工作。
( )9. 一个句型的直接短语是唯一的。
( ) 10. 确定的自动机以及不确定的自动机都能正确地识别正规集。
( ) 解:1.√ 2.√ 3.× 4.× 5.√ 6.√ 7.× 8.× 9.× 10.√二、选择题(每个小题1分,共20分)1. 文法分为四种类型,即0型、1型、2型、3型。
其中3型文法是____。
A. 短语文法 B. 正规文法 C. 上下文有关文法 D. 上下文无关文法2. 不可能是目标代码。
A. 汇编指令代码B. 可重定位指令代码C. 绝对指令代码D. 中间代码 3. 将编译程序分成若干个“遍”是为了 。
A. 提高程序的执行效率B. 利用有限的机器内存并提高机器的执行效率C. 使程序的结构更加清晰D. 利用有限机器内存但降低了机器的执行效率 4. 后缀式ab+cd+/可用表达式 来表示。
订线装A. a+b/c+dB. (a+b)/(c+d)C. a+b/(c+d)D. a+b+c/d5. 文法G:S→xSx|y所识别的语言是。
A. xyxB. (xyx)*C. x n yx n(n≥0)D. x*yx*6. 文法G[E]:E→E+T|TT→T*P|PP→(E)|i则句型P+T+i的句柄和最左素短语为。
编译原理期末复习题+答案-北华航天工业学院
一、单项选择题概述部分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. 请解释符号表在编译过程中的作用。
符号表是编译器在编译过程中用来管理变量、函数、类型等标识符的数据结构。
它的主要作用是记录标识符的相应属性,如类型、作用域等,以便在后续的语法、语义分析以及代码生成过程中进行查找、检查等操作。
4. 请简要解释LL(1)文法的定义和特点。
LL(1)文法是一种上下文无关文法,它具有以下特点:- 对于给定的非终结符,它的产生式右部的首符号不相同。
- 对于给定的产生式右部的首符号,它的产生式右部不相同。
- 通过向前查看一个符号,就能确定所选用的产生式。
5. 请简要解释词法分析器的作用和实现方式。
词法分析器的主要作用是将源代码分解为一个个词法单元,如变量名、关键字等。
它的实现方式一般采用有限自动机,通过定义正则表达式描述各个词法单元的模式,然后根据模式匹配的结果生成相应的词法单元。
答案仅为参考,请以实际考试为准。
编译原理期末复习题(答案)
北方工业大学《编译原理》课程期末复习题(答案)A 卷开课学院考试方式:闭卷考试时间:120 分钟班级 姓名 学号 一判断题(每个小题1分,共10分)1. 程序语言主要由语法和语义两方面定义。
( )2. 自上而下分析方法会遇到的主要问题有左递归和回溯。
( )3. 已知文法G :E →i | EAE ,A →+|* ,其中的终结符号集包括{i ,+}。
( )4. 编译程序是将高级语言程序翻译成机器语言程序。
( )5. 只含有综合属性的属性文法称为S-属性文法。
( )6. LL(1)文法中第一个L 的含义是从左到右扫描输入串。
( )7. 在编译中进行语法检查的目的是为了发现程序中所有错误。
( )8. 一个语义子程序描述了一个文法所对应的翻译工作。
( )9. 一个句型的直接短语是唯一的。
( ) 10. 确定的自动机以及不确定的自动机都能正确地识别正规集。
( ) 解:1.√ 2.√ 3.× 4.× 5.√ 6.√ 7.× 8.× 9.× 10.√二、选择题(每个小题1分,共20分)1. 文法分为四种类型,即0型、1型、2型、3型。
其中3型文法是____。
A. 短语文法 B. 正规文法 C. 上下文有关文法 D. 上下文无关文法2. 不可能是目标代码。
A. 汇编指令代码B. 可重定位指令代码C. 绝对指令代码D. 中间代码 3. 将编译程序分成若干个“遍”是为了 。
A. 提高程序的执行效率B. 利用有限的机器内存并提高机器的执行效率C. 使程序的结构更加清晰D. 利用有限机器内存但降低了机器的执行效率 4. 后缀式ab+cd+/可用表达式 来表示。
订线装A. a+b/c+dB. (a+b)/(c+d)C. a+b/(c+d)D. a+b+c/d5. 文法G:S→xSx|y所识别的语言是。
A. xyxB. (xyx)*C. x n yx n(n≥0)D. x*yx*6. 文法G[E]:E→E+T|TT→T*P|PP→(E)|i则句型P+T+i的句柄和最左素短语为。
编译原理期末试题(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.( ) x n yx n(n≥0) D.( ) x*yx*4.如果文法G是无二义的,则它的任何句子α_____。
A.( )最左推导和最右推导对应的语法树必定相同B.( ) 最左推导和最右推导对应的语法树可能不同C.( ) 最左推导和最右推导必定相同D.( )可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握______。
北方工业大学《编译原理》期末试卷2016
(√)
2.自上而下分析方法会遇到的主要问题有左递归和回溯。
(√)
3.已知文法 G:Ei | EAE,A+|* ,其中的终结符号集包括{i,+}。 (×)
4.编译程序是将高级语言程序翻译成机器语言程序。
订
5.只含有综合属性的属性文法称为 S-属性文法。
(×) (√)
6.中间语言的复杂性界于源语言和目标语言之间。
if A = 1 then C:=C+1 else
while A <= D do E[I,J]:=F[E[I+1,J+1]]+F[I+J];
(12 分)
解: 100 (j<, A, C,102)
101 (j, _, _,0)
(1 分)
102 (j<, B, D,104)
103 (j, _, _,101)
{2,3,4} 2
{2,3,4,5} 4
{2,3}
3
{2,3,4} 2
{2,3,4,5} 4
{2,3,4,5} 4
确定化后的 DFA 为:
0
20
1
01
4
1
31
0
1
I1 {2,3} 3 {2,3} 3 {2,3} 3 {2,3} 3
(2 分) (1 分)
对该 DFA M 进行化简:
(2 分)
基本分划∏为:非终态组{1,2,3},终态组{4}。
2.一张转换图只包含有限个状态,其中有一个被认为是 初 态;而且实际上
至少要有一个 终 态。
3.最右推导也称为 规范推导 ,由此得到的句型称为 规范 句型。
4.对于整理与查找来说,杂凑算法具有效率 最高 ,实现 复杂 ,消耗
编译原理期末考试试卷及答案
规范规约是最( )规约。
编译程序的工作过程一般划分为 个阶段:词法分析、( ) 、语义分析与中间代码生成,代码优化及( ) 。
另外还有( )和出错处理。
.表达式⌧⍓✉☎♋♌✆的后缀式为 ( ) 。
.文法符号的属性有综合属性和 ( )。
.假设二位数组按行存放,而且每个元素占用一个存储单元,则数组♋☯某个元素♋☯♓, 的地址计算公式为( )。
.局部优化是局限于一个( )范围内的一种优化。
二. 选择题( 为单选题, 为多选题,每问 分,共 分) 一个上下文无关文法☝包括四个组成部分:一组终结符,一组非终结符,一个( ),以及一组( )。
✌. 字符串 . 产生式 . 开始符号 . 文法程序的基本块是指( )。
✌. 一个子程序 . 一个仅有一个入口和一个出口的语句. 一个没有嵌套的程序段 . 一组顺序执行的程序段,仅有一个入口和一个出口 高级语言编译程序常用的语法分析方法中,递归下降分析法属于( )分析方法。
✌. 自左向右 . 自顶向下 . 自底向上 . 自右向左.在通常的语法分析方法中,( )特别适用于表达式的分析。
✌. 算符优先分析法 . ☹分析法. 递归下降分析法 . ☹☹( )分析法.经过编译所得到的目标程序是( )。
✌. 四元式序列 . 间接三元式序列. 二元式序列 . 机器语言程序或汇编语言程序. 一个文法所描述的语言是( );描述一个语言的文法是( )。
✌. 唯一的 . 不唯一的 . 可能唯一,也可能不唯一. 如果在文法☝中存在一个句子,当其满足下列条件( )之一时,则称该文法是二义文法。
✌. 其最左推导和最右推导相同 . 该句子有两个不同的最左推导. 该句子有两个不同的最右推导 . 该句子有两棵不同的语法树☜. 该句子对应的语法树唯一. 下面( )语法制导翻译中,采用拉链—回填技术。
✌ 赋值语句 布尔表达式的计算 条件语句 循环语句. (共 分)已知文法☝☯☜☜→☜❆☜(☜) ♓❆→✉( )将文法☝改造成☹☹( )文法;( 分)( )构造文法☝中每个非终结符的☞✋❆集合及☞☹☹集合;( 分)( )构造☹☹( )分析表。
编译原理期末测试练习题及答案
一、单选题1、编译程序是一种( )。
A.汇编程序B.目标程序C.翻译程序D.解释程序正确答案:C2、若文法G定义的语言是无限集,则文法必然是( )。
A.二义性的B.上下文无关的C.递归的D.无二义性的正确答案:C3、一个上下文无关文法G包括四个组成部分,它们是一组非终结符号,一组终结符号,一个开始符号,以及一组( )。
A.句子B.单词C.产生式D.句型正确答案:C4、文法G:S →x xS | y 所识别的语言是( )。
A.xxy∗B. xx∗yxC.(xxy)∗D.(xx)∗y正确答案:D5、文法G:S →xS | y 所识别的语言是( )。
A.(xy)∗B.xy∗C.x∗yD. xx∗yx正确答案:C6、在自上而下的语法分析中,应从( )开始分析。
A.句型B.句子C.文法开始符号D.句柄正确答案:C7、语法分析器的输入是()。
A.符号表B.目标程序C.源程序D.Token序列正确答案:D8、LL(1)分析法中“1”的含义是在输入串中查看一个输入符号,其目的是()。
A.确定最左推导B.确定是否推导C.确定句柄D.确定使用哪一个产生式进行展开正确答案:D9、同正规式(a|b)∗等价的正规式为( )。
A.a∗|b∗B.(a|b)+C.(ab)∗D.(a∗|b∗)+正确答案:D10、已知文法G[S]:S→A1,A→A1|S0|0,与G等价的正规式是( )。
A.1∗|0∗1B.0(1|10)∗1C.0(0|1)∗D.1(10|01)∗0正确答案:B11、与(a|b)∗(a|b)等价的正规式是( )。
A.a∗|b∗B.(ab)∗(a|b)C.(a|b)(a|b)∗D.(a|b)∗正确答案:C12、如果一个正规式所代表的集合是无穷的,则它必含有的运算是( )。
A.接运算“·”B.或运算“|”C.括号“(”和“)”D.闭包运算“* ”正确答案:D13、在语法分析处理中,FIRST集合、FOLLOW集合均是( )。
编译原理试题及答案(期末复习版)
<编译原理>历年试题及答案一.(每项选择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)构造预测分析表。
编译原理期末试题(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.构造编译程序应掌握______。
编译原理期末复习题(包含上一份N多答案)
编译原理期末复习题(包含上一份N多答案)编译原理复习题一、填空题:1、编译方式与解释方式的根本区别在于(是否生成目标代码)。
2、对编译程序而言,输入数据是(源程序),输出结果是(目标程序)。
3、如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两大阶段:(编译阶段)和(运行阶段)。
4、如果编译程序生成的目标程序是汇编语言程序,则源程序的执行分成三个阶段:(编译阶段)、(汇编阶段)和(运行阶段)。
5、自顶向下语法分析方法会遇到的主要问题有(回溯)和((左递归带来的)无限循环)。
6、LL(k)分析法中,第一个L的含义是(从左到右进行分析),第二个L的含义是(每次进行最左推导),“k”的含义是(向输入串中查看K个输入符号)。
7、LL(1)分析法中,第一个L的含义是(从左到右进行分析),第二个L的含义是(每次进行最左推导),“1”的含义是(向输入串中查看1个输入符号)。
8、自顶向下语法分析方法的基本思想是:从(识别符号)出发,不断建立(直接推导),试图构造一个推导序列,最终由它推导出与输入符号相同的(符号串)。
9、自底向上语法分析方法的基本思想是:从待输入的符号串开始,利用文法的规则步步向上进行(直接归约),试图(归约)到文法的(识别符号|开始符号)。
10、LR(0)分析法的名字中,“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“0”的含义是(向貌似句柄的符号串后查看0个输入符号)。
11、LR(1)分析法的名字中,“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“1”的含义是(向貌似句柄的符号串后查看1个输入符号)。
12、SLR(1)分析法的名字中,“S”的含义是(简单的),“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“1”的含义是(向貌似句柄的符号串后查看1个输入符号)。
编译原理期末考试复习题(含答案)
编译原理期末考试复习题(含答案)一、选择题1.代码生成阶段的主要任务是(C)。
A.把高级语言翻译成汇编语言B.把高级语言翻译成机器语言C.把中间代码变换成依赖具体机器的目标代码D.把汇编语言翻译成机器语言2.文法G 所描述的语言是( C )的集合。
A.文法G 的字母表V 中所有符号组成的符号串B.文法G 的字母表V 的闭包V* 中的所有符号串C.由文法的开始符号推出的所有终结符串D.由文法的开始符号推出的所有符号串3.语言是(C)。
A.终结符与非终结符的符号串的集合B.非终结符符号串的集合C.终结符符号串的集合D.产生式的集合4.常用的中间代码形式不含(D)。
A.三元式B.四元式C.逆波兰式D.语法树5.四元式之间的联系是通过(B)实现的。
A.指示器B.临时变量C.符号表D.程序变量6.词法分析器的输出结果是( C )。
A.单词的种别编码B.单词在符号表中的位置C.单词的种别编码和自身值D.单词自身值7.表达式(┐A∨B)∧(C∨D)的逆波兰表示为(B)。
A. ┐AB∨∧CD∨B.A┐B∨CD∨∧C.AB∨┐CD∨∧ D.A┐B∨∧CD∨8.下推自动机识别的语言是( C )A.0型语言 B.1型语言C.2型语言 D.3型语言9. 在规范归约中,用(B)来刻画可归约串。
A.直接短语 B.句柄C.最左素短语 D.素短语10.词法分析器用于识别( C)。
A.字符串 B.语句 C.单词 D.标识符11.一个句型中称为句柄的是该句型的最左(D)A.非终结符号 B.短语 C.句子 D.直接短语12.文法 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.③13.通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括(C)。
编译原理期末试题(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.构造编译程序应掌握______。
编译原理期末考试试卷及答案
一. 填空题(每空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)范围内的一种优化。
二. 选择题(1-6为单选题,7-8为多选题,每问2分,共20分)1. 一个上下文无关文法G 包括四个组成部分:一组终结符,一组非终结符,一个( ),以及一组( )。
A . 字符串B . 产生式C . 开始符号D . 文法 2.程序的基本块是指( )。
A . 一个子程序B . 一个仅有一个入口和一个出口的语句C . 一个没有嵌套的程序段D . 一组顺序执行的程序段,仅有一个入口和一个出口 3. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于( )分析方法。
A . 自左向右 B . 自顶向下 C . 自底向上 D . 自右向左 4.在通常的语法分析方法中,( )特别适用于表达式的分析。
A . 算符优先分析法 B . LR 分析法 C . 递归下降分析法 D . LL (1)分析法 5.经过编译所得到的目标程序是( )。
A . 四元式序列B . 间接三元式序列C . 二元式序列D . 机器语言程序或汇编语言程序 6. 一个文法所描述的语言是( );描述一个语言的文法是( )。
A . 唯一的 B . 不唯一的 C . 可能唯一,也可能不唯一7.如果在文法G中存在一个句子,当其满足下列条件()之一时,则称该文法是二义文法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北方工业大学《编译原理》课程期末复习题(答案)A 卷2016年春季学期开课学院考试方式:闭卷考试时间:120 分钟班级 姓名 学号 一判断题(每个小题1分,共10分)1. 程序语言主要由语法和语义两方面定义。
( )2. 自上而下分析方法会遇到的主要问题有左递归和回溯。
( )3. 已知文法G :E →i | EAE ,A →+|* ,其中的终结符号集包括{i ,+}。
( )4. 编译程序是将高级语言程序翻译成机器语言程序。
( )5. 只含有综合属性的属性文法称为S-属性文法。
( )6. LL(1)文法中第一个L 的含义是从左到右扫描输入串。
( )7. 在编译中进行语法检查的目的是为了发现程序中所有错误。
( )8. 一个语义子程序描述了一个文法所对应的翻译工作。
( )9. 一个句型的直接短语是唯一的。
( ) 10. 确定的自动机以及不确定的自动机都能正确地识别正规集。
( ) 解:1.√ 2.√ 3.× 4.× 5.√ 6.√ 7.× 8.× 9.× 10.√二、选择题(每个小题1分,共20分)1. 文法分为四种类型,即0型、1型、2型、3型。
其中3型文法是____。
A. 短语文法 B. 正规文法 C. 上下文有关文法 D. 上下文无关文法2. 不可能是目标代码。
A. 汇编指令代码B. 可重定位指令代码C. 绝对指令代码D. 中间代码 3. 将编译程序分成若干个“遍”是为了 。
A. 提高程序的执行效率B. 利用有限的机器内存并提高机器的执行效率C. 使程序的结构更加清晰D. 利用有限机器内存但降低了机器的执行效率 4. 后缀式ab+cd+/可用表达式 来表示。
订线装A. a+b/c+dB. (a+b)/(c+d)C. a+b/(c+d)D. a+b+c/d5. 文法G:S→xSx|y所识别的语言是。
A. xyxB. (xyx)*C. x n yx n(n≥0)D. x*yx*6. 文法G[E]:E→E+T|TT→T*P|PP→(E)|i则句型P+T+i的句柄和最左素短语为。
A. P+T和iB. P和P+TC. i和P+T+iD. P和T7. 设有文法G[E]:E→E*T|TT→T+i|i句子1+2*8+6按该文法G归约,其值为。
A. 42B. 23C. 30D. 178. 规范归约指。
A. 最右推导的逆过程B. 最左推导的逆过程C. 规范推导D. 最左归约的逆过程9. 词法分析所依据的是。
A. 语义规则B. 构词规则C. 语法规则D. 等价变换规则10. 状态转换图(见下图)接受的集合为。
A. 以0开头的二进制数组成的集合B. 以0结尾的二进制数组成的集合C. 含奇数个0的二进制数组成的集合D. 含偶数个0的二进制数组成的集合11. 词法分析器作为独立的阶段使整个编译程序结构更加简洁、明确,因此,。
A. 词法分析器作为子程序较好B. 词法分析器并不作为一个独立的阶段C. 词法分析器分解为多个过程,由语法分析器选择使用D. 词法分析器应作为独立的一遍12. 若a为终结符,则A→α·aβ为项目。
A. 移进B. 归约C. 接受D. 待约13. 中间代码生成所依据的是。
A. 语法规则B. 词法规则C. 语义规则D. 等价变换规则14. 终结符具有属性。
A. 传递B. 继承C. 抽象D. 综合15. 下推自动机识别的语言是。
A. 0型语言B. 1型语言C. 2型语言D. 3型语言16. 常用的中间代码形式不含。
A. 三元式B. 四元式C. 逆波兰表达式D. 语法树17. 算符文法是指的文法。
A. 没有形如U→...VW...的产生式(U、V、W∈V N)B. V T中任意两个符号之间至多存在一种算符优先关系C. 没有相同右部的产生式D. 没有形如U→ε的产生式18. 下述语句类中,____________在编译阶段通常不产生可执行代码。
A. 变量说明语句B. 流程控制语句C. 输入输出语句D. 赋值语句19. 文法所描述的语言是的集合。
A. 文法的字母表中符号组成的符号串B. 文法的字母表中终结符号组成的符号串C. 由文法开始符号推导的符号串D. 由文法开始符号推导的终结符号串20. 符号串ab1b2是文法G[A]:A→aB, B→bB|b的句子,该句子的句柄是________。
A. b1B. b2C. aD. b1b2解:1. B 2. D 3. C 4. B 5. C6. B7. A8. A9. B 10. D11. A 12. A 13. C 14. D 15. C16. D 17. A 18. A 19. D 20. B三、已知文法G的产生式为:E→T|E+T|E-TT→F|T*F (2-1)F→ (E)|i试求:(1)消除该文法的左递归;(5分)(2)利用(1)得到的文法G’(2-1),求(i+i*i)的最左推导和语法分析树。
(5分)解:(1)E→TE’E’→+TE’|-TE’ |εT→FT’|T ’→*FT ’|ε (2-1)’ F →(E)|i (2)E ⇒TE ’⇒FT ’E ’⇒(E)T ’E ’⇒(E)εε⇒(TE ’)⇒(FT ’E ’)⇒(iT ’E')⇒(i εE ’)⇒(i+TE ’)⇒(i+FT ’E ’)⇒(i+iT ’E ’)⇒(i+i*FT ’E ’)⇒(i+i*iT ’E ’)⇒(i+i*i εε) ⇒(i+i*i)四、已知文法G 的产生式:E →TE ’E’→+TE’|-TE’ |εT →FT’|T’→*FT’|ε(2-1)’F →(E)|i试求:(1)每个非终结符的FIRST 集合;(5分)(2)每个非终结符的FOLLOW 集合。
(5分)答:FIRST(E)={(,i} FOLLOW(E)={),#} FIRST(E’)={-,+, ε} FOLLOW(E’)={),#} FIRST(T)={(, i} FOLLOW(T)={-,+, ), #} FIRST(T’)={*, ε} FOLLOW(T’)={-,+,),#} FIRST(F)={(, i}FOLLOW(F)={*,-,+, ), #}E ’E(根) Tiε ( )Fi+T ’ ε T E ’i*ε五、已知文法G3:S→a|^|(T);T→T,S|S其中:S、T是非终结符,a、^ 、, 、(和)是终结符,S为开始符合,试求:(1)计算非终结符的FISTVT和LASTVT;(2)给出终结符的算符优先关系表;(3)给出(a,(a,a))的算符优先分析过程,指出每次规约的素短语。
(共30分,每小题10分)解:(1)FIRSTVT和LASTVT如下:FIRSTVT(S)={a,∧,(}FIRSTVT(T)={,,a,∧,(}LASTVT(S)={a,∧,)}LASTVT(T)={,,a,∧,)}(2)(3)六、已知文法G 的产生式为:E→T|E+T|E-TT→F|T*F (2-1)F→ (E)|i试给出表达式i1*i2+i3的规范式规约过程。
用下面的格式描述该过程。
(10分)步骤符号栈输入串所用产生式答:输入串i1*i2+i3的分析步骤:步骤符号栈输入串所用产生式0 # i1*i2+i3# 预备1 #i1*i2+i3# 进2 #F *i2+i3# 归,用F→i3 #T *i2+i3# 归,用T→F4 #T* i2+i3# 进5 #T*i2+i3# 进6 #T*F+i3# 归,用F→i7 #T +i3# 归,用F→E*F8 #E +i3# 归,用F→T9 #E+ i3# 进10 #E+i3 # 进11 #E+F # 归,用E→i12 #E+T # 归,用T→F13 #E # 归,用E→E+T14 #E # 接受七、属性文法如表5-1所示,试求表达式a+4+c的抽象语法树,并描述建立抽象语法树过程。
(10分)表6-1 属性文法产生式语义规则E→E1+T E.nptr := mknode( ‘ + ’, E1.nptr , T.nptr )E→E1-T E.nptr := mknode( ‘ - ’, E1.nptr , T.nptr )E→T E.nptr := T.nptrT→(E)T.nptr := E.nptrT→id T.nptr := mklear( id , id.entry )答:表达式 a - 4 + c 的语法树100:if a < b goto 103 101:t1 := 0102:goto 104 103:t1 := 1104:if c < d goto 107 105:t2 := 0106:goto 108 107:t2 := 1108:if e < f goto 111 109:t3 := 0110:goto 112 111:t3 := 1112:t4 := t1 and t2 113:t5 := t3 or t4九、已知翻译规则试把下面的语句翻译成三地址代码 While A<C and B<D DoIf A=1 then C:=C+1 else While A<=D Do A:=A+2答:十、已知翻译规则(见第九题),试把下面的原程序翻译成三地址代码。
while a < b doif c < d thenx := y + zelsex := y - z答:L1: if a < b goto L2goto LnextL2: if c < d goto L3goto L4L3: t1 := y + zx := t1goto L1(goto L5)L4: t2 := y - zx := t2L5 goto L1Lnext: goto L1十一、对以下四元式程序,试求:(1)它的流图(5分),(2)对其中的循环进行循环优化(10分)。
十二、已知一个三地址代码如下。
试完成(1)给出对应的流图(5分);(2)对流图中的代码进行优化(10分)。
I:=1Read J,KL1:If I>100 goto L2A:=K*IB:=J*IC:=A*BWrite CI:=I+1Goto L1 L2: Halt。