编译原理试题及答案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.构造编译程序应掌握______。
编译原理试题及答案

编译原理试题及答案一、选择题1. 编译器的主要功能是什么?A. 程序设计B. 程序翻译C. 程序调试D. 数据处理答案:B2. 下列哪一项不是编译器的前端处理过程?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D3. 在编译原理中,词法分析器的主要作用是什么?A. 识别程序中的关键字和标识符B. 将源代码转换为中间代码C. 检查程序的语法结构D. 确定程序的运行环境答案:A4. 语法分析通常采用哪种方法?A. 自顶向下分析B. 自底向上分析C. 正则表达式匹配D. 直接解释执行答案:B5. 语义分析的主要任务是什么?A. 检查程序的语法结构B. 检查程序的类型安全C. 识别程序中的变量和常量D. 将源代码转换为机器代码答案:B二、简答题1. 简述编译器的工作原理。
答案:编译器的工作原理主要包括以下几个步骤:词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成。
词法分析器将源代码分解成一系列的词素;语法分析器根据语法规则检查词素序列是否合法;语义分析器检查程序的语义正确性;中间代码生成器将源代码转换为中间代码;代码优化器对中间代码进行优化;最后,目标代码生成器将优化后的中间代码转换为目标机器代码。
2. 什么是词法分析器,它在编译过程中的作用是什么?答案:词法分析器是编译器前端的一个组成部分,负责将源代码分解成一个个的词素(tokens),如关键字、标识符、常量、运算符等。
它在编译过程中的作用是为语法分析器提供输入,是编译过程的基础。
三、论述题1. 论述编译器中的代码优化技术及其重要性。
答案:代码优化是编译过程中的一个重要环节,它旨在提高程序的执行效率,减少资源消耗。
常见的代码优化技术包括:常量折叠、死代码消除、公共子表达式消除、循环不变代码外提、数组边界检查消除等。
代码优化的重要性在于,它可以显著提高程序的运行速度和性能,同时降低程序对内存和处理器资源的需求。
四、计算题1. 给定一个简单的四则运算表达式,请写出其对应的逆波兰表达式。
《编译原理》考试试题及答案

《编译原理》考试试题及答案(附录)一、判断题:1.一个上下文无关文法的开始符,可以是终结符或非终结符。
( X )2.一个句型的直接短语是唯一的。
( X )3.已经证明文法的二义性是可判定的。
( X )4.每个基本块可用一个DAG表示。
(√)5.每个过程的活动记录的体积在编译时可静态确定。
(√)6.2型文法一定是3型文法。
( x )7.一个句型一定句子。
( X )8.算符优先分析法每次都是对句柄进行归约。
(应是最左素短语) ( X )9.采用三元式实现三地址代码时,不利于对中间代码进行优化。
(√)10.编译过程中,语法分析器的任务是分析单词是怎样构成的。
( x )11.一个优先表一定存在相应的优先函数。
( x )12.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
( )13.递归下降分析法是一种自下而上分析法。
( )14.并不是每个文法都能改写成LL(1)文法。
( )15.每个基本块只有一个入口和一个出口。
( )16.一个LL(1)文法一定是无二义的。
( )17.逆波兰法表示的表达试亦称前缀式。
( )18.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
( )19.正规文法产生的语言都可以用上下文无关文法来描述。
( )20.一个优先表一定存在相应的优先函数。
( )21.3型文法一定是2型文法。
( )22.如果一个文法存在某个句子对应两棵不同的语法树,则文法是二义性的。
( )二、填空题:1.( 最右推导 )称为规范推导。
2.编译过程可分为(词法分析),(语法分析),(语义分析和中间代码生成),(代码优化)和(目标代码生成)五个阶段。
3.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是()。
4.从功能上说,程序语言的语句大体可分为()语句和()语句两大类。
5.语法分析器的输入是(),其输出是()。
6.扫描器的任务是从()中识别出一个个()。
完整版编译原理复习题及答案

编译原理复习题及答案一、选择题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 .BASICB .CC.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) A .出错处理B.词法分析C.目标代码生成D.表格管理17.源程序是句子的集A. 线性表(B) 可以较好地反映句子的结构。
编译原理考试习题及答案

