1、编译原理 专升本编译原理(专升本)问答题1. 文法G:非终结符号集合为: S, H, K 。 终结符符号集合为: a, b, c, d, e GS: (1) S-aHcKe (2) H-b (3) H-Hb (4) K-d 1)构造文法的LR(0)项目集规范族及LR(0)分析表。 2)分析abcde是否该文法的句子。(20分)2. 何谓素短语?何谓最左素短语?(20分)参考标准答案:解:素短语是满足下述条件的短语:(1)它至少含有一个终结符号(2)满足条件(1)的“最小”短语。 最左素短语: 所谓最左素短语是指处于句型最左边的那个素短语。3. 什么是编译程序?什么是解释程序?各有什么特点?(2
2、0分)参考标准答案:编译程序:把用高级程序设计语言书写的源程序,翻译成等价的计算机汇编语言或机器语言书写的目标程序的翻译程序。所谓解释程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。编译程序必须分析源程序,然后综合成目标程序。4. 请判断如下文法G是否LR(0)文法,若是,请构造文法的LR(0)项目集规范族及LR(0)分析表。(20分) 文法G: 非终结符号集合为: P, B, T, H, C 终结符符号集合为: ;, b, d, e, S, GP: (1) P-B (2) B-H;T (3) H-H;d (4)
3、P-C (5) H-b d (6) T-S e (7) C-bT (8) T-S ;T(20分)参考标准答案:如图:5. 何谓属性文法?怎么利用属性文法实现语义翻译?(20分)参考标准答案:属性文法使文法符号属性值的计算和产生式相联系。随着语法分析的进行,执行属性值的计算,从而完成语义分析和翻译的任务。利用属性文法实现语义的语法制导翻译是对前后文无关文法的扩充,即对文法中的每个产生式都附加一个语义动作或语义子程序,且在语法分析过程中,每当需要使用一个产生式进行推导或归约时,语法分析程序除执行相应的语法分析动作外,还要执行相应的语义动作或调用相应的语义子程序,完成相应的语义分析和翻译工作。问答题
4、1. 编译程序的工作过程一般可以划分为哪几个阶段?同时还伴有些什么处理?(20分)参考标准答案:编译程序的工作过程一般可以划分为词法分析、语法分析、语义分析、中间代码生成、代码优化,同时还伴有表格处理和出错处理。前端和后端的划分依据为是否和目标机有关。2. 文法G:非终结符号集合为: S, X, Y 。终结符符号集合为: a, b, c, d GS: (1) S-aX (2) S-bY (3) X-cX (4) X-d (5) Y-cY (6) Y-d 请:判断该文法是否LR(0)文法,若是,请构造文法的LR(0)项目集规范族及LR(0)分析表。(20分)参考标准答案:下面是生成的拓广文法G:
5、非终结符号集合为:$, S, X 。终结符符号集合为: a, i, , GS:(0)$-S(1)S-aX(2)X-i(3)X-X,i该文法的项目如下:(1)$-.S(2)$-S.(3)S-.aX(4)S-a.X(5)S-aX.(6)X-.i(7)X-i.(8)X-.X,i(9)X-X.,i(10)X-X,.i(11)X-X,i.LR(0)项目规范族如下:I0 = 1, 3 I1 = 2 I2 = 4, 6, 8 I3 = 5, 9 I4 = 7 I5 = 10 I6 = 11 输入的文法不是LR(0)文法,不能生成预测分析表3. 请:判断如下文法G是否LR(0)文法,若是,请构造文法的LR(0
6、)项目集规范族及LR(0)分析表。 文法G: 非终结符号集合为: S, X 终结符符号集合为: a, i, , GS: (1) S-aX (2) X-i (3) X-X,i(20分)4. 已知文法G=(A,B,C,a,b,c, P ,A),其中P由以下产生式组成: A abc A aBbc Bb bB Bc Cbcc bC Cb aC aaB aC aa 问:此文法表示的语言是什么?(20分)参考标准答案:由于A为开始符。 由于AaBbcabBcabCbccaCbbccaabbcc 语言为: anbncn| n0,n为幂指数 5. “含有优化部分的编译程序的执行效率高”,这种说法正确吗?为什么
7、?(20分)参考标准答案:含有优化功能的编译程序,其优化是指对生成的目标代码进行优化,而不是编译程序本身得到优化,它提高目标代码的效率,而不是编译程序的效率。所以上述说法不对。判断题1. 描述一个语言的文法是唯一的。(1分)参考标准答案:错误2. LL(1)分析必须对原有文法提取左因子和消除左递归。(1分)参考标准答案:正确3. 优先关系表对应的优先函数,如果存在,一定唯一。(1分)参考标准答案:错误4. 若文法G定义的语言是无限集,则文法必然是前后文无关文法。(1分)参考标准答案:错误5. 简单优先分析每次归约的是最左直接短语。(1分)参考标准答案:错误6. 文法的二义性和语言的二义性是两个
8、不同的概念。(1分)参考标准答案:正确7. 项目A-B称为移进项目,其中BVN。(1分)参考标准答案:错误8. 仅考虑一个基本块,不能确定一个赋值是否真是无用的。(1分)参考标准答案:正确9. 上下文无关文法也叫正规文法。(1分)参考标准答案:错误10. 每个文法都能改写为LL(1)文法。(1分)参考标准答案:错误填空题11. 形如A-a的项目称为:_(1)_ 。(1分)(1).参考标准答案:移进项目12. 所谓SLR(1)是:_(2)_ 。(1分)(1).参考标准答案:是只对LR(0)分析法中有冲突的状态才向前查看一个符号的分析方法。13. 所谓规范推导是指:_(3)_ 。(1分)(1).参
9、考标准答案:即最右推导(最好有详细解释)14. 一个LR(1)的项目由两个部分组成:_(4)_ ,_(5)_ 。(2分)(1).参考标准答案:心(2).参考标准答案:向前搜索符号集15. 由文法产生的_(6)_ 集合是文法产生的语言。(1分)(1).参考标准答案:句子16. 自底向上分析方法也称为:_(7)_ 分析方法。(1分)(1).参考标准答案:移进规约17. LEX编译系统的功能是构造各种各样_(8)_ 的_(9)_ 。(2分)(1).参考标准答案:语言(2).参考标准答案:词法分析程序18. LL(K)文法中,L表示_(10)_ ,L表示_(11)_ ,K表示_(12)_ 。(3分)(
10、1).参考标准答案:从左到右扫描符号串(2).参考标准答案:最左推导(3).参考标准答案:需要向前查看K个符号19. 一个LR分析器有3个部分组成:_(13)_ 、_(14)_ 和_(15)_ 。(3分)(1).参考标准答案:总控程序(或驱动程序)(2).参考标准答案:分析表(或分析函数)(3).参考标准答案:分析栈(文法符号栈和状态栈)问答题20. 文法G:非终结符号集合为: S, A, Y, B, N,终结符符号集合为: i, +, *, (, ) 。GS: S-YA A-+YA A- Y-NB B-*NB B- N-(S) N-i。 构造该文法的预测分析表,判断其是否一个LL(1)文法。
11、(25分)21. 构造一个DFA,接受字母表=0, 1上的以01 结尾的所有串。(25分)22. 简述编译程序的工作过程。(25分)参考标准答案:编译程序的工作过程,是指从输入源程序开始到输出目标程序为止的整个过程,是非常复杂的,就其过程而言,一般可以划分为五个工作阶段:词法分析,对构成源程序的字符串进行扫描和分解,识别出一个个的单词;语法分析,根据语言的语法规则,把单词符号串分解成各类语法单位;语义分析与中间代码产生,即对各类语法单位,分析其汉一并进行初步翻译;代码优化,以期产生更高效的代码;目标代码生成,把中间代码变换成特定机器上的低级语言指令形式。单选题1. 一个编译程序中,不仅包含词法
12、分析,_,中间代码生成,代码优化,目标代码生成等五个部分,还有表格处理等辅助部分。(6分)(A)语法分析(B)文法分析(C)语言分析(D)解释分析参考标准答案:A2. 词法分析器用于识别_。(6分)(A)字符串(B)语句(C)单词(D)标识符参考标准答案:C3. 语法分析器则可以发现源程序中的_。(6分)(A)语义错误(B)语法和语义错误(C)错误并校正(D)语法错误参考标准答案:D4. 下面关于解释程序的描述正确的是_。(6分)(A)(1)(2)(B)(1)(C)(1)(2)(3)(D)(2)(3)参考标准答案:B5. 解释程序处理语言时 , 大多数采用的是_方法。(6分)(A)源程序命令被
13、逐个直接解释执行(B)先将源程序转化为中间代码 , 再解释执行(C)先将源程序解释转化为目标程序 , 再执行(D)以上方法都可以参考标准答案:A6. 编译过程中 , 语法分析器的任务就是_。(5分)(A)(2)(3)(B)(2)(3)(4)(C)(1)(2)(3)(D)(1)(2)(3)(4)参考标准答案:B7. 文法 G 所描述的语言是_的集合。(5分)(A)文法 G 的字母表 V 中所有符号组成的符号串(B)文法 G 的字母表 V 的闭包 V* 中的所有符号串(C)由文法的开始符号推出的所有终极符串(D)由文法的开始符号推出的所有符号串参考标准答案:C8. 将编译程序分成若干个“遍”是为了
14、_。(5分)(A)提高程序的执行效率(B)使程序的结构更加清晰(C)利用有限的机器内存并提高机器的执行效率(D)利用有限的机器内存但降低了机器的执行效率参考标准答案:B9. 构造编译程序应掌握_。(5分)(A)源程序(B)目标语言(C)编译方法(D)以上三项都是参考标准答案:D10. 中间代码生成时所依据的是_。(5分)(A)语法规则(B)词法规则(C)语义规则(D)等价变换规则参考标准答案:C判断题11. 计算机高级语言翻译成低级语言只有解释一种方式。(5分)参考标准答案:错误12. 在编译中进行语法检查的目的是为了发现程序中所有错误。(5分)参考标准答案:错误13. 甲机上的某编译程序在乙
15、机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。(5分)参考标准答案:正确填空题14. 编译程序的工作过程一般可以划分为词法分析,语法分析,语义分析,中间代码生成,代码优化等几个基本阶段,同时还会伴有_(1)_ 和 _(2)_ 。(5分)(1).参考标准答案:表格处理(2).参考标准答案:出错处理15. 语法分析最常用的两类方法是_(3)_ 和_(4)_ 分析法。(5分)(1).参考标准答案:自上而下(2).参考标准答案:自下而上16. 编译方式与解释方式的根本区别在于_(5)_ 。(5分)(1).参考标准答案:是否生成目标代码17. 产生式是用于定义_(6)_ 的一种书写规则。(
16、5分)(1).参考标准答案:语法成分18. 对编译程序而言,输入数据是_(7)_ , 输出结果是_(8)_ 。(5分)(1).参考标准答案:源程序(2).参考标准答案:目标程序19. 若源程序是用高级语言编写的, _(9)_ 是机器语言程序或汇编程序,则其翻译程序称为 _(10)_ 。(5分)(1).参考标准答案:目标程序(2).参考标准答案:编译程序单选题1. 通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括_。(5分)(A)模拟执行器(B)解释器(C)表格处理和出错处理(D)符号执行器参考标准答案:C2. 一个句型中的最左_称为该句型
17、的句柄。(5分)(A)短语(B)直接短语(C)素短语(D)终结符号参考标准答案:B3. 设 G 是一个给定的文法, S 是文法的开始符号,如果 S-x( 其中 xV*), 则称 x 是文法 G 的一个_。(5分)(A)候选式(B)句型(C)单词(D)产生式参考标准答案:A4. 文法分为四种类型,即 0 型、1 型、2 型、3 型。其中 3 型文法是_。(5分)(A)短语文法(B)正则文法(C)上下文有关文法(D)上下文无关文法参考标准答案:B5. 文法 GE:ETE TTFT FFa ( E )该文法句型 E F (E T) 的直接短语是下列符号串中的_。 ( E T ) E T F F (E
18、 T)(5分)(A) 和 (B) 和 (C) 和 (D)参考标准答案:B6. 若一个文法是递归的,则它所产生的语言的句子_。(5分)(A)是无穷多个(B)是有穷多个(C)是可枚举的(D)个数是常量参考标准答案:C7. 语言是_。(5分)(A)句子的集合(B)产生式的集合(C)符号串的集合(D)句型的集合参考标准答案:A8. 在语法分析处理中, FIRST 集合、 FOLLOW 集合、 SELECT 集合均是_。(5分)(A)非终极符集(B)终极符集(C)字母表(D)状态集参考标准答案:B9. 在自底向上的语法分析方法中,分析的关键是_。(5分)(A)寻找句柄(B)寻找句型(C)消除递归(D)选
19、择候选式参考标准答案:A10. 在 LR 分析法中,分析栈中存放的状态是识别规范句型_的 DFA 状态。(5分)(A)句柄(B)前缀(C)活前缀(D)LR(0) 项目参考标准答案:C判断题11. 逆波兰法表示的表达式亦称前缀式 。(5分)参考标准答案:正确12. 每个文法都能改写为 LL(1) 文法。(5分)参考标准答案:错误13. 递归下降法允许任一非终极符是直接左递归的。(5分)参考标准答案:错误14. 算符优先关系表不一定存在对应的优先函数。(5分)参考标准答案:正确15. 自底而上语法分析方法的主要问题是候选式的选择。(5分)参考标准答案:错误填空题16. 设 G 是一个给定的文法,S
20、 是文法的开始符号,如果 S-x( 其中 xVT*), 则称 x 是文法的一个_(1)_ 。(1).参考标准答案:句子17. 递归下降法不允许任一非终极符是直接_(2)_ 递归的。(4分)(1).参考标准答案:左18. 自顶向下的语法分析方法的基本思想是.从文法的_(3)_ 开始,根据给定的输入串并按照文法的产生式一步一步的向下进行_(4)_ ,试图推导出文法的_(5)_ ,使之与给定的输入串_(6)_ 。(4分)(1).参考标准答案:开始符号(2).参考标准答案:直接推导(3).参考标准答案:句子(4).参考标准答案:匹配19. 自底向上的语法分析方法的基本思想是.从输入串入手,利用文法的产
21、生式一步一步地向上进行_(7)_ ,力求归约到文法的_(8)_ 。(4分)(1).参考标准答案:直接归约(2).参考标准答案:开始符号20. 在使用高级语言编程时,首先可通过编译程序发现源程序的全部_(9)_ 错误和语义部分错误。(4分)(1).参考标准答案:语法21. 常用的参数传递方式有_(10)_ ,传值和传名。(4分)(1).参考标准答案:传地址1. 文法 G 产生的_的全体是该文法描述的语言。(6分)(A)句型(B)终结符集(C)非终结符集(D)句子参考标准答案:D2. 若文法 G 定义的语言是无限集,则文法必然是 _。(6分)(A)递归的(B)前后文无关的(C)二义性的(D)无二义
22、性的参考标准答案:A3. 四种形式语言文法中,1型文法又称为 _文法。(6分)(A)短语结构文法(B)前后文无关文法(C)前后文有关文法(D)正规文法参考标准答案:C4. 对应Chomsky四种文法的四种语言之间的关系是_。(6分)(A)L0L1L2L3(B)L3L2L1L0(C)L3=L2L1L0(D)L0L1L2=L3参考标准答案:B5. _和代码优化部分不是每个编译程序都必需的。(6分)(A)语法分析(B)中间代码生成(C)词法分析(D)目标代码生成参考标准答案:B6. _是两类程序语言处理程序。(6分)(A)高级语言程序和低级语言程序(B)解释程序和编译程序(C)编译程序和操作系统(D
23、)系统程序和应用程序参考标准答案:B7. 常用的中间代码形式不含_。(6分)(A)三元式(B)四元式(C)逆波兰式(D)语法树参考标准答案:D8. 一个上下文无关文法 G 包括四个组成部分,它们是.一组非终结符号,一组终结符号,一个开始符号,以及一组 _。(6分)(A)句子(B)句型(C)单词(D)产生式参考标准答案:D9. 文法分为四种类型,即0型、1型、2型、3型。其中2型文法是_。(6分)(A)短语文法(B)正则文法(C)上下文有关文法(D)上下文无关文法参考标准答案:D判断题10. “ 用高级语言书写的源程序都必须通过编译,产生目标代码后才能投入运行 ”这种说法。(6分)参考标准答案:
24、错误11. 若一个句型中出现了某产生式的右部,则此右部一定是该句型的句柄。(6分)参考标准答案:正确填空题12. 一个句型中的最左简单短语称为该句型的_(1)_ 。(6分)(1).参考标准答案:句柄13. 对于文法的每个产生式都配备了一组属性的计算规则,称为_(2)_ 。(6分)(1).参考标准答案:语义规则14. 一个典型的编译程序中,不仅包括_(3)_ 、_(4)_ 、_(5)_ 、代码优化、目标代码生成等五个部分,还应包括表格处理和出错处理。(6分)(1).参考标准答案:词法分析(2).参考标准答案:语法分析(3).参考标准答案:中间代码生成15. 从功能上说,程序语言的语句大体可分为_
25、(6)_ 语句和_(7)_ 语句两大类。(6分)(1).参考标准答案:执行性(2).参考标准答案:说明性16. 扫描器的任务是从_(8)_ 中识别出一个个_(9)_ 。(5分)(1).参考标准答案:源程序(2).参考标准答案:单词符号17. 产生式是用于定义_(10)_ _的一种书写规则。(5分)(1).参考标准答案:语法成分单选题1. 编译程序绝大多数时间花在_ 上。(4分)(A)出错处理(B)词法分析(C)目标代码生成(D)表格管理参考标准答案:D2. 编译程序是对_。(4分)(A)汇编程序的翻译(B)高级语言程序的解释执行(C)机器语言的执行(D)高级语言的翻译参考标准答案:D3. 采用
26、自上而下分析,必须_。(4分)(A)消除左递归(B)消除右递归(C)消除回溯(D)提取公共左因子参考标准答案:C4. 在规范归约中,用_来刻画可归约串。(4分)(A)直接短语(B)句柄(C)最左素短语(D)素短语参考标准答案:B5. 若a为终结符,则A- a为_项目。(4分)(A)归约(B)移进(C)接受(D)待约参考标准答案:B6. 间接三元式表示法的优点为_。(4分)(A)采用间接码表,便于优化处理(B)节省存储空间,不便于表的修改(C)便于优化处理,节省存储空间(D)节省存储空间,不便于优化处理参考标准答案:A7. 基本块内的优化为_。(4分)(A)代码外提,删除归纳变量(B)删除多余运
27、算,删除无用赋值(C)强度削弱,代码外提(D)循环展开,循环合并参考标准答案:B8. 代码优化的目的是_。(4分)(A)节省时间(B)节省空间(C)节省时间和空间(D)把编译程序进行等价交换参考标准答案:C9. 若项目集Ik含有A- ,则在状态k时,仅当面临的输入符号aFOLLOW(A)时,才采取“A- ”动作的一定是_。(4分)(A)LALR文法(B)LR(0)文法(C)LR(1)文法(D)SLR(1)文法参考标准答案:D10. 堆式动态分配申请和释放存储空间遵守_原则。(4分)(A)先请先放(B)先请后放(C)后请先放(D)任意参考标准答案:D判断题11. 削减运算强度破坏了临时变量在一基本块内仅被定义一次的特性。(4分)参考标准答案:正确12. 在中间代码优化中循环上的优化主要有不变表达式外提和削减运算强度。(4分)参考标准答案:错误13. 递归下降分析法是自顶向下分析方法。(4分)参考标准答案:正确14. 产生式是用于定义词法成分的一种书写规则。(4分)参考标准答案:错误15. LR 法是自顶向下语法分析方法。(4分)参考标准答案:错误16. 在 SLR ( 1 )分析法的名称中,S的含义是简单的。(4分)参考标准答案:正确17. 综合属性是用于 “ 自上而下 ” 传递信息。(4分)参考标准答案:错误18. 符号表中的信息栏中登记了每个名字的属
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1