




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编译原理考试题及答案汇总一、选择1 .将编译程序分成若干个“遍”是为了 _B_ oA.提高程序的执行效率B.使程序的结构更加清晰C.利用有限的机器内存弁提高机器的执行效率D.利用有限的机器内存但降低了机器的执行效率2 .正规式 MI和M2等价是指 _C_。A . MI和M2的状态数相等 B.Ml和M2的有向弧条数相等。C.M1和M2所识别的语言集相等 D. Ml和M2状态数和有向弧条数相等3 .中间代码生成时所依据的是_C_。A.语法规则B ?词法规则C ?语义规则D ?等价变换规则4 .后缀式ab+cd+/可用表达式B_来表示。A. a+b/c+d B . (a+b)/(c+d) C a+b
2、/(c+d) D a+b+c/d6. 一个编译程序中,不仅包含词法分析,A ,中间代码生成,代码优化,目标代码生成等五个部分。A.()语法分析B .()文法分析C .()语言分析D.()解释分析7.词法分析器用于识别_C。A.()字符串B.()语句C.()单词D .()标识符8.语法分析器则可以发现源程序中的DoA.()语义错误B .()语法和语义错误 C.()错误弁校正 D .()语法错误9.下面关于解释 程序的描述正确的是_B。(2) A.是 _B_A.解释程序的特点是处理程序时不产生目标代码解释程序适用于 COBOL和FORTRAN语言解释程序处理语言时,大多数采用的解释程序是为打开编译
3、程序技术的例局而开发的()(1)(2) B . ( ) (1) C . ( ) (1)(2)(3) D . ( ) (2)(3) 10 .方法。()源程序命令被逐个直接解释执行B.()先将源程序转化为中间代码,再解释执行C.()先将源程序解释转化为目标程序 D.()以上方法都可以11.编译过程中,语法分析器的任务就是(1)分析单词是怎样构成的(2)(3)分析语句和说明是如何构成程序的A. ( ) (2)(3) B . ( ) (2)(3)(4)C,再执行B o分析单词串是如何构成语句和说明的(4)分析程序的结构.()(1)(2)(3) D . ( ) (1)(2)(3)(4)12 .编译程序是
4、一种 C_。()解释程序D.的集合。()目标程序13.文法G所描述的A.()汇编程序B .()翻译程序语舌是 C A.() 文法G的字母表V中所有符号组成的符号串B.()文法G的字母表 V的闭包V*中的所有符号串C.()由文法的开始符号推出的所有终极符串D.()由文法的开始符号推出的所有符号串3型文法是 B_。D.()上下文无关文法15. 一个14 .文法分为四种类型,即 0型、1型、2型、3型。其中 A.()短语文法B .()正则文法 C .()上下文有关文法上下文无关文法 G包括四个组成部分,它们是:一组非终结符号,一组终结符 号,一个开始符号, 以及一组_D oA.()句子 B.()句型
5、 C.()单词 D.()产生式16.通常一个编译程序中,不仅包含词法分析,语法分析, 中间代码生成, 代码优化, 目 标代码生成等五个部分,还应包括_C oA.()模拟执行器B .() 解释器C.()表格处理和出错处理D .()符号执行器17 .文法 GN=( b语舌是 CA. ( ) L(GN尸biC. ( ) L(GN)=b2i+118 . 一个句型中的最左A.()短语B .19.N , B , N , N T b | bB ,1 i > 0 B ( ) L(GN)=b2i1 i >0 D . ( ) L(GN)=b2i+1B 称为该句型的句柄。BtbN),该文法所描述1 i
6、> 01 i > 1()简单短语C .()素短语 D .()终结符号设G是一个给定的文法,S是文法的开始符号,如果S->x(其中x ? V*),则称x是 文法G的一个 B_。A.()候选式B .()句型C .()单词D .()产生式20.文法 GE:E T T I E + TT T FI T * F( E+T) E + T F F*(E+ T)A.()和 21.的句子A.()是无穷多个C.()是可枚举的 22.词法分析器用于识别A.()句子B . 23.B .()和C .B .()是有穷多个D .()个数是常量_C_。() 句型 C .()单词 在语法分析处理中,_()和D
7、.()若一个文法是递归的,则它所产生的语言_A。D .()产生式FIRST 集F t al ( E )该文法句型 E + F * (E + T)的简单短语是下列符号串中的合、FOLLOW 集合、SELECT集合均是_B A .()非终极符集B .()终极符集C .()字母表D .()状态集24.在自底向上的语法分析方法中,分析的关键是A 0A .()寻找句柄B .()寻找句型C .()消除递归D .()选择候选式25.的状态是识别规范句型在LR分析法中,分析栈中存放C_的DFA状态。A .()句柄B .()前缀C .()活前缀D .( ) LR(0)项目26. 文法G产生的_D 的全体是该文法
8、描述的语言。A.()句型B.()终结符集C.()非终结符集D.()句子27. 若文法G定义的语言是无限集,则文法必然是A_A.()递归的B .()前后文无关的C .()二义性的 D .()无二义性的28. 四种形式语言文法中,1型文法又称为_A文法。A.()短语结构文法 B .()前后文无关文法C.()前后文有关文法 D .()正规文法29. 一个文法所描述的语言是A 。A.()唯一的 B.()不唯一的C.()可能唯一,好可能不唯一D .()都不对30. _B 和代码优化部分不是每个编译程序都必需的。A.()语法分析B .()中间代码生成C.()词法分析 D .()目标代码生成31. _B _
9、是两类程序语言处理程序。A.()高级语言程序和低级语言程序B .()解释程序和编译程序C.()编译程序和操作系统D.()系统程序和应用程序32. 数组的内情向量中肯定不含有数组的_A 的信息。A .()维数B .()类型C .()维上下界D .()各维的界差33. 一个上下文无关文法G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组_D_ 。A. ( ) 句子B . ( ) 句型C ( ) 单词D ( ) 产生式34 文法分为四种类型,即0 型、 1 型、 2 型、 3 型。其中2 型文法是_D_。A . ( ) 短语文法B ( ) 正则文法C ( ) 上下文有
10、关文法D ( ) 上下文无关文法35一个上下文无关文法G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组_D_ 。A ( ) 句子 B ( ) 句型 C ( ) 单词 D ( ) 产生式 36_A_是一种典型的解释型语言。A ( ) BASIC B ( ) C C ( ) FORTRAN D ( ) PASCAL 37 与编译系统相比,解释系统_D_ 。A ( ) 比较简单, 可移植性好, 执行速度快8 ( ) 比较复杂, 可移植性好, 执行速度快C ( ) 比较简单, 可移植性差, 执行速度慢D ( ) 比较简单, 可移植性好, 执行速度慢38用高级语言编写的
11、程序经编译后产生的程序叫_B_ 。A ( ) 源程序 B ( ) 目标程序C ( ) 连接程序D ( ) 解释程序39编写一个计算机高级语言的源程序后, 到正式上机运行之前,一般要经过_B_ 这几步:(1) 编辑 (2) 编译 (3) 连接 (4) 运行A . ( ) (1)(2)(3)(4) B ( ) (1)(2)(3) C ( ) (1)(3) D ( ) (1)(4)40把汇编语言程序翻译成机器可执行的目标程序的工作是由_A_完成的。A ( ) 编译器B ( ) 汇编器C ( ) 解释器D ( ) 预处理器41 词法分析器的输出结果是_C_。A ( ) 单词的种别编码B ( ) 单词在
12、符号表中的位置C ( ) 单词的种别编码和自身值D ( ) 单词自身值42 .文法G : ST xSx|y所识别的语言是 _C 。A. ( ) xyx B . ( ) (xyx)* C . ( ) xnyxn(n > 0) D . ( ) x*yx*43 .如果文法G 是无二义的,则它的任何句子aA oA( ) 最左推导和最右推导对应的语法树必定相同8 ( )最左推导和最右推导对应的语法树可能不同C( )最左推导和最右推导必定相同D ( )可能存在两个不同的最左推导,但它们对应的语法树相同44构造编译程序应掌握DoA ( ) 源程序 B ( ) 目标语言C ( ) 编译方法D ( ) 以
13、上三项都是45. 四元式之间的联系是通过_B 实现的。A ( ) 指示器B ( ) 临时变量C ( ) 符号表D ( ) 程序变量46. 表达式(A V B) A (CV D)的逆波兰表示为 B_ 0A . ( ) nAB VA CDV B . ( ) A n B V CDVAC. ( ) AB Vn CDVA D . ( ) A n B VA CDV47. 优化可生成_D 的目标代码。A ( ) 运行时间较短B ( ) 占用存储空间较小C ( ) 运行时间短但占用内存空间大D ( ) 运行时间短且占用存储空间小48. 下列_C化方法不是针对循环优化进行的。A . ( ) 强度削弱B ( )
14、删除归纳变量C ( ) 删除多余运算D ( ) 代码外提49. 编译程序使用_B 区别标识符的作用域。A . ( ) 说明标识符的过程或函数名B ( ) 说明标识符的过程或函数的静态层次C.()说明标识符的过程或函数的动态层次D .()标识符的行号 50 .编译程序绝大多数时间花在 D_上A.()出错处理B.()词法分析C.()目标代码生成 D.()表格管理 51 .编译程序是对_DA.()汇编程序的翻译B .()高级语言程序的解释执行C.()机器语言的执行D .()高级语言的翻译52 . 采用自上而下分析,必须 _C oA.()消除左递归B.()消除右递归C.()消除回溯D .() 提取公共
15、左因子53 .在规范归约中,用 _ B来刻画可归约串。A.() 直接短语B .() 句柄C.()最左素短语D.()素短语项目O一接受D .()待约B .()节省存储空间,不便于表的修改D .()节省存储空间,不便于优化处理54 . 若a为终结符,则 A -> a ? a B为BA.() 归约B .() 移进C .()55 .间接三元式表示法的优点为A 。A.()采用间接码表,便于优化处理C.()便于优化处理,节省存储空间56 .基本块内的优化为 B_。A .()代码外提,删除归纳变量B .()删除多余运算,删除无用赋值C.()强度削弱,代码外提D 57.在目标代.()循环展开循环合弁 码
16、生成阶段,符号表用_A.()目标代码生C-;)语法检查口.()地址分配 成B.()语义检查FOLLOW(A)58 .若项目集Ik含有A -> a ?,则在状态k时,仅当面临的输入符号 时,才采取A -> a ? ”动作的一定是_DA . ( ) LALR 文法 B . ( ) LR(0)文法C. ( ) LR(1)文法 D . ( ) SLR(1)文法59 .堆式动态分配申请和释放存储空间遵守_D 原A .()先请先放 B .()先请后放C.()后请先放D .()任意、判断I .计算机高级语言翻译成低级语言只有解释一种方式。(X)2 .在编译中进行语法检查的目的是为了发现程序中所有
17、错误。(X)3 .甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系 统功能完全相同。(V )4 .正则文法其产生式为 A->a , A->Bb, A,B ? VN , a、b? VT。(X)5 .每个文法都能改写为 LL(1)文法。(V)6 .递归下降法不允许任一非终极符是直接左递归的。(V)7 .算符优先关系表不一定存在对应的优先函数。(X )8 .自底而上语法分析方法的主要问题是候选式的选择。(X)9 . LR法是自顶向下语法分析方法。(X)10 .简单优先文法允许任意两个产生式具有相同右部。(X )II . “用高级语言书写的源程序都必须通过编译,产生目标代
18、码后才能投入运行”这种 说法。(X )12 .若一个句型中出现了某产生式的右部,则此右部一定是该句型的句柄。(X )13 . 一个句型的句柄一定是文法某产生式的右部。(V)14 .在程序中标识符的出现仅为使用性的。(X)15.定一个赋值是否真是无用的。16.了临时变量在一基本块内仅被定义一次的特性。仅考虑一个基本块,不能确( V )削减运算强度破坏( V )17.在中间代码优化中循环上的优化主要有不变表达式外提和削减运算强度。(x )18. 数组元素的地址计算与数组的存储方式有关。(x )19. 编译程序与具体的机器有关,与具体的语言无关。( x )20. 递归下降分析法是自顶向上分析方法。(
19、V )21. 产生式是用于定义词法成分的一种书写规则。( x )22. LR 法是自顶向下语法分析方法。(x)23. 在 SLR ( 1 ) 分析法的名称中,S 的含义是简单的。( V)24. 综合属性是用于“ 自上而下” 传递信息。( x )25. 符号表中的信息栏中登记了每个名字的属性和特征等有关信息,如类型、种属、所占26.单元大小、地址等等。( x )程序语言的语言处理程序是一种应用软件。( x )27. 一个 LL(l) 文法一定是无二义的。28.下文无关文法来描述。29. 一张转换图只包含有限个状态,其中有一个被认为是初态,30.正规文法产生的语言都可以用上( x )最多只有一个终
20、态。( V)目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。( x )31. 逆波兰法表示的表达式亦称后缀式。( V )32. 如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的。( V )33. 数组元素的地址计算与数组的存储方式有关。( x )34. 对于数据空间的存贮分配,FORTRAN 采用动态贮存分配策略。(X )35. 编译程序是对高级语言程序的解释执行。( x )36. 一个有限状态自动机中,有且仅有一个唯一的终态。( x )37. 语法分析时必须先消除文法中的左递归。( x )38. LR 分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地
21、点。( V )39. 逆波兰表示法表示表达式时无须使用括号。( V )40. 静态数组的存储空间可以在编译时确定。( x )41. 进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。42. 两个正规集相等的必要条件是他们对应的正规式等价。( x )43. 一个语义子程序描述了一个文法所对应的翻译工作。( x )44. r 和 s 分别是正规式,则有L(r|s)=L(r)L(s)。 ( x )45. 确定的的自动机以及不确定的自动机都能正确地识别正集(V)46. 分析作为单独的一遍来处理较好。( x )47. LR 分析器的任务就是产生LR 分析表。(V )48. 归约
22、和规范推导是互逆的两个过程。(V )49. 同心集的合并有可能产生新的“移进”/ “归约”冲 突( x)50.lR 分析技术无法适用二义文法。( x ) 51 树形表示和四元式不便于优化,而三元式和间接三元式则便于优化。52序中的表达式语句在语义翻译时不需要回填技术。(V)三、填空1 .编译程序的工作过程一般可以划分为词法分析,语法分析,语义分析,中间代码 生成,代码优化等几个基本阶段,同时还会伴有 表格处理 和 出错处理 。2 .若源程序是用高级语言编写的,目标程序 是机器语言程序或汇编程序,则 其翻译程序称为编译程序。3 .编译方式与解释方式的根本区别在于是否生成目标代码o4 .对编译程序
23、而言,输入数据是 源程序,输出结果是 目标程序5?产生式是用于定义语法成分一的一种书写规则。6.语法分析最常用的两类方法是一自上而下一和一自下而上一分析法7 .设G是一个给定的文法,S是文法的开始符号,如果 S->x(其中x ? VT*),则称x是文法的一个句子。8.的。9.开始符号入串弁按照文法的产生式一步一步的向下进行,使之与给定的输入串匹配一。10 .自底向上的语法分析方法的基本思想是向上进行 直接归约 一,力求归约到文法的递归下降法不允许任一非终极符是直接左递归自顶向下的语法分析方法的基本思想是:从文法的开始,根据给定的输一直接推导,试图推导出文法的句子:从输入串入手,利用文法的
24、产生式一步一步地 开始符号 。句柄。在使用高级语言编程时,首 语法一错误和语义11常用的参数传递方式有 一传地址一,传值和传名12 .先可通过编译程序发现源程序的全部的部分错误。13 . 一个句型中的最左简单短语称为该句型的14 ?对于文法的每个产生式都配备了一组属性的计算规则,称为一语义规则一。15 . 一个典型的编译程序中,不仅包括词法分析 一、语法分析一、一中间代码生成一、代码优化、目标代码生成等五个部分,还应包括表格处理和出错处理。16 .从功能上说,程序语言的语句大体可分为执行性语句和一说明性一语句两大类。17 .产生式是用于定义语法范畴一的一种书写规则。18 ?语法分析是依据语言的
25、 一语法 规则进行的,中间代码产生是依据语言的语义一规进行的。19 .语法分析器的输入是 一单词符号串一,其输出是 语法单位O20 .产生式是用于定义一语法成分一的一种书写规则。21 .逆波兰式 ab+c+ d*e-所表达的表达式为 (a+b+c)*d-e 。22 .语法分析最常用的两类方法是自上而下一和一自下而上一分析法。23 .计算机执行用高级语言编写的程序主要有两种途径: 解释 和一编译。24 .扫描器是词法分析器一,它接受输入的源程序一,对源程序进行一词法分析一弁识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。25 .自上而下分析法采用一移进、归约、错误处理、接受等四种操
26、作。26 . 一个LR分析器包括两部分:一个总控程序和一张分析表_。27 .后缀式abc-/所代表的表达式是 a/(b-c)。28 . 局部优化是在_基本块范围内进行的一种优化。29 . 词法分析基于正则_文法进行,即识别的单词是该类文法的句子。30 . 语法分析基于上下文无关文法进行,即识别的是该类文法的句子。语法分析的有效工具是语法树。31 . 分析句型时,应用算符优先分析技术时,每步被直接归约的是最左素短语 , 而应用 LR 分析技术时,每步被直接归约的是句柄_。Z32 . 语义分析阶段所生成的与源程序等价的中间表示形式可以有逆波兰、三元式表示与四元式表示等。33 . 按 Chomsky
27、 分类法,文法按照规则定义的形式进行分类。34 . 一个文法能用有穷多个规则描述无穷的符号串集合语言 ) 是因为文法中存在有递归定义的规则。35 . 一个名字的属性包括 一类型一和 作用域 一四、综合题1 .已知文法G(E)E T T|E + TTT F|T *FF T (E)|i(1)给出句型(T *F + i)的最右推导;(2)给出句型(T *F + i)的短语、简单短语、句柄 解:(1)最右推导:E ->T->F->(E)->(E+ T)->(E(2) 短语:(T*F + i) , T*F+ i , T*F, i 简单短语: T*F,i句柄:T*F素短语:T
28、*F,i最左素短语:T*F2 .构造正规式1(0|1)*101相应的DFA。 解:先构造、素短语、最左素短语。+J) W+i) ->(T*F +i)第17页共6页NFA :G1XAAAAEA0ACABACAABYABVACAB重新命名,令 AB为B、AC为C、ABY为D得:01乂AAABBCBCADDCB所以,M得DFA为:0/ ,03.文法:S->MH|aH ->LSo| jK ->dML| jL ->eHfM->K|bLM判断G是否为LL(1)文法,如果是,构造 LL(1)分析表。解:各符号的 FIRST集和FOLLOW!为:FIRSTFOLLOWS附M
29、3余用HQL何K仲2余田各产生式SELEC集为:SELECTS->MHd,b,e,#,oS->aaH ->LSoeH -> j#,f,oK ->dMLdK -> je,#,oL ->eHfeM->Kd,e,#,oM-> bLMb预测分析表 S'4-泗M夕舐 ;pw1期H爨。里.VM 1-皿匚LL(1) 的。由于预测分析表中无多重入口,所以可判定文法是4. 对下面的文法G :E ->TE' E'->+E| 旦 T ->FT' T' ->T| 旦 F-> PF' F&
30、#39;-> *F'| 皂 P->(E)|a|bF(1)计算这个文法的每个非终结符的FIRST 集和 FOLLOW 集。 (4 分 ) 证明这个方法是LL(1) 的。 (4 分 )(3)构造它的预测分析表。(2 分 )解: ( 1) 计算这个文法的每个非终结符的FIRST 集和 FOLLOW 集。FIRST 集合有:FIRST(E)=FIRST(T)=FIRST(F)=FIRST(P)=(,a,bf;FIRST(E'尸+, £FIRST(T)=FIRST(F)=FIRST(P)=(,a,b,A;FIRST(T'尸FIRST(T)U_ £=
31、(,a,b,A,£FIRST(F)=FIRST(P)=(,a,b,A;FIRST(F')=FIRST(P)=*, £ FIRST(P)=(,a,b,A; FOLLOW 集 合有: FOLLOW(E)=),#;FOLLOW(E'户FOLLOW(E)=),#; FOLLOW(T尸FIRST(E')UFOLLOW(E户+,),#;不包含 £FOLLOW(T')=FOLLOW(T)=FIRST(E')UFOLLOW(E)=+,),#;FOLLOW(F尸FIRST(T')UFOLLOW(T尸(,a,b,A,+,),#;不包含
32、£FOLLOW(F')=FOLLOW(F)=FIRST(T')UFOLLOW(T)=(,a,b,A,+,),#;FOLLOW(P尸FIRST(F')UFOLLOW(F尸*,(,a,b,A,+,),#;不包含 £ 证明这个方法是LL(1) 的。各产生式的SELECT 集合有:SELECT(E->TE')=FIRST(T)=(,a,b, 人 ;SELECT(E'->+E)=+;SELECT(E'-> Q=FOLLOW(E/)=),# SELECT(T->FT')=FIRST(F)=(,a,b,A;
33、SELECT(T'->T)=FIRST(T)=(,a,b,A;SELECT(T'-> Q=FOLLOW(T/)=+,),#; SELECT(F->PF')=FIRST(P)=(,a,b,A; SELECT(F'->*F')=*;SELECT(F'-> - )=FOLLOW(F')=(,a,b,A,+,),#; SELECT(P->(E)=( SELECT(P->a)=a SELECT(P->b)=bSELECT(P-> a)= a第 # 页共 6 页可见,相同左部产生式的SELECT集
34、的交集均为空,所以文法 GE是 LL(1)文法构造它的预测分析表。文法GE的预测分析表如下:十()abATTETT*一恒弓TE炉T £IMF今FT'T;弓£今T今STT-FIFFTPF'->PFFz£-> £今£-> e-> £今£P-Aa45 .已知文法G网为:S->aF|(T)T-> T,S|S(1) 计算 G网的 FIRSTVT 和 LASTVT。构造GS的算符优先关系表并说明GS是否未算符优先文法 给出输入串(a,a)#的算符优先分析过程。解:(1 )各符号的 FI
35、RSTVT和LASTVT :FIRSTVTLASTVTS的巩(/ % 1T,% 3, %(i a,A )(2)算符优先关系表a()9a>(<<<)3><< ,<>c(3)句子(a,a)#分析过程如下tt钢优先关系当前#剩余输入串移进或归约1M(1(询#移进2(<aa司口移迸3<aa>,a)#归约4做Fa)#移进5A移迸eA>)归约7?)归约8栽F().)移进9放F)#归约10井二半I u 11雅第10页共6页接受6 .已知文法为:S->aF|(T)T->T,S|S构造它的LR(0)分析表。解:加入非终结符
36、 S',方法的增广文法为:S'->SS->aS->S->(T)T ->T,ST ->S下面构造它的LR(0)项目集规范族为csSTS'A*S5-?*S-* ? CT>:弓a录2H E TAATjST-*3S-? - 4? ?<nII s-* c-n5-*-ATrTiTI a <TA-S-T?:S -> (T-)X?3S-*HtT 川ZTI3Ef» *X.i If T. >5 s-> ? 5->* EIIIrlX* I III. *S S-* * as->- cnItIIIT T
37、, S*X.LR(0)文法。从而有下面的LR(0)分从上表可看出,不存在移进-归约冲突以及归约归约冲突,该文法是 析表:ACTIOMGOTO(>jBST0虽Sts11acc23T LX IXi>1rfe3TjX :rfr:4民s,s65$a .&6巧r?PT (r-tr?7¥1Yi企k%8S7s,s99X¥rr7.已知文法为:A ->aAd|aAb| &第19页共6页判断该文法是否是SLR(1)文法,若是构造相应分析表,弁对输入串ab#给出分析过程。解:增加一个非终结符S/后,产生原文法的增广文法有:S'->A A - >
38、;aAd|aAb| ”面构造它的LR(0)项目集规范族为:abdAIH gU3A->i-AdA->a*AbA->*aA4A-'aAb A->*IPIn山弓蠹? Ad古3G; A-AaAb l环It A-*aAb hItT从上表可看出,状态I0和12存在移进-归约冲突,该文法不是 LR(0)文法。对于I0来说有:FOLLOW(A p a=b,d,# na二,所以在10状态下面临输入符号为a时移进,为b,d,#时归约,为其他时报错。对于 I2来说有也有与I0完全相同的结论。这就是说,以上的移进-归约冲突是可以解决的,因此该文法是 SLR(1)文法。其SLR(1)分析
39、表为:ACTiaw<xnx)abaJL0决Xir?Xb11ACCa5-ti33基Sr4Ifr_Iss3fiVj对输入串ab#给出分析过程为HASJCTIOHGOTOI 10册$202bOir)3r a02Sbs / s40?J40I:1501Sacc(每项选择2分,共20分)选择题1 .将编译程序分成若干个“遍”是为了 ba. 提高程序的执行效率b. 使程序的结构更加清晰c. 利用有限的机器内存并提高机器的执行效率d. 利用有限的机器内存但降低了机器的执行效率2构造编译程序应掌握_d_a.源程序b.目标语言c. 编译方法d. 以上三项都是3 . 变量应当c_。a. 持有左值b. 持有右值
40、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 ?等价变换规则&后缀式ab+cd
41、+/可用表达式 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. 已知文法GE:i ET+|T TF* | F FA | a试证: FFAA* 是文法的句型,指出该句型的短语、简单短语和句柄3. 为正规式(a
42、|b) *a(a|b) 构造一个确定的有限自动机。4. 设文法 G(S) :ST (L)|a S|aLT L, S|S(1) 消除左递归和回溯;(2) 计算每个非终结符的FIRST 和 FOLLOW(3) 构造预测分析表。5. 已知文法A->aAd| aAb| &ab#给出分析过程。判断该文法是否SLR( 1 ) 文法,若是构造相应分析表,并对输入串6. 构造算符文法GH 的算符优先关系(含#) 。GH:H;M|MM T d|aHb7. 已构造出文法G(S)(1) S BB(2) B aB(3) B b1) )给出DFA 图2) .给出LR 分析表3) . 假定输入串为abaab
43、 ,请给出LR 分析过程(即状态,符号,输入串的变化过程)。8 将下面的语句翻译成四元式序列:while A<C A B<D doif A=1 then C:=C+lelse while A < D doA:=A+2 ;9 对下面的流图,(1 )求出流图中各结点N的必经结点集D(n),(2) 求出流图中的回边,(3) 求出流图中的循环。参考答案一单项选择题1. 将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰,故选b。2. . 构造编译程序应掌握源程序、目标语言及编译方法等三方面的知识,故选d。3. 对编译而言,变量既持有左值又持有右值,故选c。4. 编译程序打交道最
44、多的就是各种表格,因此选d。5. 词法分析器输出的结果是单词的种别编码和自身值,选C。6. 正规式 M1 和 M2 所识别的语言集相等,故选C。7. 选c。8. 选b。9. 选C10. 堆式动态分配申请和释放存储空间不一定遵守先请后放和后请先放的原则,故选d二简答题1 【解答】编译程序的总体结构图如图1.2 所示。 词法分析器: 输入源程序,进行词法分析,输出单词符号。语法分析器: 在词法分析的基础上,根据语言的语法规则(文法规则)把单词符号串分解成各类语法单位,并判断输入串是否构成语法上正确的“程序”。中间代码生成器: 按照语义规则把语法分析器归约(或推导)出的语法单位翻译成一定形式的中间代
45、码,比如说四元式。优化 : 对中间代码进行优化处理。目标代码生成器: 把中间代码翻译成目标语言程序。表格管理模块保存一系列的表格,登记源程序的各类信息和编译各阶段的进展情况。编译程序各阶段所产生的中间结果都记录在表格中,所需信息多数都需从表格中获取,整个编译过程都在不断地和表格打交道。出错处理程序对出现在源程序中的错误进行处理。此外,编译的各阶段都可能出现错误,出错处理程序对发现的错误都及时进行处理。2 【解答】该句型对应的语法树如下:该句型相对于E的短语有FF"* ;相对于T的短语有FF"*,F;相对于F的短语有FA;FAA;简单短语有F;FA;句柄为F.3 【解答】最简
46、 DFA 如图 2.66 所示。4 【解答】(1)ST (L)|aS 'S'T S| &LtSL'L't SL'| &评分细则:消除左递归2 分,提公共因子2 分。(2) FIRST 和 FOLLOWFIRST) 涉 (, a FOLLOW(S)= #, , )FIRST(S ) = , a, £ FOLLOW(S ) = #, )FIRST(L 护 (, a FOLLOW(L)= )FIRST(L ) = , £ FOLLOW(L= )5 【解答】1 1) 拓广文法(0)S->A (1) A->aAd (
47、2)A-> aAb (3)A>£2 2) 构造识别活前缀的DFAFOLLOW(A)=d,b,#对于状态10:FOLLOW(A)A a=对于状态I1:FOLLOW(A)A a=因为,在DFA中无冲突的现象,所以该文法是SLR(1文法。3 3) SLR(1 分 析表状态 ACTION GOTOa B d # A0 S2 r3 r3 r3 14 acc5 S2 r3 r3 r3 36 S5 S47 r1 r1 r18 r2 r2 r2(4)串ab#的分析过程步骤状态栈符号栈当前字符剩余字符串动作1 0 # a b# 移进2 02 #a b # 归约 A-> &第
48、25 页共 6 页3 023 #aA b # 移进4 0235 #aAb # 归约 A-> aAb5 01 #A # 接受6 【解答】由 MTd 和 MTa得:FIRSTVT(M)= d,a ;由 H-H;得:FIRSTVT(H)= ; 由 HTM 得:FIRSTVT(M) cFIRSTVT(H)即口 FIRSTVT(H)=;,d,a由MTd 和MT? .b 得:LASTVT(M)=d,b ;由H-, m 得: LASTVT(H)= ; ;由 HT M 得: LASTVT( M ) cLASTVT(H , 即 LASTVT(H)= ;,d,b对文法开始符 H,<#H#$,# =#,
49、 #<FIRSTVT(H,) LASTVT(H)># 也即#<, #<d. #<a, ;>#, d>#, b>#对形如 Pab,或 PaQb,有a=b ,由MTa|b得:a=b;对形如 PT. aR ,而 b ? FIRSTVT(R)有 a<b,对形如 PT - Rb ,而 a? LASTVT(R)有 a>b。由 HT? .? ; M 得:; <FIRSTVT(M) 即:<d, : <a由 M T aH得:a<FIRSTVT(H,)即:a< , a<d, a< a 由HTH;' . 得
50、: LASTVT(H)> 即: ;>, d>,b>由M T. Hb得: LASTVT(H)>b即: ;> b,d>b ,b > b 由此得到算符优先关系表,见表3.5。7 【解答】(1) LR 分析表如下:( 2)分析表 状态 ACTION GOTO a b # S B 0 s3 s4 1 21 acc2 S3 S4 53 s3 s4 64 r3 r35 R1 R1 r16 R2 R2 R2(3) 句子 abaab 的分析过程表:句子abaab 的分析过程步骤 状态 符号栈 输入串 所得产生式0 #0 # abaad#1 #03 #a baad#2 #034 #ab aab# B tb3 #036 #aB aab# B taB4 #02 #B aab#5 #023 #Ba ab#6 #0233 #Baa b#7 #02334 #
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度家电产品绿色包装设计合同
- 2025年度城市绿化工程定金担保合同
- 2025年度文化旅游项目宣传推广服务合同范本
- 2025版水果包装设计与品牌形象合作协议
- 2025年度保安服务市场合作协议范本:共享市场资源
- 2025年度公司管理层聘用合同:副总经理岗位聘任书
- 2025版全新智能交通软件下载与规划合同
- 2025常见外贸化妆品销售合同模板
- 2025版托盘租赁与仓储物流服务合作协议
- 2025年度高端酒店客房管理承包合作协议书
- 膀胱镜检查记录
- 沈阳终止解除劳动合同证明书(三联)
- 化工装置静设备基本知识
- 电脑节能环保证书
- 美国共同基金SmartBeta布局及借鉴
- 企业劳动用工法律风险与防范
- 露天矿山危险源辨识汇总
- 2022年08月安徽省芜湖市招考大学生科技特派员岗位冲刺题(带答案)
- 国家城镇救援队伍能力建设与分级测评指南
- 口腔修复学-纤维桩-PPT课件
- 变压器套管课件
评论
0/150
提交评论