( T ② S ① a
T ,
T ④ S ③ a
2019/1/29
CH.5.练习题3(P133.)
3.(1) 计算练习2文法G2的FIRSTVT和LASTVT。 S→a||(T) T→T,S|S
(1) 解: (执行相应的算法可求得) FIRSTVT(S)={ a, ∧, ( } FIRSTVT(T)={ , , a, ∧, ( } LASTVT(S)={ a, ∧, ) } LASTVT(T)={ , , a, ∧, ) }
(1) 正规式 1(0|1)*101
0
0
DFA:
3,2
1 0
3,5,2
1 1 0
x
1
1,3,2
1
0
3,4,2
1
3,Y,4,2 I0 I1 1 3 3 3 5 3
I {X} {1,3,2} {3,2} {3,4,2} {3,5,2} {3,Y,4,2}
I0 {3,2} {3,2} {3,5,2} {3,2} {3,5,2}
2019/1/29 22
CH.5.练习题2(P133.)
2.(2).给出(a,(a,a))“移进-归约”的过程。 (2) 解: (a,(a,a))的“移进-归约”过程: 步骤 符号栈 输入串 动作 9 #(T,( S ,a))# 归约 S → a 10 #(T,(T , a ))# 归约 T → S 11 #(T,(T, a ))# 移进 , 12 #(T,(T, a ))# 移进 a 13 #(T,( T,S ))# 归约 S → a 14 #(T, (T ) )# 归约 T → T,S 15 #(T, (T) )# 移进 ) 16 #( T, S )# 归约 S → (T)
2-3-习题(含解答)

2-3 习题(含解答)目录第1章编译原理概述 (1)第2章PL/O编译程序的实现 (4)第3章文法和语言 (4)第4章词法分析 (13)第5章自顶向下语法分析方法 (28)第6章自底向上优先分析 (39)第7章LR分析 (42)第8章语法制导翻译和中间代码生成 (60)第9章符号表 (67)第10章目标程序运行时的存储组织 (70)第11章代码优化 (73)第12章代码生成 (76)综合练习一 (79)综合练习二 (84)综合练习三 (90)综合练习四 (95)综合练习五 (101)综合练习六 (107)第1章编译原理概述一、选择题1.一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括 (1) 。
其中, (2) 和代码优化部分不是每个编译程序都必需的。
词法分析器用于识别 (3) ,语法分析器则可以发现源程序中的 (4) 。
(1) A.模拟执行器 B.解释器 C.表格处理和出错处理 D.符号执行器(2) A.语法分析 B.中间代码生成 C.词法分析 D.目标代码生成(3) A.字符串 B.语句 C.单词 D.标识符(4) A.语义错误 B.语法和语义错误 C.错误并校正 D.语法错误2.程序语言的语言处理程序是一种 (1) 。
(2) 是两类程序语言处理程序,他们的主要区别在于 (3) 。
(1) A.系统软件 B.应用软件 C.实时系统 D.分布式系统(2) A.高级语言程序和低级语言程序 B.解释程序和编译程序C.编译程序和操作系统D.系统程序和应用程序(3) A.单用户与多用户的差别 B.对用户程序的查错能力C.机器执行效率D.是否生成目标代码3.汇编程序是将翻译成,编译程序是将翻译成。
A.汇编语言程序B.机器语言程序C.高级语言程序D. A 或者BE. A 或者CF. B或者C4.下面关于解释程序的描述正确的是。
(1) 解释程序的特点是处理程序时不产生目标代码(2) 解释程序适用于COBOL 和 FORTRAN 语言(3) 解释程序是为打开编译程序技术的僵局而开发的A. (1)(2)B. (1)C. (1)(2)(3)D.(2)(3)5.高级语言的语言处理程序分为解释程序和编译程序两种。
编译原理试题及答案

编译原理试题及答案一、选择题1. 下列哪个不是编译器所需的基本处理步骤?A. 词法分析B. 语法分析C. 语义分析D. 目标代码优化答案:D2. 编译器的主要功能是将高级语言程序翻译成什么形式?A. 汇编语言B. 机器语言C. 中间代码D. 高级语言答案:B3. 下列哪个不属于编译器的后端阶段?A. 代码优化B. 目标代码生成C. 词法分析D. 目标程序优化答案:C二、填空题1. 编译器的输入是源程序,输出是目标程序。
2. 目标代码生成阶段的任务是将中间代码翻译成汇编语言或机器语言。
3. 语法分析阶段的输出是抽象语法树。
三、简答题1. 请简述编译器的工作原理。
编译器的工作原理主要包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等阶段。
词法分析阶段将源程序分解成单词(也称为词法单元),语法分析阶段根据语法规则将词法单元组织成一个语法树,语义分析阶段对语法树进行语义检查,中间代码生成阶段将语法树转化为中间代码,代码优化阶段对中间代码进行优化,最后目标代码生成阶段将中间代码转化为机器语言或汇编语言。
2. 请说明词法分析的作用是什么,如何实现?词法分析的作用是将源程序中的字符序列转化为单词序列,也就是将一段代码切分成不同的词法单元。
实现词法分析可以通过有限状态自动机来处理输入字符序列,并根据一系列规则将字符序列划分为词法单元。
常用的方法有手写分析器和使用词法分析生成器等。
3. 简要介绍一下代码优化的目的和方法。
代码优化的目的是通过对程序的中间代码或目标代码进行调整,以达到提高程序性能、减小程序的空间占用或减小程序的执行时间等目的。
代码优化的方法主要包括局部优化和全局优化两种。
局部优化主要针对某个代码块进行优化,如常量折叠、公共子表达式消除等。
全局优化则考虑整个程序,对程序的整体结构进行优化,如循环优化、函数内联等。
总结:编译原理试题及答案主要涵盖了选择题、填空题和简答题三个部分。
其中选择题主要考察对编译器基本处理步骤和功能的理解。
编译原理考试题及答案

编译原理考试题及答案一、选择题(每题5分,共20分)1. 编译器的主要功能是什么?A. 代码优化B. 代码翻译C. 代码调试D. 代码运行答案:B2. 下列哪个选项不属于编译器的前端部分?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D3. 在编译原理中,文法的产生式通常表示为:A. A -> αB. A -> βC. A -> γD. A -> δ答案:A4. 下列哪个算法用于构建语法分析树?A. LL(1)分析B. LR(1)分析C. SLR(1)分析D. LALR(1)分析答案:A二、填空题(每空5分,共20分)1. 编译器的前端通常包括词法分析、语法分析和________。
答案:语义分析2. 编译器的后端主要负责________和目标代码生成。
答案:代码优化3. 编译器中的词法分析器通常使用________算法来识别单词。
答案:有限自动机4. 语法分析中,________分析是一种自顶向下的分析方法。
答案:递归下降三、简答题(每题10分,共30分)1. 简述编译器的作用。
答案:编译器的主要作用是将高级语言编写的源代码转换成计算机能够理解的低级语言或机器代码,以便执行。
2. 解释一下什么是语法制导翻译。
答案:语法制导翻译是一种翻译技术,它利用源语言的语法信息来指导翻译过程,使得翻译过程能够更好地理解源代码的语义。
3. 什么是词法分析器?答案:词法分析器是编译器前端的一部分,它的任务是将源代码文本分解成一系列的标记(tokens),这些标记是源代码的最小有意义的单位。
四、计算题(每题10分,共30分)1. 给定一个简单的文法G(E):E → E + T | TT → T * F | FF → (E) | id请计算文法的非终结符号E的FIRST集和FOLLOW集。
答案:E的FIRST集为{(, id},FOLLOW集为{), +, $}。
2. 假设编译器在进行语法分析时,遇到一个语法错误的代码片段,请简述编译器如何处理这种情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编译原理复习题一、填空题: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、在编译过程中,常见的中间语言形式有(逆波兰表示)、(三元式)、(四元式)和(树形表示)。
14、在编译程序中安排中间代码生成的目的是(便于代码优化)和(便于目标程序的移植)。
15、表达式-a+b*(-c+d)的逆波兰表示为(a-bc-d+*+ )。
16、表达式a+b*(c+d/e)的逆波兰表示为(abcde/+*+ )。
17、表达式a:=a+b*c↑(d/e)/f的逆波兰表示为(aabcde/↑*f/+:= )。
18、文法符号的属性有(继承属性)和(综合属性)两种。
19、一个文法符号的继承属性是通过语法树中它的(兄弟结点与父)结点的相应文法符号的属性来计算的。
20、一个文法符号的综合属性是通过语法树中它的(子)结点的属性来计算的。
21、语法制导的编译程序能同时进行(语法)分析和(语义)分析。
22、编译过程中扫描器所完成的任务是从(源程序)中识别出一个个具有(独立语法意义的单词)。
23、确定的有穷自动机是一个(五元组),通常表示为( DFA=(K,∑,M,S,Z))。
24、已知文法G(E):E->T|E+T|E-TT->F|T*F|T/FF->(E)|i该文法的开始符号是( E ),终结符号集合VT是({ +,-,*./,(,),i }),非终结符号集合VN是({ E,T,F }),句型T+T*F+i的短语有(T+T*F+I ,T*F第一个T,i)。
25、已知文法G(E):E->T|E+T|E-TT->F|T*F|T/FF->(E)|i改写该文法以消除直接左递归,改写后的文法为:E->(+TE‘|-TE‘|ε),T->(FT‘),(T‘-> *FT‘|ε),F->((E)| i)。
26、已知文法G(Z):Z->U0|V1U->Z1|1V->Z0|0请写出全部由此文法描述的只含四个符号的句子:( 0101,1010,1001,0110 )。
该文法是Chomsky( 3 )型文法。
27、Chomsky定义的四种形式语言文法分别为:( 0型)文法--又称(短语文法)文法,(1型)文法--又称(上下文有关)文法,(2型)文法--又称(上下文无关)文法,(3型)文法--又称(正则)文法。
28、文法G(S):S->ABA->aAb|abB->Bc|ε其描述的语言L(G[S])=( a n b n c m,n≥1,m≥0 )。
29、文法G(S):S->SAS|b|cA->aaA|a其描述的语言L(G[S])=(b,C,或者是以b开头、以c结尾的、中间是任意个由b或c间隔开的奇数个a组成的符号串)。
30、过程与过程引用中信息交换的方法是(全局变量的使用)和(参数传递)。
31、形式参数和实在参数之间的对应关系通常按(它们在源程序中的位置)来确定。
32、按传结果的方式进行形实参数结合,是一种把(传地址)和(传值)的特点相结合的参数传递方式。
33、在PASCAL中,由于允许用户动态申请与释放内存空间,所以必须采用(堆)存储分配方式。
34、编译程序进行数据流分析的目的是(为了进行全局优化)。
35、根据所涉及程序的范围,优化可分为(局部优化)、(循环优化)和(全局优化)三种。
36、局部优化是局限于一个(基本块)范围内的一种优化。
37、词法分析阶段的错误主要是(拼写错误),可通过(最小距离匹配)的办法去纠正错误。
38、对错误的处理方法一般有(校正法)和(局部优化法)。
39、源程序中的错误一般有(词法错误)、(语法错误)、(语义错误)和(违反环境限制的错误)四种。
40、翻译程序是这样一种程序,它能够将(用甲语言书写的程序)转换成与其等价的(用乙语言书写的程序)。
41、编译程序的工作过程一般可以划分成(词法分析、语法分析、语义分析、中间代码生成、代码优化)等五个基本阶段。
42、编译程序的工作过程还会伴有(表格处理)和(出错处理)。
二、选择题:1、在使用高级语言编程时,首先可通过编译程序发现源程序的全部( A )错误和部分( B )错误。
A、语法B、语义C、语用D、运行2、程序语言的处理程序是一种( A )。
A、系统软件B、应用软件C、实时系统D、分布式系统3、( B )是两类程序语言处理程序,它们的主要区别在于是否生成目标代码。
A、高级语言和低级语言B、解释程序和编译程序C、编译程序和操作系统D、系统程序和应用程序4、汇编语言是将( A )翻译成( B );编译程序是将( C )翻译成( D )。
A、汇编语言程序B、机器语言程序C、高级语言程序D、汇编或机器语言程序 e、汇编或高级语言程序 F、机器或高级语言程序5、编译程序与具体的机器( A ),与具体的语言( B )。
A、有关B、无关6、编译程序生成的目标程序( B )是可执行的程序。
A、一定B、不一定7、编译程序生成的目标程序( B )是机器语言程序。
A、一定B、不一定8、把汇编语言程序翻译成机器可执行的目标程序的工作是由( B )完成的。
A、编译器B、汇编器C、解释器D、预处理器9、编译过程中,语法分析器的任务是( B )。
(1)分析单词是怎样构成的;(2)分析单词串是如何构成语句和说明的;(3)分析语句和说明是如何构成程序的;(4)分析程序的结构A、(2)(3)B、(2)(3)(4)C、(1)(2)(3)D、(1)(2)(3)(4)10、文法G所描述的语言是( D )的集合A、文法G的字母表V中所有符号组成的符号串;B、文法G的字母表V的闭包V*中的所有符号串;C、由文法的识别符号推出的所有符号串;D、由文法的识别符号推出的所有终结符符号串;11、描述语言L={a m b n|n>m>1}的文法为( D )。
A、Z->Abb, A->aA|a, B->bB|bB、Z->ABb, A->Aa|a,B->aBb|bC、Z->Ab, A->aAb|aD、Z->aAb, A->Ab|aAb|@12、一个句型中的最左( B )称为该句型的句柄。
A、短语B、简单短语C、素短语D、终结符号13、文法的二义性和语言的二义性是两个(A)的概念。
A、不同B、相同C、无法判断14、上下文无关文法( A)产生语言L={a m b n c i|i>1,n>1}A、可以B、不可以15、(B)正规文法能产生下面的语言:L={a m b n|n>1}A、存在一个B、不存在任何c、无法判断16、编译程序中的语法分析器接受以(C)为单位的输入,并产生有关信息供以后各阶段使用。
A、表达式B、产生式C、单词D、语句17、高级语言编译程序常用的语法分析方法中,递归下降分析法属于( B )分析方法。
A、自左至右B、自顶向下C、自底向上D、自右至左18、算符优先分析法每次都是对( E )进行归约,简单优先分析法每次都是对( C )进行归约。
A、最左短语B、简单短语C、句柄D、素短语E、最左素短语19、文法G(S):S—>aTb|,,T->R,R—>R/S|S的句型aR/aSb/aTb,b的最左素短语为( B )。
A、aTbB、aSbC、SD、R/E、,20、LR语法分析栈中存放的状态是识别( B )的DFA状态。
A、前缀B、可归前缀C、项目D、句柄21、已知文法G[S]:s->LaR|R,L->bR|c,R->L 该文法是( B )。
(1)LR(0)文法;(2)SLR(1)文法;(3)LR(1)文法;(4)LALR(1)文法;(5)都不是A、(1)(2)B、(3)(4)C、(1)(2)(3)(4)D、(5)E、(6)22、若一个句型中出现了某一产生式的右部,则此右部( B )是该句型的句柄。
A、一定B、不一定23、LR(K)方法是( D )。
A、从左到右分析,每次走K步的一种编译方法B、从左到右分析,共经过K步的一种编译方法C、从左到右分析,每次向前预测K步的一种编译方法D、从左到右分析,每次向貌似句柄的符号串后看K个输入符号的一种编译方法24、文法G[S]:S->AA,A->Aa|a 不是LR(1)文法的理由是( D )A、FIRST(S)NFIRST(A)≠фB、FIRST(A)NFOLLLOW(A) ≠фC、FIRST(Aa)NFIRST(a) ≠фD、都不是25、下列关于标识符和名字的叙述中,正确的是( C )。
A、标识符有一定的含义B、名字是一个没有意义的字符序列C、名字有确切的属性D、都不对26、编译程序在其工作过程中使用最多的数据结构是( C )。
它记录着源程序中的各种信息,以便查询或修改。
A、线性表B、链表C、表D、符号表27、在编译程序在其工作过程中使用的各种表中,以( D )最重要,其生存期最长,使用也最频繁。