第二章复习题
单选
-
对于文法G[Z],已知u是句型,则判断(D)是正确的。
A 只要使用规范推导,无论如何一定可以从Z推导出u
B 只要依据产生式进行规范归约,则u一定可以归约成Z
C 上面的A和B都是对的
D 上面的A和B都是错的
-
由“非终结符–>符号串”这种产生式构成的文法是(C)。
A 0型语法
B 1型文法
C 2型文法
D 3型文法
-
二义文法是指(D)。
A 对应于两棵不同语法树的文法
B 对应于两种不同推导的文法
C 文法中任何一个非终结符,都存在以它为左部的两个不同产生式
D A、B、C都是错的
-
文法G[Z]和语言L(G[Z])存在如下关系:(C)。
A 一一对应,一个文法对应唯一的语言,并且,一个语言对应唯一的文法
B 一个语言对应唯一的文法,反之则不然
C 一个文法对应唯一的语言,反之则不然
D 若为非二义文法,则C正确;若为二义文法,则一个文法不对应唯一的语言
-
关于短语和句柄,正确的论述是(B)。
A 短语就是句柄
B 直接短语才可能是句柄
C 最左短语一定是句柄
D 最右短语一定是句柄
-
若一个文法是递归的,则它产生的句子个数是(A)。
A 无穷个
B 可能有限个,可能无穷个
C 有限个
-
正则文法(A)二义性的。
A 可以是
B 一定不是
C 一定是
-
一个语言的文法是(B)。
A 唯一的
B 不唯一的
C 个数有限的
D 无数个
-
文法识别符号经过人一步推导得到的结果是(A)。
A 句型
B 句柄
C 句子
D 短语
-
文法分为四种类型:0型文法、1型文法、2型文法、3型文法,其中3型文法是(B)。
A 短语文法
B 正规文法
C 上下文有关文法
D 上下文无关文法
-
在编译中产生语法树是为了(A)。
A 语法分析
B 语义分析
C 词法分析
D 目标代码生成
-
一个上下文无关文法包含四个部分,一组非终结符,一组终结符,一个开始符号以及一组(C)。
A 句子
B 句型
C 产生式
D 单词
-
自下而上的语法分析中,应从(C)开始分析。
A 开始符号
B 句柄
C 句子
D 句型
多选
-
如果一个文法是二义文法,必然有(ABCD)的现象存在。
A 文法的某一个句子存在两颗或两棵以上的语法树
B 对于文法的某一个句子,存在两种或两种以上的最左(最右)推导
C 对于文法的某一个句子,存在两种或两种以上的最左(最右)规约
D 在进行规约时,文法的某些规范句柄不唯一
-
给定语法A–>bAcc|ε,下面的符号串中为该文法的句子是(AE)。
A bcc
B bcbc
C bcbcc
D bccbcc
E bbccc
简答
1.写出C语言和Java语言的输入字母表。
- C语言:0~9数字,大小写英文字母,键盘上可见的字符
- Java语言:Unicode可以包括的所有字符
2.文法
G为
N→D∣ND
D→0∣1∣2∣3∣4∣5∣6∣7∣8∣9
(1)
G的语言是什么?
-
G的语言是:0~9的数字组成的任意非空串
L(G)={x∣x∈{0,1,2,3,4,5,6,7,8,9}+}
(2)给出句子0127、34、568的最左推导和最右推导。
N⇒ND
⇒NDD
⇒NDDD
⇒DDDD
⇒0DDD
⇒01DD
⇒012D
⇒0127
理解:
N⇒ND是对
N中的最左非终结符
N进行了替换,替换成了
ND;
ND⇒NDD是对
ND中的最左非终结符
N进行了替换,替换成了
ND;
后面的同理。
最右推导:
N⇒ND
⇒N7
⇒ND7
⇒N27
⇒ND27
⇒N127
⇒D127
⇒0127
理解:
N⇒ND是对
N中的最右非终结符
N进行了替换,替换成了
ND;
ND⇒N7是对
ND中的最右非终结符
D进行了替换,替换成了
7;
后面的同理。
3.写一文法,使其语言是奇数集。要求:不以0打头。
- 只有一位数的情况:
D→1∣3∣5∣7∣9
- 复杂的情况:分三部分
末尾:以1|3|5|7|9结尾,
D→1∣3∣5∣7∣9
开头:除了0的任意数字,
B→2∣4∣6∣8∣D
中间:空或者任意数字串,
C→CA∣ε
- 最终答案:文法
G(N)为:
N→BCD∣D
D→1∣3∣5∣7∣9
B→2∣4∣6∣8∣D
C→CA∣ε
A→0∣B
4.证明文法:
S→iSeS∣iS∣i是二义的。
首先:找到此文法对应的一个句子,
iiiei
然后:构造与之对应的两颗语法树
5.给出下面语言的相应文法
-
L1={anbnci∣n≥1,i≥0}
从
n,
i的不同区直来把
L1分成两部分:
- 前半部分是
anbn:
A→aAb∣ab
- 后半部分是
ci:
B→Bc∣ε
即
G1[S]可以写为:
S→AB
A→aAb∣ab
B→cB∣ε
-
L2={aibncn∣n≥1,i≥0}
G2[S]:
S→AB
A→aA∣ε
B→bBc∣bc
-
L3={anbnambm∣m,n≥0}
G3[S]:
A→AB
A→aAb∣ε
B→aBb∣ε
-
L4={1n0m1m0n∣n,m≥0}
可以看成是两部分:
- 中间部分是
0m1m:
A→0A1∣ε
- 剩下两边的部分是:
S→1S0∣A
G4[S]:
S→1S0∣A
A→0A1∣ε