编译原理复习整理(重点含答案)
《编译原理》复习题(看完必过)

《编译原理》复习题(看完必过)一、单项选择题1.将编译程序分成若干个“遍”是为了( B )A.提高程序的执行效率B. 使程序的结构更加清晰C.利用有限的机器内存并提高机器的执行效率D.利用有限的机器内存但降低了机器的执行效率2.不可能是目标代码的是( D )A.汇编指令代码 B.可重定位指令代码C.绝对指令代码 D.中间代码3.词法分析器的输入是( B )A.单词符号串 B.源程序C.语法单位 D.目标程序4.中间代码生成时所遵循的是( C )A.语法规则 B.词法规则C.语义规则 D.等价变换规则5.编译程序是对( D )A.汇编程序的翻译 B.高级语言程序的解释执行C.机器语言的执行 D.高级语言的翻译6.词法分析应遵循( C )A.语义规则 B.语法规则C.构词规则 D.等价变换规则7.词法分析器的输出结果是( C )A.单词的种别编码 B.单词在符号表中的位置C.单词的种别编码和属性值 D.单词属性值8.正规式M1和M2等价是指( C )A.M1和M2的状态数相等 B.M1和M2的有向弧条数相等C.M1和M2所识别的语言集相等 D.M1和M2状态数和有向弧条数相等9.词法分析器作为独立的阶段使整个编译程序结构更加简洁、明确,因此,( B ) A.词法分析器应作为独立的一遍B.词法分析器作为子程序较好C.词法分析器分解为多个过程,由语法分析器选择使用.D.词法分析器并不作为一个独立的阶段10.如果L(M1)=L(M2),则M1与M2( A )A .等价B .都是二义的C .都是无二义的D .它们的状态数相等 11.文法G :S →xSx|y 所识别的语言是( C )A .xyxB .(xyx)* c .x n yx n (n ≥0) d .x *yx *12.文法G 描述的语言L(G)是指( A ) A.⎭⎬⎫⎩⎨⎧∈⇒=+*,|)(T V S G L αααB .⎭⎬⎫⎩⎨⎧⋃∈⇒=+*)(,|)(N T V V S G L ααα C .⎭⎬⎫⎩⎨⎧∈⇒=**,|)(T V S G L αααD .⎭⎬⎫⎩⎨⎧⋃∈⇒=**)(,|)(N T V V S G L ααα 13.有限状态自动机能识别( C )A .上下文无关文法B .上下文有关文法C .正规文法D .短语文法14.如果文法G 是无二义的,则它的任何句子( A ) A .最左推导和最右推导对应的语法树必定相同 B .最左推导和最右推导对应的语法树可能不同 C .最左推导和最右推导必定相同D .可能存在两个不同的最左推导,但它们对应的语法树相同 15.由文法的开始符经0步或多步推导产生的文法符号序列是( C ) A .短语 B .句柄 C .句型 D .句子 16.文法G :E →E+T|T T →T*P|P P →(E)|i则句型P+T+i 的句柄为( B )A .P+TB .PC .P+T+iD .i 17.文法G :S →b|∧|(T) T →T ∨S|S 则FIRSTVT(T)=( C )A .{ b ,∧,( }B .{ b ,∧,) }C .{ b ,∧,(,∨ }D .{ b ,∧,),∨ } 18.产生正规语言的文法为( D )A .0型B .1型C .2型D .3型19.任何算符优先文法( D )优先函数。
编译原理答案整理

1第2章 习题2-1 设有字母表A 1 ={a,b,c,…,z},A 2={0,1,={0,1,……,9},9},试回答下列问题:,试回答下列问题:,试回答下列问题:(1) 字母表A 1上长度为2的符号串有多少个?的符号串有多少个? (2) 集合A 1A 2含有多少个元素?含有多少个元素?(3) 列出集合A 1(A 1∪A 2)*中的全部长度不大于3的符号串。
的符号串。
2-2 试分别构造产生下列语言的文法:试分别构造产生下列语言的文法:试分别构造产生下列语言的文法: (1){a nb n|n≥0};|n≥0}; (2){a n b m c p |n,m,p≥0};|n,m,p≥0};(3){a n#b n|n≥0}∪|n≥0}∪{c {c n#d n|n≥0};|n≥0};(4){w#w r # | w ∈{0,1}*,w r 是w 的逆序排列的逆序排列 } }; (5)任何不是以0打头的所有奇整数所组成的集合;的集合;(6)所有由偶数个0和偶数个1所组成的符号串的集合。
号串的集合。
2-3 试描述由下列文法所产生的语言的特点:试描述由下列文法所产生的语言的特点: (1)S→10S0)S→10S0 S→aA S→aA A→bA A→bA A→a A→a (2)S→SS S→1A0S→1A0 A→1A0A→1A0A→ε (3)S→1A )S→1A S→B0S→B0 A→1A A→1A A→C A→C B→B0B→B0 B→C B→C C→1C0C→1C0C→ε(4)S→aSS )S→aSS S→a S→a 2-4 试证明文法试证明文法试证明文法 S →AB|DC A →aA|a B →bBc|bc C →cC|c D →aDb|ab为二义性文法。
为二义性文法。
2-5 对于下列的文法对于下列的文法对于下列的文法 S →AB|c A →bA|a B →aSb|c试给出句子bbaacb 的最右推导,并指出各步直接推导所得句型的句柄;指出句子的全部短语。
编译原理习题及答案(整理后)

