编译原理试题及答案3复习课程Word下载.docx
《编译原理试题及答案3复习课程Word下载.docx》由会员分享,可在线阅读,更多相关《编译原理试题及答案3复习课程Word下载.docx(23页珍藏版)》请在冰豆网上搜索。
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-T
T->
F|T*F|T/F
F->
(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->
(+TE‘|-TE‘|ε),T->
(FT‘),(T‘->
*FT‘|ε),F->
((E)|i)。
26、已知文法G(Z):
Z->
U0|V1
U->
Z1|1
V->
Z0|0
请写出全部由此文法描述的只含四个符号的句子:
(0101,1010,1001,0110)。
该文法是Chomsky(3)型文法。
27、Chomsky定义的四种形式语言文法分别为:
(0型)文法--又称(短语文法)文法,(1型)文法--又称(上下文有关)文法,(2型)文法--又称(上下文无关)文法,(3型)文法--又称(正则)文法。
28、文法G(S):
S->
AB
A->
aAb|ab
B->
Bc|ε
其描述的语言L(G[S])=(anbncm,n≥1,m≥0)。
29、文法G(S):
SAS|b|c
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)是机器语言程序。
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={ambn|n>
m>
1}的文法为( D)。
A、Z->
Abb,A->
aA|a,B->
bB|bB、Z->
ABb,A->
Aa|a,B->
aBb|b
C、Z->
Ab,A->
aAb|aD、Z->
aAb,A->
Ab|aAb|@
12、一个句型中的最左( B )称为该句型的句柄。
A、短语B、简单短语C、素短语D、终结符号
13、文法的二义性和语言的二义性是两个( A )的概念。
A、不同B、相同C、无法判断
14、上下文无关文法(A )产生语言L={ambnci|i>
1,n>
1}
A、可以 B、不可以
15、( B )正规文法能产生下面的语言:
L={ambn|n>
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)最重要,其生存期最长,使用也最频繁。
A、线性表B、链表C、表D、符号表
28、编译程序使用(B)区别标识符的作用域。
A、说明标识符的过程或函数名B、说明标识符的过程或函数的静态层次C、说明标识符的过程或函数的动态层次D、标识符的行号
29、动态存储分配时,可以采用的分配方法有(C)。
(1)以过程为单位的栈式动态存储分配;
(2)堆存储分配;
(3)最佳分配方法