编译原理期末习题考试复习题目(重点三)
目录
三、判断题
(下列各题,你认为正确的,请在题干的括号内打“ √”,错的打“×”。)
1.计算机高级语言翻译成低级语言只有解释一种方式。 (X)
2.在编译中进行语法检查的目的是为了发现程序中所有错误。 (X)
3.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相 同。 (X)
4.“用高级语言书写的源程序都必须通过编译,产生目标代码后才能投入运行”这种说法。(X)
5.正则文法其产生式为Aàa,AàBb, A,B∈VN,a、b∈VT。 (V)
6.产生式是用于定义词法成分的一种书写规则。 (X)
7.解释程序适用于 COBOL 和 FORTRAN 语言。 (X)
8.正规文法产生的语言都可以用上下文无关文法来描述。 (V)
9.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的。 (V)
10.编译程序是对高级语言程序的解释执行。 (X)
11.一个有限状态自动机中,有且仅有一个唯一的终态。 (X)
12.语法分析时必须先消除文法中的左递归 。 (X)
13.两个正规集相等的必要条件是他们对应的正规式等价。 (V )
14.设r和s分别是正规式,则有L(r|s)=L(r)L(s)。 (X)
15.确定的自动机以及不确定的自动机都能正确地识别正规集。 (V)
16.词法分析作为单独的一遍来处理较好。 (X)
17.构造LR分析器的任务就是产生LR分析表。 (V)
18.编译程序与具体的机器有关,与具体的语言无关。 (X)
19.每个文法都能改写为LL(1)文法。 (X)
20.递归下降法允许任一非终结符是直接左递归的。 (V)
21.递归下降分析法是自顶向下分析方法。 (V)
22.一个 LL(l)文法一定是无二义的。 (V)
23.算符优先关系表不一定存在对应的优先函数。 (X)
24.自底而上语法分析方法的主要问题是候选式的选择。 (X)
25.LR分析方法是自顶向下语法分析方法。 (X)
26.简单优先文法允许任意两个产生式具有相同右部。 (X)
27.若一个句型中出现了某产生式的右部,则此右部一定是该句型的句柄。(X)
28.一个句型的句柄一定是文法某产生式的右部。 (V)
29.在 SLR(1)分析法的名称中,S的含义是简单的。 (V)
30.综合属性是用于 “ 自上而下 ” 传递信息。 (X)
31.一个算符优先文法可能不存在算符优先函数与之对应。 (V)
32.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。 (V)
33.规范归约和规范推导是互逆的两个过程。 (V)
34.LR分析技术无法适用二义文法。 (X)
35.逆波兰表示法表示表达式时无须使用括号。 (V)
36.逆波兰法表示的表达式亦称后缀式 。 (V)
38.在程序中标识符的出现仅为使用性的。 (X)
设∑为{a,b},则a,ba,{∑},Φ都是∑上的正规式。(X)
对于上下文无关文法G[S],若一定是一条产生式规则,其中
(X)
对于逆波兰后缀式,无论从哪头开始分析均可得到唯一正确的分解。(V)
LR(0)分析法是一种规范归约法。 (V)
算符优先分析法只能用来分析算符优先文法。 (V)
解释程序和编译程序一样,生成目标代码。 (X)
编译程序生成的目标代码只能是机器语言。 (X)
等价文法是指两个文法完全相同。 (X)
对于字母表Σ上的任一NFA M',必存在Σ上与NFA M' 等价的DFA M。(V)
每个文法都能改写为LL(1)文法。 (X)
不存在正规文法能产生语言:
四、简答题
- 什么是句子? 什么是语言?
答:设G是一个给定的文法,S是文法的开始符号,如果
则称x是文法的一个句子。设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为
2、已知文法G[E]为:
E→T|E+T|E-T
T→F|T*F|T/F
F→(E)|i
① 该文法的开始符号(识别符号)是什么?
②请给出该文法的终结符号集合VT和非终结符号集合VN。
③ 找出句型T+T*F+i的所有短语、简单短语和句柄。
答:① 该文法的开始符号(识别符号)是E。
②该文法的终结符号集合VT={+、-、*、/、(、)、i}。
非终结符号集合VN={E、T、F}。
③句型T+T*F+I的句柄为第一个T。
3、已知文法G[S]为:
S→dAB
A→aA|a
B→Bb|ε
① G[S]产生的语言是什么?
② G[S]能否改写为等价的正规文法?
答:① G[S]产生的语言是L(G[S])={da^nb^m│n≥1,m≥0}。
② G[S]能改写为等价的正规文法,其改写后的等价的
正规文法G[Sˊ]为:
Sˊ→dA
A →aA|aB|a
B →bB|b
5、证明下面文法G[N]是二义性文法。
G[N]: N →SE∣E
S →SD∣D
E →0∣2∣10
D →0∣1∣2
- 简述DFA与NFA有何区别 ?
答:
主要区别在于,1.DFA没有ε转换;2.DFA的状态转换函数是单值映射,即当前状态输入一个字符后转换到下一个状态,而NFA的状态转换函数是非单值映射,也就是说当前状态输入一个字符后可以转换到下面N个状态。
- 试给出非确定自动机的定义。
答:
一个非确定的有穷自动机(NFA)M是一个五元组:M=(S,Σ,move,s0 ,F)。
其中:
1. 一个有限的状态集合S;
2. Σ是一个输入符号集合,ε不在Σ中;
3. move是状态转换函数,是在S×Σ*→S的子集的映射,即,
答:① G[S]产生的语言是L(G[S])={da^nb^m│n≥1,m≥0}。
② G[S]能改写为等价的正规文法,其改写后的等价的
正规文法G[Sˊ]为:
Sˊ→dA
A →aA|aB|a
B →bB|b
5、证明下面文法G[N]是二义性文法。
G[N]: N →SE∣E
S →SD∣D
E →0∣2∣10
D →0∣1∣2
- 简述DFA与NFA有何区别 ?
答:
主要区别在于,1.DFA没有ε转换;2.DFA的状态转换函数是单值映射,即当前状态输入一个字符后转换到下一个状态,而NFA的状态转换函数是非单值映射,也就是说当前状态输入一个字符后可以转换到下面N个状态。
- 试给出非确定自动机的定义。
答:
一个非确定的有穷自动机(NFA)M是一个五元组:M=(S,Σ,move,s0 ,F)。
其中:
1. 一个有限的状态集合S;
2. Σ是一个输入符号集合,ε不在Σ中;
3. move是状态转换函数,是在S×Σ*→S的子集的映射,即,
答:① G[S]产生的语言是L(G[S])={da^nb^m│n≥1,m≥0}。
② G[S]能改写为等价的正规文法,其改写后的等价的
正规文法G[Sˊ]为:
Sˊ→dA
A →aA|aB|a
B →bB|b
5、证明下面文法G[N]是二义性文法。
G[N]: N →SE∣E
S →SD∣D
E →0∣2∣10
D →0∣1∣2
- 简述DFA与NFA有何区别 ?
答:主要区别在于,1.DFA没有ε转换;2.DFA的状态转换函数是单值映射,即当前状态输入一个字符后转换到下一个状态,而NFA的状态转换函数是非单值映射,也就是说当前状态输入一个字符后可以转换到下面N个状态。
- 试给出非确定自动机的定义。
答: 一个非确定的有穷自动机(NFA)M是一个五元组:M=(S,Σ,move,s0 ,F)。
其中:
1. 一个有限的状态集合S;
2. Σ是一个输入符号集合,ε不在Σ中;
3. move是状态转换函数,是在S×Σ*→S的子集的映射,即,
表明在某状态下对于某输入符号可能有多个后继状态;
4. s0是唯一的开始状态;
5. F是接受(或终止)状态集合,且F属于S一个子集。
9、为正规式(a|b)*a(a|b) 构造一个等价的确定的有限自动机。
答:
- 构造正规式相应的 NFA : 1(0|1)*101
12、已知文法 G[S] 为:
S→dAB
A→aA|a
B→Bb|ε
G[S] 产生的语言是什么?
- 编译过程一般分为几个阶段?各阶段的输入输出分别为什么?
15、在LL(1)分析法中,LL分别代表什么含义?
答:
第一个L代表从左到右的扫描,第二个L代表每次进行最左推导。
16、文法G为:
S→aAB
A→a
B→ α|β|γ
则判断G为LL(1)文法的条件是:
17、文法G=({A, B, S}, {a, b, c}, P, S)
其中P为:
S→Ac|aB
A→ab
B→bc
该文法是二义的吗?说明理由。
18、文法G=({E}, {+, *, i, (, )}, P, E)其中P为:
E→i
E→E+E
E→E*E
E→(E)
该文法是二义的吗?说明理由。
- 自顶向下分析思想是什么?
答:
从开始符出发导出句型并一个符号一个符号地与给定终结符串进行匹配。如果全部匹配成功,则表示开始符号可推导出给定的终结符串。因此判定给定终结符号串是正确句子。
25、简单优先方法基本思想是什么?
28、语法制导翻译方法的基本思想是什么?
33、给定下列中缀式,分别写出等价的后缀式和四元式(运算符优先级按常规理解)。
(1)(a+b*c)/(a+b)-d