第一章之相礼和热创作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.6、词法分析遵照的是构词规则,语法分析遵照的是语法规则,两头代码生成遵照的是语义规则,而且语义规则可以定义一个程序的意义.因此选a.7、b 8、c 9、d 10、c多选解答1.b、c 2. a、b、c、e填空解答能否生成目的程序 2、词法分析两头代码生成 3、源程序目的代码生成4、源程序目口号言第二章一、单项选择题1、文法G:S→xSx|y所识此外言语是.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步或多步推导发生的文法符号序列是.a. 短语b.句柄c. 句型d. 句子7、文法G:E→E+T|TT→T*P|PP→(E)|I则句型P+T+i的句柄和最左素短语为.a.P+T和i和P+T 和P+T+id.P和T8、设文法为:S→SA|AA→a|b则对句子aba,下面是规范推导.ÞSAÞSAAÞAAAÞaAAÞabAÞabab. SÞSAÞSAAÞAAAÞAAaÞAbaÞabac. SÞSAÞSAAÞSAaÞSbaÞAbaÞabad. SÞSAÞSaÞSAaÞSbaÞAbaÞaba9、文法G:S→b|∧(T)T→T,S|S则FIRSTVT(T).a. {b,∧,(}b. {b,∧,)}c.{b,∧,(,,}d.{b,∧,),,}10、发生正轨言语的文法为.型 b. 1型 c. 2型 d. 3型11、采取自上而下分析,必须.a. 消弭左递回b. 消弭右递回c. 消弭回溯d. 提取公共左因子12、在规范回约中,用来刻画可回约串.a. 直接短语b. 句柄c. 最左素短语d. 素短语13、有文法G:E→E*T|TT→T+i|i句子1+2*8+6按该文法G回约,其值为.a. 23 B. 42 c. 30 d. 1714、规范回约指.a. 最左推导的逆过程b. 最右推导的逆过程c. 规范推导d.最左回约的逆过程二、多项选择题1、下面哪些说法是错误的.a. 有向图是一个形态转换图b. 形态转换图是一个有向图c.有向图是一个DFAd.DFA可以用形态转换图暗示2、对无二义性文法来说,一棵语法树每每代表了.a. 多种推导过程b. 多种最左推导过程c.一种最左推导过程d.仅一种推导过程e.一种最左推导过程3、假如文法G存在一个句子,满足下列条件之一时,则称该文法是二义文法.a. 该句子的最左推导与最右推导相反b. 该句子有两个分歧的最左推导c. 该句子有两棵分歧的最右推导d. 该句子有两棵分歧的语法树e.该句子的语法树只要一个4、有一文法G:S→ABA→aAb|εB→cBd|ε它不发生下面集合.a. {a n b m c n d m|n,m≥0}b. {a n b n c m d m|n,m>0}c. {a n b m c m d n|n,m≥0}d. {a n b n c m d m|n,m≥0}e. {a n b n c n d n|n≥0}5、自下而上的语法分析中,应从开始分析.a. 句型b. 句子c. 以单词为单位的程序d. 文法的开始符e. 句柄6、对正轨文法描绘的言语,以下有才能描绘它.a.0型文法b.1型文法c.上下文有关文法d.右线性文法e.左线性文法三、填空题1、文法中的闭幕符和非闭幕符的交集是.词法分析器交给语法分析器的文法符号一定是,它一定只出如今发生式的部.2、最左推导是指每次都对句型中的非闭幕符进行扩展.3、在语法分析中,最稀有的两种方法一定是分析法,另一是分析法.4、采取语法分析时,必须消弭文法的左递回.5、树代表推导过程,树代表回约过程.6、自下而上分析法采取、回约、错误处理、等四种操纵.7、Chomsky把文法分为品种型,编译器构造中采取和文法,它们分别发生和言语,并分别用和自动机辨认所发生的言语.四、判别题1、文法 S→aS|bR|ε描绘的言语是(a|bc)* ( )R→c S2、在自下而上的语法分析中,语法树与分析树一定相反.()3、二义文法不是上下文有关文法. ()4、语法分析时必须先消弭文法中的左递回.()5、规范回约和规范推导是互逆的两个过程.()6、一个文法全部句型的集合构成该文法所能接受的言语.()五、简答题1、句柄2、素短语3、语法树4、回约5、推导六、问答题1、给出上下文有关文法的定义.2、文法G[S]:S→aSPQ|abQQP→PQbP→bbbQ→bccQ→cc(1)它是Chomsky哪一型文法?(2)它生成的言语是什么?3、按指定类型,给出言语的文法.L={a i b j|j>i≥1}的上下文有关文法.4、有文法G:S→aAcB|BdA→AaB|cB →bScA|b(1)试求句型aAaBcbbdcc 和aAcbBdcc 的句柄; (2)写出句子acabcbbdcc 的最左推导过程.5、对于文法G[S]:S →(L )|aS|aL →L, S|S(1)画出句型(S,(a ))的语法树.(2)写出上述句型的全部短语、直接短语、句柄和素短语. 6、考虑文法G[T]:T →T*F|F F →F ↑P|P P →(T )|i证明T*P ↑(T*F )是该文法的一个句型,并指出直接短语和句柄. 单选[解答] 1、选c.2、选a.3、选c.4、虽然a 与b 没有优先关系,但构造优先函数后,a 与b 就一定存在优先关系了.以是,由f(a)>g)(b)或f(a)<g(b)其实不克不及断定原来的a 与b 之间能否存在优先关系:故选c.5、假如文法G 无二义性,则最左推导是老师长左边的枝叶:对于d6、选c.7、由图2-8-18、规范推导是最左推导,故选d.9、由T →T,…和T →(… 得 由T →S 得FIRSTVT(S)⊂∧,(};即FIRSTVT(T)={b,∧,(,,}; 10、d 11、c 12、b 13、b 14、b多选解答 1、e 、a 、c 2、a 、c 、e 3、、a 、b 、c 、d 、e填空解答 1、空集 闭幕符 右 2、最左3、自上而上 自下而上4、自上而上5、语法 分析6、移进 接受7、4 2 型 3型 上下文有关言语 正轨言语 下推自动机 无限 判别解答 1、对 2、错 3、错 4、错 5、错 6、错 简答[解答]1、句柄:一个句型的最左直接短语称为该句型的句柄.2、素短语:至多含有一个闭幕符的素短语,而且除它本身之外不再含任何更小的素短语.3、语法树:满足下面4个条件的树称之为文法G[S]的一棵语法树. ①每一闭幕均有一标识表记标帜,此标识表记标帜为V N ∪V T 中的一个符号;②树的根结点以文法G[S]的开始符S 标识表记标帜;③若一结点至多有一个直接后继,则此结点上的标识表记标帜为V N 中的一个符号;④若一个以A 为标识表记标帜的结点有K 个直接后继,且按从左至右的顺序,这些结点的标识表记标帜分别为X 1,X 2,…,X K ,则A→X 1,X 2,…,X K ,必定是G 的一个发生式.4、回约:我们称αγβ直接回约出αAβ,仅当A→γ是一个发生式,且α、β∈(V N∪V T)*.回约过程就是从输入串开始,反复用发生式右部的符号更换成发生式左部符号,直至文法开始符.5、推导:我们称αAβ直接推出αγβ,即αAβÞαγβ,仅当A→γ是一个发生式,且α、β∈(V N∪V T)*.假如α1Þα2Þ…Þαn,则我们称这个序列是从α1至α2的一个推导.若存在一个从α1αn的推导,则称α1可推导出αn.推导是回约的逆过程.问答1[解答]一个上下文有关文法G是一个四元式(V T,V N,S, P),其中:●V T是一个非空无限集,它的每个元素称为闭幕符号;●V N是一个非空无限集,它的每个元素称为非闭幕符号,V T∩V N=Φ;●S是一个非闭幕符号,称为开始符号;●P是一个发生式集合(无限),每个发生式的方式是P→α,其中,P∈V N,α∈(V T∪V N)*.开始符号S至多必须在某个发生式的左部出现一次.2[解答](1)由于发生式左部存在闭幕符号,且全部发生式左部符号的长度均小于等于发生式右部的符号长度,以是文法G[S]是Chomsky1型文法,即上下文有关文法.(2)按发生式出现的顺序规定优先级由高到低(否则无法推出句子),我们可以得到:SÞabQÞabcSÞaSPQÞaabQPQÞaabPQQÞaabbQQÞaabbcQÞaabbccSÞaSPQÞaaSPQPQÞaaabQPQPQÞaaabPQQPQÞaaabPQPQQÞaaaPP QQQÞaaabbPqqqÞaaabbQQQÞaaabbbcQQÞaaabbbccQÞaaabbbccc……于是得到文法G[S]生成的言语L={a n b n c n|n≥1}3【解答】(1)由L={a i b j|j>i≥1}知,所求该言语对应的上下文有关文法首先应有S→aSb型发生式,以包管b的个数很多于a的个数;其次,还需有S→Sb或S→bS型的发生式,用以包管b的个数多于a的个数;也即所求上下文有关文法G[S]为:G[S]:S→aSb|Sb|b4【解答】(1)分别画出对应两句型的语法树,如图2-8-2所示句柄:AaB BdÞ5((6【解答】 首先构造T*P ↑(T*F 由图2-8-4可知,T*P ↑(T*F 直接短语有两个,即P 和T*F 第三章 一、单项选择题1、词法分析所根据的是. a. 语义规则 b. d. 等价变换规则2、词法分析器的输入结果是.a. 单词的种别编码b. 单词在符号表中的地位c. 单词的种别编码和本身值d. 单词本身值3、正轨式M 1和M 2等价是指.a. M 1和M 2的形态数相称b. M 1和M 2的有向弧条数相称c. M 1和M 2所识此外言语集相称d. M 1和M 2形态数和有向弧条数相称4、形态转换图(见图3-6-1)接受的字集为.a. 以 0b. 以0结尾的二进制数组成的集合 c. d. 含偶数个0的二进制数组成的集合 5白,因此,. a. 词法分析器作为子程序较好c. 词法分析器分解为多个过程,由语法分析器选择运用d. 词法分析器其实不作为一个独立的阶段 二、多项选择题1、在词法分析中,能辨认出. a. 基本字 b. 四元式 c. 运算符 d. 逆波兰式 e. 常数2、令∑={a,b},则∑上全部以b 扫尾,后跟多少个ab 的字的全体对应的正轨式为.a.b(ab)*b. b(ab)+c.(ba)*bd. (ba)+b e. b(a|b) 三、填空题1、确定无限自动机DFA 是的一个特例.2、若二个正轨式所暗示的相反,则以为二者是等价的.3、一个字集是正轨的,当且仅当它可由所. 四、判别题1、一个无限形态自动机中,有且仅有一个独一终态. ( )2、设r 和s 分别是正轨式,则有L (r|s )=L(r)|L(s). ( )3、自动机M 和M ′的形态数分歧,则二者必不等价. ( )4、确定的自动机以及不确定的自动机都能正确地辨认正轨集. ( )5、对恣意一个右线性文法G ,都存在一个NFA M ,满足L(G)=L(M). ( )6、对恣意一个右线性文法G ,都存在一个DFA M ,满足L(G)=L(M). ( )7、对任何正轨表达式e ,都存在一个NFA M ,满足L(G)=L(e). ( )8、对任何正轨表达式e ,都存在一个DFA M ,满足L(G)=L(e). ( ) 五、基本题1、设M =({x,y}, {a,b}, f,x,{y})为一非确定的无限自动机,其中f 定义如下:图3-6-7 的NFA Mf (x,a )={x,y} f (x,b )={y} f (y,a )=φ f (y,b )={x,y}试构造相应的确定无限自动机M ′.2、对给定正轨式b*(d|ad )(b|ab )+,构造其NFA M ; 单选解答 1、b 2、c3、c4、d5、b 多选解答 1、a 、c 、e 2、a 、b 、d填空解答 1、NFA 2、正轨集 3、DFA (NFA )所辨认 判别解答 1 、2、3、错 4、5、6、7、8、正确基本1解答:对照自动机的定义M=(S,Σ,f,S 0,Z),由f 的定义可知将转换矩阵中的全部子集重新命名而构成表3-6-4所示的形态转换矩阵.表3-6-4 形态转换矩阵将图调查{1,2}.{1,2}都导向1所示化简21、 D → T 2、 S →P →3、 G[S]aAbDe|dA →BSD|eB →SAc| cD| εD→Se| ε(1)求出该文法的每一个非闭幕符U的FOLLOW集.(2)该文法是LL(1)文法吗?(3)构造C[S]的LL(1)分析表.4、将文法G[V]改形成为LL(1)的.G[V]:V→N|N[E]E→V|V+EN→i5、已知文法:G[A]:A→aAa|ε(1)该文法是LL(1)文法吗?为什么?(2)若采取LL(1)方法进行语法分析,怎样得到该文法的LL(1)分析表?(3)若输入符号串“aaaa”,请给出语法分析过程.1解答: LL(1)分析表见表4-3-1分析虽然这个文法很简单,我们还是从求开始符号集合和后继符号集合开始.FIRST(D)=FIRST(T)={int, real}FOLLOW(D)=FOLLOW (L)={#}FIRST(L)={id} FOLLOW(T)={id}FIRST(R)={,, ε} FOLLOW(R)={#}有了下面每个非闭幕符的FIRST集合,填分析表时要计算一个发生式右部α的FIRST(α)就不是件难事了.填表时独一要警惕的时,ε是发生式R→ε右部的一个开始符号,而#在FOLLOW(R)中,以是R→ε填在输入符号#的栏目中.2解答:该文法不是LL(1)文法,见下面分析中的阐明.分析只要三个非闭幕符有两个选择.1、P的两个右部d P 和ε 的开始符号一定不相交.2、Q的两个右部a Q 和ε 的开始符号一定不相交.3、对S来说,由于x ∈ FIRST(A B),同时也有x ∈ FIRST(P Q x)(由于P和Q都可能为空).以是该文法不是LL(1)文法.3解答:(1)求文法的每一个非闭幕符U的FOLLOW集的过程如下:由于:①S是辨认符号,且有A→BSD、B→SAc、D→Se,以是FOLLOW(S)应包含FIRST(D)∪FIRST(Ac)∪FIRST(e)∪{#}={a,d}∪{a,d,c,e}∪{e}∪{#}={a,c,d,e#}②又由于A→BSD和D→ε,以是FOLLOW中还包含FOLLOW(A).由于S→aAbDe和B→SAc,以是FOLLOW(A)=FIRST(bDe)∪FIRST(c)={b,c}综合①、②得FOLLOW(S)={a,d,c,e,#}∪{a,b,c,d,e,#}由于A→BSD,以是 FOLLOW(B)=FIRST(SD)={a,d}由于S→aAbDe | d、A→BSD| e和B→SAc | cD,以是FOLLOW(D)=FIRST(e)∪FOLLOW(A)∪FOLLOW (B)={e}∪{b,c}∪{a,d}={a,b,c,d,e}(2)G[S]不是LL(1)文法.由于发生式B→SAc|cD| ε中FIRST(SAc)∩FOLLOW(B)={a,d}≠Ø(3)构造G[S]的LL(1)分析表.按照LL(1)分析表的构造算法构造方法G[S]的LL(1)分析表如表4-3-2所示.4解答:对文法G[V]提取公共左因子后得到文法:G′[V]:V→NAA→ε|[E]E→VBB→ε|+EN→i求出文法G′[V]中每一个非闭幕符号的FIRST集:FIRST(V)={i} FIRST(A)={[,ε}FIRST(E)={i} FIRST(B)={+,ε}FIRST(N)={i}求出文法G′[V]中每一个非闭幕符号的FOLLOW集:FOLLOW(V)={#}∪FIRST(B)\{ε}∪FOLLOW(E)={#,+,]}FOLLOW(A)= FOLLOW(V)={+,,#}FOLLOW(E)= FIRST(])\{ε}∪FOLLOW(B)= FIRST(])\{ε}∪FOLLOW(E)={]}FOLLOW(B)= FOLLOW(E)={ ]}FOLLOW(N)= FIRST(A)\{ε}∪FOLLOW(V)={[,],+,#}可以看到,对文法G′[V]的发生式A→ε|[E],有FIRST([E])∩FOLLOW(A)={[}∩{+,],#}= Ø对发生式B→ε|+E,有FIRST(+E)∩FOLLOW(B)={+}∩{]}= Ø而文法的其他发生式都只要一个不为ε的右部,以是文法G′[V]是LL(1)文法.5解答:(1)由于发生式A→aAa|ε有空发生式右部,而FOLLOW(A)={#}∪FIRST(a)={a, #}形成 FIRST(A)∩FOLLOW(A)={A, ε}∩{a, #}≠Ø以是该文法不是LL(1)文法.(2)若采取LL(1)方法进行语法分析,必须修正该文法.因该文法发生偶数(可以为0)个a,以是得到文法G′[A]: A→aaA|ε此时对发生式A→aaA|ε,有FOLLOW(A)={#}∪FOLLOW(A)={#},因此FIRST(A)∩FOLLOW(A)={a, ε}∩{#}=Ø以是文法G′[A]是LL(1)文法,按LL(1)分析表构造算法构造该文法的LL(1)分析表如表4-3-3所示.”的分析过程如表4-3-4所示.第五章1.设有文法G[S]为:S→a|b|(A)A→SdA|S(1)完成下列算符优先关系表,见表5-7-1,并判别G[S]能否为算符优先文法.表5-7-1 算符优先关系表(2素短语.(3)给出输入串(adb)#的分析过程.解答:(1)先求文法G[S]的FIRSTVT集和LASTVT集:由S→a|b|(A)得:FIRSTVT(S)={a,b,( );由A→Sd…得:FIRSTVT(A)={d};又由A→S…得:FIRSTVT(S)⊂FIRSTVT(A),即FIRSTVT(A)={d,a,b,(};由S→a|b|(A)得;LASTVT(S)={a,b,}};由A→…dA得:LASTVT(A)={d},又由A→S得:LASTVT(S)⊂LASTVT(A),即LASTVT(A)={d,a,b,)}.构造优先关系表方法如下:①对P→…ab…,或P→…aQb…,有a≖b;②对P→…aR…,而b∈FIRSTVT(R),有a⋖b;③对P→…Rb…,而a∈FIRSTVT(R),有a⋗b.由此得到:①由S→(A)得:(≖);②由S→(A…得:(⋖FIRSTVT(A),即:(⋖d,(⋖a ,(⋖b,(⋖(;由A→…dA得:d⋖FIRSTVT(A),即:d⋖d,d⋖a,d⋖b,d⋖(;③由S→A)得,LASTVT(A)⋗),即:d⋗),a⋗),b⋗),)⋗);由A→Sd…得:LASTVT(S)⋗d,即:a⋗d,b⋗d,)⋗d;此外,由#S#得:#≖#;由#⋖FIRSTVT(S)得:#⋖a,#⋖b,#⋖(;脂由LASTVT(S)⋗#得:d⋗#,a⋗#,b⋗#,)⋗#.末了得到算符优先关系表,见表5-7-2.表5-7-2 算符优先关系表由表5-7-2≖、⋖、⋗三种优先关系之一,故G[S]为算符优先文法.(2)为求出句型(SdSdS)的短语、简单短语、句柄,我们先画出该句型对应的语法树,如图5-7-3所示.短语:S,SdS,SdSdS,(SdSdS)简单短语(即直接短语):S句柄(即最左直接短语):S素短语:SdS,它同时也是该句型的最左素短语.(3)输入串(adb)#的分析过程见表5-7-4表5-7-4 输入串(adb)#的分析过程第六章一、单项选择题1、若a为闭幕符,则A→α·aβ为项目a.回约b.移进c.接受d.待约2、若项目集I k含有A→α·,则在形态k时,仅当面临的输入符号a∈FOLLOW(A)时,才采纳“A→α·”动作的一定是.LR文法b.LR(0)文法c.LR(1)文法d.SLR(1)文法3、就文法的描绘才能来说,有.a. SLR(1)⊂LR(0)b. LR(1)⊂LR(0)c. SLR(1)⊂LR (1)d.无二义文法⊂LR(1)4、在LR(0)的ACTION子表中,假如某一行中存在标识表记标帜“r j”的栏,则.a.该行一定填满r jb.该行未填满r jc.其他行也有r j子表中也有r j5、一个指明了在分析过程中的某时候所能看到发生式多大一部分.a.活前缀b.前缀c.项目d.项目集二、多项选择题1、一个LR分析器包含.a.一个总控程序b.一个项目集c.一个活前缀d.一张分析表e.一个分析栈2、LR分析器核心部分是一张分析表,该表包含等子表.a.LL(1)分析b.优先关系c.GOTOd.LRe.ACTION3、每一项ACTION[S,a]所规定的动作包含.a.移进b.比较c.接受d.回约e.报错4、对LR分析表的构造,有可能存在动作冲突.a.移进b.回约c.移进/回约d.移进/移进e.回约/回约5、就文法的描绘才能来说,有.a. SLR(1)⊂LR(1)b. LR(1)⊂SLR(1)c. LR(0)⊂LR(1)d. LR(1)⊂无二义文法e. SLR(1)⊂无二义文法6、对LR分析器来说,存在等分析表的构造方法.LRb.LR(0)c.SLR(1)d.SLR(0)e.LR(1)7、自上而下的语法分析方法有 .a.算符优先分析法b.LL(1)分析法c.SLR(1)分析法d.LR(0)分析法LR(1)分析法三、填空题1、对于一个文法,假如可以构造.使得它的均是独一确定的,则称该文法为LR文法.2、字的前缀是指该字的.3、活前缀是指的一个前缀,这种前缀不含之后的任何符号.4、在LR分析过程中,只需的已扫描部分坚持可回约成一个,则扫描过的部分正确.5、将识此外NFA确定化,使其成为以为形态的DFA,这个DFA 就是建立的根底.6、A→α·称为项目;对文法开始符S′→α·为项目;若a为闭幕符,则称A→α·aβ为项目;若B为非闭幕符,则称A→α·aβ为项目.7、LR(0)分析法的名字中“L”暗示,“R”暗示,“0”暗示.四、综合题1、对于文法G[S]: S→AS|bA→SA|a(1)列出全部LR(0)项目(2)列出构成文法LR(0)项目集规范族.单项解答:1、A→α·称为回约项目,对文法开始符S′的回约项目,如S′→α·称为接受项目,A→α·aβ(a为闭幕符)称为移进项目.在此选b.2、当用发生式A→α回约时,LR(0)无论面临什么输入符号都进行回约;SLR(1)则仅当面临的输入符号a∈FOLLOW(A)时进行回约;LR(1)则当在把α回约为A的规范句型的前缀βAa前提下,当α后跟闭幕符a时,才进行回约;因此选d.3、由于LR(0)⊂SLR(1)⊂ LR(1)⊂无二义文法,故选c.4、选a.5、选c.多选解答:1、一个LR分析器包含一个总控程序和一张分析表,选a、d.2、选c、e.3、选a、c、d、e.4、在LR分析表的构造中有可能存在“移进”/“回约”和“回约”/“回约”冲突;故选c、e.5、选a、b、c、d、e.6、选a、b、c、e.7、选a、c、d、e.填空解答:1、一张分析表每个入口2、恣意首部3、规范句型句柄4、输入串活前缀5、活前缀项目集合 LR分析算法6、回约接受移进待约7、自左至右分析采取最右推导的逆过程即最左回约向右检查0个字符综合解答:首先将文法G拓广为G[S′]:S′→SS→AS|bA→SA|a(1)文法G[S′]的LR(0)项目是:。
编译原理期末复习题(包含上一份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个输入符号)。
13、在编译过程中,常见的中间语言形式有(逆波兰表示)、(三元式)、(四元式)和(树形表示)。
编译原理期末总复习题(含答案)

第八节习题一、单项选择题1、将编译程序分成若干个“遍”是为了 b 。
a.提高程序的执行效率b.使程序的结构更加清晰c.利用有限的机器存并提高机器的执行效率d.利用有限的机器存但降低了机器的执行效率2、构造编译程序应掌握 d 。
a.源程序b.目标语言c.编译方法d.以上三项都是3、变量应当 c 。
a.持有左值b.持有右值c.既持有左值又持有右值d.既不持有左值也不持有右值4、编译程序绝大多数时间花在 b 上。
a.出错处理b.词法分析c.目标代码生成d.管理表格5、 d 不可能是目标代码。
a.汇编指令代码b.可重定位指令代码c.绝对指令代码d.中间代码6、使用 a 可以定义一个程序的意义。
a.语义规则b.词法规则c.产生规则d.词法规则7、词法分析器的输入是 a 。
a.单词符号串b.源程序c.语法单位d.目标程序8、中间代码生成时所遵循的是- d 。
a.语法规则b.词法规则c.语义规则d.等价变换规则9、编译程序是对 d 。
a.汇编程序的翻译b.高级语言程序的解释执行c.机器语言的执行d.高级语言的翻译10、语法分析应遵循 b 。
a.语义规则b.语法规则c.构词规则d.等价变换规则解答1、将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰,故选b。
2、构造编译程序应掌握源程序、目标语言及编译方法等三方面的知识,故选d。
3、对编译而言,变量既持有左值又持有右值,故选c。
4、编译程序打交道最多的就是各种表格,因此选d。
5、目标代码包括汇编指令代码、可重定位指令代码和绝对指令代码3种,因此不是目标代码的只能选d。
6、词法分析遵循的是构词规则,语法分析遵循的是语法规则,中间代码生成遵循的是语义规则,并且语义规则可以定义一个程序的意义。
因此选a。
7、b 8、c 9、d 10、c二、多项选择题1、编译程序各阶段的工作都涉及到bc 。
a.语法分析b.表格管理c.出错处理d.语义分析e.词法分析2、编译程序工作时,通常有abce 阶段。
(完整版)编译原理习题及答案(整理后)

8、规范推导是最左推导,故选 d。
9、由 T→T,…和 T→(… 得 FIRSTVT(T))={(,,)};
由 T→S 得 FIRSTVT(S)⊂FIRSTVT(T),而 FIRSTVT(S)={b,∧,(};即
FIRSTVT(T)={b,∧,(,,};
因此选 c。
10、d 11、c 12、b 13、b 14、b
标语言
第二章
一、单项选择题
1、文法 G:S→xSx|y 所识别的语言是 。
a. xyx
b. (xyx)* c. xnyxn(n≥0) d. x*yx*
2、文法 G 描述的语言 L(G)是指 。
a. L(G)={α|S⇒+ α , α∈VT*}
b. L(G)={α|S⇒* α, α∈VT*}
c. L(G)={α|S⇒* α,α∈(VT∪VN*)} d. L(G)={α|S⇒+ α, α∈(VT∪VN*)}
6、一个文法所有句型的集合形成该文法所能接受的语言。
五、简答题
1、句柄 2、素短语
3、语法树
4、归约
六、问答题
1、给出上下文无关文法的定义。
2、文法 G[S]:
() () () () ()
5、推导
S→aSPQ|abQ
QP→PQ
bP→bb
bQ→bc
cQ→cc (1)它是 Chomsky 哪一型文法? (2)它生成的语言是什么? 3、按指定类型,给出语言的文法。 L={aibj|j>i≥1}的上下文无关文法。 4、有文法 G:S→aAcB|Bd
a. 23 B. 42 c. 30 14、规范归约指 。
d. 17
a. 最左推导的逆过程
b. 最右推导的逆过程
编译原理复习题及答案

编译原理复习题及答案一、选择题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.(A)是一种典型的解释型语言。
A.BASIC B.C C.FORTRAN D.PASCAL12.把汇编语言程序翻译成机器可执行的目标程序的工作是由(B)完成的。
A. 编译器B. 汇编器C. 解释器D. 预处理器13.用高级语言编写的程序经编译后产生的程序叫(B)A.源程序 B.目标程序C.连接程序D.解释程序14.(C)不是编译程序的组成部分。
A.词法分析程序B.代码生成程序C.设备管理程序D.语法分析程序15.通常一个编译程序中,不仅包含词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成等六个部分,还应包括(C)。
A.模拟执行器B.解释器 C.表格处理和出错处理D.符号执行器16.编译程序绝大多数时间花在(D)上。
《编译原理》复习题及答案

《编译原理》课程复习资料一、判断题:1.一个上下文无关文法的开始符,可以是终结符或非终结符。
[ ]2.一个句型的直接短语是唯一的。
[ ]3.已经证明文法的二义性是可判定的。
[ ]4.每个基本块可用一个DAG表示。
[ ]5.每个过程的活动记录的体积在编译时可静态确定。
[ ]6.2型文法一定是3 型文法。
[ ]7.一个句型一定句子。
[ ]8.算符优先分析法每次都是对句柄进行归约。
[ ]9.采用三元式实现三地址代码时,不利于对中间代码进行优化。
[ ]10.编译过程中,语法分析器的任务是分析单词是怎样构成的。
[ ]11.一个优先表一定存在相应的优先函数。
[ ]12.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
[ ]13.递归下降分析法是一种自下而上分析法。
[ ]14.并不是每个文法都能改写成 LL(1)文法。
[ ]15.每个基本块只有一个入口和一个出口。
[ ]16.一个 LL(1)文法一定是无二义的。
[ ]17.逆波兰法表示的表达试亦称前缀式。
[ ]18.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
[ ]19.正规文法产生的语言都可以用上下文无关文法来描述。
[ ]20.一个优先表一定存在相应的优先函数。
[ ]21.3型文法一定是2 型文法。
[ ]22.如果一个文法存在某个句子对应两棵不同的语法树,则文法是二义性的。
[ ]二、填空题:1. 称为规范推导。
2.编译过程可分为,,,和五个阶段。
3.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是。
4.从功能上说,程序语言的语句大体可分为语句和语句两大类。
5.语法分析器的输入是,其输出是。
6.扫描器的任务是从中识别出一个个。
7.符号表中的信息栏中登记了每个名字的有关的性质,如等等。
8.一个过程相应的DISPLAY表的内容为。
9.一个句型的最左直接短语称为句型的。
10.常用的两种动态存贮分配办法是动态分配和动态分配。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、给出下面语言的相应文法。
L1={a n b n c i|n≥1,i≥0}从n,i的不同取值来把L1分成两部分:前半部分是anbn:A→aAb|ab后半部分是ci:B→Bc|ε所以整个文法G1[S]可以写为:G1(S):S→AB;A→aAb|ab;B→cB|ε3、构造一个DFA,它接受 ={a,b}上所有包含ab的字符串。
(要求:先将正规式转化为NFA,再将NFA确定化,最小化)4、对下面的文法G:E →TE ’ E ’→+E|ε T →FT ’ T ’→T|εF →PF ’ F ’ →*F ’|ε P →(E)|a|b|∧(1)证明这个文法是LL(1)的。
(2)构造它的预测分析表。
(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)文法. (3)+*()a b ^ #EE TE →'E TE →' E TE →' E TE →'E' '→+E E'→E ε'→E εTT F T →'T F T →' T F T →' T F T →'T' '→T ε'→T T '→T ε '→T T '→T T '→T T '→T εFF P F →'F P F →' F P F →' F P F →'F' '→F ε '→'F F * '→F ε '→F ε '→F ε '→F ε '→F ε '→F εPP E →()P a → P b → P →^5、考虑文法: S →AS|b A →SA|a (1)列出这个文法的所有LR(0) 项目。
0.'→⋅S S 1.'→⋅S S 2.S AS →⋅ 3.S A S →⋅ 4.S AS →⋅ 5.S b →⋅ 6.S b →⋅7.A SA →⋅8.A S A →⋅ 9.A SA →⋅ 10.A a →⋅ 11.A a →⋅(2)给出识别文法所有活前缀的DFA 。
S A εSε ε ε ε aε ε εA S ε εb确定化:S A a b {0,2,5,7,10} {1,2,5,7,8,10}{2,3,5,7,10}{11}{6}{1,2,5,7,8,10}{2,5,7,8,10} {2,3,5,7,9,10} {11} {6}{2,3,5,7,10} {2,4,5,7,8,1{2,3,5,7,10}{11} {6}10576111234890}{2,5,7,8,10} {2,5,7,8,10} {2,3,5,7,9,10}{11} {6}{2,3,5,7,9,10} {2,4,5,7,8,10}{2,3,5,7,10} {11} {6}{2,4,5,7,8,10} {2,5,7,8,10} {2,3,5,7,9,10}{11} {6}{11} φ φ φ φ {6}φφφφA SS A ab3:'→⋅S SA S A →⋅A SA →⋅ A a →⋅5:A S A →⋅ S AS →⋅ S b →⋅A SA →⋅6:A SA →⋅S A S →⋅ S AS →⋅ S b →⋅S a A S b S A ba AA Sba ab b aDFA6、设有文法:P →P+Q|Q Q →Q*R|R R →(P)|i(1)证明Q*R+Q+Q 是它的一个句型。
(3分) P=>P+Q=>P+Q+Q=>Q+Q+Q=>Q*R+Q+Q(2)给出Q*R+Q+Q 的所有短语,直接短语和句柄。
(4分)短语: Q*R,Q*R+Q,Q*R+Q+Q 直接短语: Q*R 句柄: Q*R0:'→⋅S S S AS →⋅ S b →⋅4:S A S →⋅ S AS →⋅ S b →⋅A SA →⋅2:S b →⋅1:A a →⋅ 7:S AS →⋅A S A →⋅ S AS →⋅ S b →⋅(3)给出句子i+i*i的最右推导。
(4分)(4)给出句子i+i*i的最左推导。
(4分)7、设有文法:E→E+T|T T→T*F|F F→(E)|i⇒+⇒+*(1)证明E+T*F是它的一个句型。
(3分)E E T E T F (2)给出E+T*F的所有短语,直接短语和句柄。
(4分)短语: E+T*F, T*F, 直接短语: T*F 句柄: T*F(3)给出句子i+i*i的最右推导。
(4分)11、构造下面正规式相应的DFA1(0|1)*10114、对下面的文法G:Expr→- Expr Expr→(Expr)|Var ExprTail ExprTail→- Expr|εVar→id VarTail VarTail→(Expr) |ε(1)构造LL(1)分析表。
(12分)(2)给出对句子id—id((id))的分析过程。
(8分)16、已知文法G[S] 为:S->a|^|(T) T->T,S|S①消除文法G[S]中的左递归,得文法G ´[S]。
ε|,)(||^)(T S T TS T T a S S G '→''→→' ② 文法G ´[S]是否为LL(1)的?若是,给出它的预测分析表。
FIRST(S)={a,^,(} FIRST(T)={a,^,(} FIRST('T )={,,ε} FOLLOW(S)={),,,#} FOLLOW(T)={)} FOLLOW('T )={)} 预测分析表a ^ ( ),#S S a → S →^S T →()TT ST →' T ST →' T ST →''T'→T ε '→'T ST ,是LL(1)文法17、对下面的文法G:S → S ∨ a T | a T | ∨ a T T → ∧ a T | ∧ a(1) 消除该文法的左递归和提取左公因子;构造各非终结符的FIRST 和FOLLOW 集合;18、文法G(S)及其LR分析表如下,请给出串baba#的分析过程。
(1) S → DbB (2) D → d (3) D →ε(4) B → a (5) B → Bba (6) B →εLR分析表2、写出表达式a=b*c+b*d对应的逆波兰式、四元式序列和三元式序列。
答:逆波兰式: abc*bd*+:=四元式序列:三元式序列: OP ARG1 ARG2(1) (*, b, c, t1) (1) (* b, c )(2) (*, b, d, t2) (2) (* b, d )(3) (+, t1, t2,t3) (3) (+ (1), (2))(4) (:=, t3, /, a) (4) (:= (3), a)八、语义分析题1、将语句if ((A<0) (B>0)) then while (C>0) do C:=C-D翻译成四元式答案:100 (j<,A,0,104)101 (j,-,-,102)102 (j>,B,0,104)103 (j,-,-,109)104 (j>,C,0,106)105 (j,-,-,109)106 (-,C,D,T1)107 (:=,T1,-,C)108 (j,-,-,104)1092、写出下面语句经语法制导翻译后所生成的四元式代码序列。
if x<y then while e>c do c:=c+1 else x:=x+5答案:假设初始为100,则四元式代码序列为10 0ifx<ygoto10210 1goto10710 2ife>cgoto10410 3goto10910 4M:=C +1105C:=M10 6goto10210 7N:=X +5108X:=N1098、写出表达式a+b*(c-d)对应的逆波兰式和三元式序列。
答案:逆波兰式:(abcd-*+)三元式序列:OP ARG1 ARG2(1) - c d(2) * b (1)(3) + a (2)1.编译程序是对高级语言程序的解释执行。
(× )2.一个有限状态自动机中,有且仅有一个唯一的终态。
(×)3.一个算符优先文法可能不存在算符优先函数与之对应。
(√ )4.语法分析时必须先消除文法中的左递归。
(×)5.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。
(√)6.逆波兰表示法表示表达式时无须使用括号。
(√ )7.静态数组的存储空间可以在编译时确定。
(×)8.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。
(×)9.两个正规集相等的必要条件是他们对应的正规式等价。
(× )10.一个语义子程序描述了一个文法所对应的翻译工作。
(×)1.一个上下文无关文法的开始符,可以是终结符或非终结符。
( × )2.一个句型的直接短语是唯一的。
(×)3.已经证明文法的二义性是可判定的。
(×)4.每个基本块可用一个DAG表示。