习题库.docx
- 文档编号:24235568
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:86
- 大小:407.81KB
习题库.docx
《习题库.docx》由会员分享,可在线阅读,更多相关《习题库.docx(86页珍藏版)》请在冰豆网上搜索。
习题库
第一章绪论
一、选择题
计算机主要是一种逻辑电子装置,它只能接受用二进制数表示的指令和数构成的程序。
因此,用
(1)编写的程序机器是不能立即执行的,必须通过一个翻译程序的加工,使之转变为与其等价的
(2)程序,机器才能执行。
这种翻译程序,我们称之为“(3)”。
答案
(1)A.低级语言 B.汇编语言 C.机器语言 D.高级语言
(2)A.词法分析 B.语法分析 C.机器语言 D.高级语言
(3)A.源程序 B.目标程序 C.编译程序 D.语义程序
二、应用题
1-1 何谓源程序、目标程序、翻译程序、编译程序和解释程序?
答案
1-2 翻译程序、编译程序和解释程序之间有何种关系?
答案
1-3 一个典型的编译程序通常由哪些部分组成?
答案
答案
(1)D高级语言
(2)C机器语言
(3)C编译程序
1-1 答:
源程序是指以某种程序设计语言所编写的程序。
目标程序是指由编译程序(或解释程序)将源程序处理加工而得的另一种语言(目标语言)的程序。
翻译程序是将某种语言翻译成另一种语言的程序的统称。
如果一个翻译程序的源语言是某种高级语言,其目标语言是相应于某一计算机的汇编语言或机器语言,则称这种翻译程序为编译程序。
解释程序也以源程序作为它的输入,它与编译程序的主要区别是在解释程序的执行过程中不产生目标程序,而是解释执行源程序本身。
1-2 答:
编译程序与解释程序均为翻译程序,但二者工作方法不同。
解释程序的特点是并不先将高级语言程序全部翻译成机器代码,而是每读入一条高级语言程序语句,就用解释程序将其翻译成一段机器指令并执行之,然后再读入下一条语句继续进行解释、执行,如此反复。
即边解释边执行,翻译所得的指令序列并不保存。
编译程序的特点是先将高级语言程序翻译成机器语言程序,将其保存到指定的空间中,在用户需要时再执行之。
即先翻译、后执行。
1-3 答:
一般说来,编译程序主要由词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、代码优化程序、目标代码生成程序、信息表管理程序、错误检查处理程序组成。
第二章前后文无关文法和语言
一、填空题
1.一个文法G[S]可表示成形如
(1)的四元式。
其中VN,VT,P均为非空的有限集,分别称为非终结符号集、终结符号集和产生式集,S∈VN为文法的开始符号。
此外,将出现在各产生式左部和右部的一切符号所组成的集合称为
(2),记作V。
显然,V=VN∪VT,VN∩VT=Æ。
答案
(1)(VN,VT,P,S)
(2)字汇表
2.设G=(VN,VT,P,S)是一文法,α和β是G的字汇表V上的符号串,我们说β是α的直接推导(或α直接产生β),当且仅当α,β可分别写成(3)。
其中,υ,δ∈V*,且U→η∈P。
答案(3)α=υUδ及β=υηδ
3.设G为一文法,α,β是G的字汇表V上的两个符号串,我们说β是α的推导(或α产生β),如果
对于情况(ⅰ),我们称为(4);对于(ⅱ),则称为(5)。
答案(4)0步推导
(5)长度为n的推导
4.设G[S]是一个文法,我们把能由文法的(6)推导出来的符号串α称为G的一个句型。
当句型α仅由(7)组成时(即α∈VT*),则将它称为G产生的句子。
答案(6)开始符号S
(7)终结符号
5.设G[S]是一文法,我们把G产生的(8)所组成的集合称为G产生的语言,且记为L(G) 。
答案(8)全部句子
6.设G为一文法,A→α是G的一个产生式,如果α具有υAδ的形式,其中υ,δ不同时为ε,则称产生式A→α是(9)。
若存在推导
,则称产生式A→α是(10)。
答案(9)直接递归的(10)递归的
7.设G1和G2为两个文法,若它们所产生的语言相等,即(11),则称G1和G2等价。
答案(11)L(G1)=L(G2)
8.我们把能由最左(右)推导推出的句型称为(12)。
答案(12)左(右)句型
9.把最右推导称为(13),而把右句型称为(14)。
答案(13)规范推导(14)规范句型
10.如果对于L(G)中的某个句子w,与w相应的语法树不只一个,也就是说,w有多个不同的最左推导或最右推导,则称这样的文法为(15)。
答案(15)有二义性的文法
11.设αβδ是文法G[S]的一个句型,其中α,δ∈V*,β∈V+,若对于A∈VN有
,则称β是句型αβδ相对于非终结符号A的(16)。
答案(16)短语
12.设αβδ是文法G[S]的一个句型,其中α,δ∈V*,β∈V+,若对于A∈VN有
,则称β是句型αβδ相对于产生式A→β的(17)。
答案(17)直接短语
13.一个句型的最左直接短语(即规范分析中,最先被归约的子串)称之为此句型的(18)。
答案(18)句柄
14.设G=(VN,VT,P,S)是一文法,我们说G中的一个符号X∈VN∪VT是有用的,是指X至少出现在(19)的推导过程中,否则,就说X是无用的。
我们将不含形如A→A的产生式和不含无用符号及无用产生式的文法称为(20)。
答案(19)一个句子(20)已化简的文法
15.若一个1型文法G中的所有产生式有如下的形式:
A→β A∈VN,β∈V+
则称G为2型文法或(21),简记为CFG。
答案(21)前后文无关文法
16.若在一个2型文法G中仅含有形如A→aB或A→a的产生式,其中A,B∈VN,a∈VT,则称G为(22)。
答案(22)右线性方法
17.若在一个2型文法G中仅含有形如A→Ba或A→a的产生式,则称G为(23)。
答案(23)左线性文法
二、选择题
1.下列说法中错误的是____。
答案
A.如果一个文法所产生的某个句子仅有一棵语法树,则称此文法为无二义性的。
B.若一个文法的某个句子有多个不同的最左或最右推导,则称此文法为有二义性的。
C.不存在这样的算法,它能判断任一前后文无关文法是否为二义性文法。
D.若文法G含有既是左递归亦是右递归的非终结符号,则G必定是二义性文法。
2.下列文法中,____不是产生语言{abna∣n≥1}的文法。
答案
A.A→aBa B→b∣bB
B.A→aB B→ba∣bB
C.A→aB B→ba∣bBa
D.A→aB B→bC C→bC∣a
3.设有文法G[S]:
答案
S→aS∣W∣U U→a V→bV∣ac W→aW
则经化简后与G等价的文法G1[S]为____。
A.S→aS∣W V→bV∣ac W→aW
B.S→aS∣U U→a
C.S→aS∣W∣U U→a W→aW
D.S→aS V→bV∣ac
4.文法G产生的____的全体是该文法描述的语言。
答案
A.句型 B.终结符集 C.非终结符集 D.句子
5.若文法G定义的语言是无限集,则文法G必然是____。
答案
A.递归的 B.前后文无关的 C.二义性的 D.无二义性的
6.设有文法G[S]:
答案
S→aAB A→bAc∣ε B→bB∣Ae∣ε
则经消去ε-产生式后与G等价的文法G1[S]为____。
A.S→aA∣aB∣aAB∣a A→bc∣bAc B→bB∣Ae∣b∣e
B.S→aAB A→bAc B→bB∣Ae
C.S→aA∣aB A→bc B→b∣e
D.S→aA∣aB∣a A→bc∣bAc B→bB∣Ae∣b∣e
7.下列文法中,____不是产生语言
的文法。
答案
A.A→aBa B→a∣aBa
B.A→aB B→aa∣Baa
C.A→aAA A→a
D.A→aBB B→a∣aBB
三、应用题
2-1 设有字母表A1 ={a,b,c,…,z},A2 ={0,1,…,9},试回答下列问题:
答案
(1)字母表A1上长度为2的符号串有多少个?
(2)集合A1A2含有多少个元素?
(3)列出集合A1(A1∪A2)*中的全部长度不大于3的符号串。
2-2 试分别构造产生下列语言的文法:
答案
(1){anbn|n≥0};
(2){anbmcp|n,m,p≥0};
(3){an#bn|n≥0}∪{cn#dn|n≥0};
(4){w#wr#|w∈{0,1}*,wr是w的逆序排列};
(5)任何不是以0打头的所有奇整数所组成的集合;
(6)所有由偶数个0和偶数个1所组成的符号串的集合。
2-3 试描述由下列文法所产生的语言的特点:
答案
(1)S→10S0 S→aA A→bA A→a
(2)S→SS S→1A0 A→1A0 A→ε
(3)S→1A S→B0 A→1A A→C
B→B0 B→C C→1C0 C→ε
(4)S→aSS S→a
2-4 试证明文法 答案
S→AB|DC A→aA|a B→bBc|bc C→cC|c D→aDb|ab
为二义性文法。
2-5 对于下列的文法 答案
S→AB|c A→bA|a B→aSb|c
试给出句子bbaacb的最右推导,并指出各步直接推导所得句型的句柄;指出句子的全部短语。
2-6 化简下列各个文法 答案
(1)S→aABS|bCACd A→bAB|cSA|cCC B→bAB|cSB C→cS|c
(2)S→aAB|E A→dDA|e B→bE|f
C→cAB|dSD|a D→eA E→fA|g
(3)S→ac|bA A→cBC B→SA C→bC|d
2-7 消除下列文法中的ε-产生式 答案
(1)S→aAS|b A→cS|ε
(2)S→aAA A→bAc|dAe|ε
2-8 消除下列文法中的无用产生式和单产生式 答案
(1)S→aB|BC A→aA|c|aDb B→DB|C C→b D→B
(2)S→SA|SB|A A→B|(S)|() B→[S]|[]
(3)E→E+T|T T→T*F|F F→P↑F|P P→(E)|i
应用题答案
2-1解:
(1)26*26=676
(2)26*10=260
(3){a,b,c,...,z,a0,a1,...,a9,aa,...,az,...,zz,a00,a01,...,zzz},共有26+26*36+26*36*36=34658个
2-2 解:
(1)对应文法为G(S)=({S},{a,b},{S→ε|aSb},S)
(2)对应文法为G(S)=({S,X,Y},{a,b,c},{S→aS|X,X→bX|Y,Y→cY|ε},S)
(3)对应文法为G(S)=({S,X,Y},{a,b,c,d,#},{S→X,S→Y,X→aXb|#,Y→cYd|#},S)
(4)G(S)=({S,W,R},{0,1,#},{S→W#,W→0W0|1W1|#},S)
(5)G(S)=({S,A,B,I,J},{0,1,2,3,4,5,6,7,8,9},{S→J|IBJ,B→0B|IB|ε, I→J|2|4|6|8,J→1|3|5|7|9},S)
(6)对应文法为S→0A|1B|ε,A→0S|1C,B→0C|1S,C→1A|0B
2-3解:
(1)本文法构成的语言集为:
L(G)={(10)nabma0n|n,m≥0}。
(2)L(G)={1n0n |n≥0}+,该语言特点是:
产生的句子中,0、1个数相同,并且若干相接的1后必然紧接数量相同的连续的0。
(3)本文法构成的语言集为:
L(G)={1p1n0n|p≥1,n≥0}∪{1n0n0q|q≥1,n≥0},特点是具有1p1n0n 或1n0n0q形式,进一步,可知其具有形式{1n0m|n,m≥0,且n+m>0}。
(4)由L(G)={a2n-1|n≥1}可知,该语言特点是:
产生的句子是奇数个a。
2-4 证明:
因为存在句子:
abc,它对应两个最右推导:
S⇒AB⇒ÞAbc⇒abc
S⇒DC⇒Dc⇒abc
所以,本文法具有二义性。
2-5 解:
句子bbaacb的最右推导为:
STAB⇒AaSb⇒Aacb⇒bAacb⇒bbAacb⇒bbaacb
上面推导中,下划线部分为当前句型的句柄。
与句子bbaacb相应的语法树为:
全部的短语为:
第一个a(a
(1))是句子bbaacb相对于非终结符A(A
(1))(产生式A→a)的短语(直接短语);
b
(1)a
(1)是句子bbaacb相对于非终结符A
(2)的短语;
b
(2)b
(1)a
(1)是句子bbaacb相对于非终结符A(3)的短语;
c是句子bbaacb相对于非终结符S
(1)(产生式S→c)的短语(直接短语);
a
(2)cb(3)是句子bbaacb相对于非终结符B的短语;
b
(2)b
(1)a
(1)a
(2)cb(3)是句子bbaacb相对于非终结符S
(2)的短语;
注:
符号的上标是为了描述方便加上去的。
2-6 解:
(1)因为由非终结符号B推导不出终结符号串,因此B是无用符号,含有B的产生式B→Bab,B→cSB,S→aABS和A→bAB都是无用产生式,应予以删除。
因此我们最后得到与原文法等价且不含无用符号及无用产生式的文法为
S→bCACd A→cSA|cCC C→cS|c
(2)因为由文法的开始符号推导不出含有非终结符号C的句型,因此C是无用符号,含有C的产生式C→cAB|dSD|a都是无用产生式,也应予以删除。
因此我们最后得到与原文法等价且不含无用符号及无用产生式的文法为
S→aAB|E A→dDA|e B→f D→eA E→fA|g
(3)因为由非终结符号A,B推导不出终结符号串,因此A,B是无用符号,删除含有A,B的产生式S→Ba,A→cBC和B→SA后得到文法G′[S]:
S→ac C→bC|d
又因为由文法G′[S]的开始符号S推导不出含有非终结符号C的句型,因此C是无用符号,含有C的产生式C→bC|d都是无用产生式,也应予以删除。
因此我们最后得到与原文法等价且不含无用符号及无用产生式的文法G〞[S]为
S→ac
2-7 解:
(1)对于G,我们可得到W={A};再按如下步骤得到产生式集P′:
对于产生式S→aAS,将产生式S→aAS及S→aS放入P′;
对于产生式S→b,直接将产生式S→b放入P′;
对于产生式A→cS,将产生式A→cS放入P′。
于是得到消除ε-产生式后的文法为:
S→aAS|aS|b A→cS
(2)对于G,我们可得到W={A};再按如下步骤得到产生式集P′:
对于产生式S→aAA,将产生式S→aAA及S→Aa和S→a放入P′;
对于产生式A→bAc,将产生式A→bAc及A→bc放入P′;
对于产生式A→dAe,将产生式A→dAe及A→de放入P′。
于是得到消除ε-产生式后的文法为:
S→aAA|aA|a A→bAc|bc|dAe|de
2-8 解:
(1)首先求出如下集合
W(S)={S},W(A)={A},W(B)={B,C},W(C)={C},W(D)={D,B,C}
然后按如下步骤得到产生式集P′:
将P中的所有非单产生式添加到P′中:
S→aB|BC A→aA|c|aDb B→DB C→b
因为C∈W(B),故将C的所有非单产生式的右部作为B-产生式的右部添加到P′中:
B→b
因为B∈W(D),故将B的所有非单产生式的右部作为D-产生式的右部添加到P′中:
D→DB
因为C∈W(D),故将C的所有非单产生式的右部作为D-产生式的右部添加到P′中:
D→b
由此得到消除单产生式后的文法如下:
S→aB|BC
A→aA|c|aDb
B→DB|b
C→b
D→b|DB
因为由文法的开始符号推导不出含有非终结符号A的句型,因此A是无用符号,含有A的产生式A→aA|c|aDb都是无用产生式,应予以删除。
于是得到消除无用产生式和单产生式后的文法如下:
S→aB|BC
B→DB|b
C→b
D→b|DB
(2)首先求出如下集合
W(S)={S,A,B},W(A)={A,B},W(B)={B}
然后按如下步骤得到产生式集P′:
将P中的所有非单产生式添加到P′中:
S→SA|SB A→(S)|() B→[S]|[]
因为A∈W(S),故将A的所有非单产生式的右部作为S-产生式的右部添加到P′中:
S→(S)|()
因为B∈W(S),故将B的所有非单产生式的右部作为S-产生式的右部添加到P′中:
S→[S]|[]
因为B∈W(A),故将B的所有非单产生式的右部作为A-产生式的右部添加到P′中:
A→[S]|[]
由此得到消除单产生式后的文法如下:
S→SA|SB|(S)|()|[S]|[]
A→(S)|()|[S]|[]
B→[S]|[]
(3)首先求出如下集合
W(E)={E,T,F,P},W(T)={T,F,P},W(F)={F,P},W(P)={P}
然后按如下步骤得到产生式集P′:
将P中的所有非单产生式添加到P′中:
E→E+T T→T*F F→P↑F P→(E)|i
因为T,F,P∈W(E),故将T,F,P的所有非单产生式的右部作为E-产生式的右部添加到P′中:
E→T*F E→P↑F E→(E)|i
因为F,P∈W(T),故将F,P的所有非单产生式的右部作为T-产生式的右部添加到P′中:
T→P↑F T→(E)|i
因为P∈W(F),故将P的所有非单产生式的右部作为F-产生式的右部添加到P′中:
F→(E)|i
由此得到消除单产生式后的文法如下:
E→E+T|T*F|P↑F|(E)|i
T→T*F|P↑F|(E)|i
F→P↑F|(E)|i
P→(E)|i
第三章词法分析及词法分析程序
一、填空题
1.我们常采用形如(class,value)的二元式作为一个单词的
(1)。
其中,class是一个整数,用来指示该单词的
(2),value则是单词之值。
答案
2.一个状态转换图是由一组矢线连接的有限个结点所组成的(3)。
每一结点均代表在识别或分析过程中扫描器所处的状态。
其中含有一个(4)和若干个终态,分别指示分析的开始和结束。
答案
3.如果从状态转换图的初态出发,分别沿着一切可能的路径到达(5),并将每条路径各矢线上的(6)依次连接起来,便得到状态转换图所能识别的全部字符串,这些字符串所组成的集合也就是该状态转换图所识别的(7)。
答案
4.我们把一个DFAM所接受的字符串的全体称为M的(8)或M所接受的语言,记为L(M),即L(M)={x|f(S0,x)∈Z,x∈Σ*}。
答案
5.所谓NFA的确定化,是指对任给的一个NFA,都能相应地构造一DFA,使它们有相同的(9)。
答案
6.从某一给定的状态q出发,仅经过若干条(10)的矢线所能达到的状态所组成的集合(我们约定,状态q本身也包含在这个集合之中)称为ε-CLOSURE(q)。
答案
7.所谓一个DFAM状态数的最小化,是指构造一个与DFAM等价的DFAM′,而后者有(11)。
答案
8.设M=(K,Σ,f,S0,Z)为一DFA,并设s和t是M的两个不同状态,我们说状态s,t为某一输入串w(12),是指从s,t中之一出发,当扫视完w之后到达M的终态,但从其中的另一个状态出发,当扫视完同一个w后而进入(13)。
答案
9.如果一个DFA的两个不同的状态s和t不可区分(即对任何输入串w,当且仅当f(s,w)∈Z,f(t,w)∈Z),则称s和t(14)。
答案
10.我们说两个正规式等价,当且仅当它们所描述的(15)相同。
答案
11.方程X=rX+t有形如(16)的解。
答案
12.方程X=Xr+t有形如(17)的解。
答案
13.通常,可通过两种途径来构造词法分析程序。
其一是根据对语言中各类单词的某种描述或定义,用(18)构造词法分析程序;另外一种途径是所谓词法分析程序的(19)。
答案
二、选择题
1.如下的表示形式中,不能用____表示一个确定的有限自动机。
答案
A.状态转换图 B.形如(K,∑,f,S0,Z)的五元式
C.状态转移矩阵 D.形如(op,arg1,arg2,result)的四元式
2.设M为一确定有限自动机,并设s和t是M的两个不同状态。
如果s和t____,则称s和t等价。
答案。
A.不可区分 B.可划分 C.可区分 D.待区分
3.如下的表示形式中,不能表示程序语言中单词结构的是____。
答案
A.左线性文法 B.形如(Class,Value)的二元式
C.正规式 D.正规文法
4.下列说法中正确的是____。
答案
A.一个确定的有限自动机实际上是相应的状态转换图的一种形式描述。
B.一个状态转换图是由一组矢线连接的有限个结点所组成的无回路有向图。
C.所谓一个DFA M状态数的最小化,是指构造一个与之等价的DFA M′,使它们有相同的接受集。
D.对于有同一接受集的FA,与之等价的DFA在同构意义下是唯一的。
三、应用题
3-1 试构造一右线性文法,使得它与如下的文法等价 答案
S→AB A→UT U→aU|a D→bT|b B→cB|c
并根据所得的右线性文法,构造出相应的状态转换图。
3-2 对于如题图3-2所示的状态转换图 答案
(1)写出相应的右线性文法;
(2)指出它接受的最短输入串;
(3)任意列出它接受的另外4个输入串;
(4)任意列出它拒绝接受的4个输入串。
3-3 对于如下的状态转换矩阵:
答案
(1)分别画出相应的状态转换图;
(2)写出相应的3型文法;
(3)用自然语言描述它们所识别的输入串的特征。
3-4 将如下的NFA确定化和最小化:
答案
3-5 将如题图3-5所示的具有ε动作的NFA确定化。
答案
题图3-5 具有ε动作的NFA
3-6 设有文法G[S]:
答案
S→aA A→aA|bB B→bB|cC|c C→cC|c
试用正规式描述它所产生的语言。
3-7 分别构造与如下正规式相应的NFA。
答案
(1)((0*|1)(1*0))*
(2)b|a(aa*b)*b
3-8 构造与正规式(a|b)*(aa|bb)*(a|b)*相应的DFA。
答案
第三章词法分析及词法分析程序答案
1填空
(1)内部表示
(2)类别(3)有向图(4)初始状态(5)终态结点(6)标记字符(7)语言(8)接受集(9)接受集(10)标记为ε(11)最小的状态数(12)所区分(13)非终态(14)等价(15)正规集(16)X=r*t(17)X=tr*(18)手工的方式(19)自动生成
二、选择题
DABA
三、应用题
3-1 解:
根据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题