形式语言与自动机 第四章 课后题答案

形式语言与自动机 第四章 课后题答案
考点:文法⇒推导树

解:(1)
形式语言与自动机 第四章 课后题答案
(2)
形式语言与自动机 第四章 课后题答案
(3)
形式语言与自动机 第四章 课后题答案

形式语言与自动机 第四章 课后题答案
考点:文法⇒最左/右推导

解:最左推导:ElmE+TlmT+TlmF+Tlmb+Tlmb+T/Flmb+F/Flmb+b/Flmb+b/bE⇒_{lm} E+T⇒_{lm} T+T⇒_{lm} F+T⇒_{lm} b+T⇒_{lm} b+T/F⇒_{lm} b+F/F⇒_{lm} b+b/F⇒_{lm} b+b/b

最右推导:ErmE+TrmE+T/FrmE+T/brmE+F/brmE+b/brmT+b/brmF+b/brmb+b/bE⇒_{rm} E+T⇒_{rm} E+T/F⇒_{rm} E+T/b⇒_{rm} E+F/b⇒_{rm} E+b/b⇒_{rm} T+b/b⇒_{rm} F+b/b⇒_{rm} b+b/b

形式语言与自动机 第四章 课后题答案
考点:文法二义性证明
解:画出语言 aaabaaaaba 的2颗推导树如下:
形式语言与自动机 第四章 课后题答案
形式语言与自动机 第四章 课后题答案
同一文法可画出2个不同的推导树,因此该文法具有二义性。

形式语言与自动机 第四章 课后题答案
考点:语言⇒上下文无关文法(设计上下文无关文法)

解:(1)考虑在产生相同数目的0,1后,再生成多余的1.
G=({S},{0,1},P,S)G=(\{S\},\{0,1\},P,S),其中P为:S1S01S10S→1S0|1S|10

(2)考虑将0和1的部分拆开G=({S,A},{0,1},P,S)G=(\{S,A\},\{0,1\},P,S),其中P为:
S1A11S1S→1A1|1S1
A00A00A→00A|00(服务 02m0^{2m}

(3)考虑将语言拆为2部分G=({S,A,B},{0,1},P,S)G=(\{S,A,B\},\{0,1\},P,S),其中P为:
SABS→AB(拆为2部分)
A1A010A→1A0|10
B1B010B→1B0|10

形式语言与自动机 第四章 课后题答案
考点:消除无用符号

解:(1)首先使用算法1,得到非生成符号C,删去C及其生成式有:
SEDS→ED
DaD→a
EbE→b

使用算法2,发现没有不可达符号,因此等价文法为:G=({S,D,E},{a,b},P,S)G=(\{S,D,E\},\{a,b\},P,S),其中P:
SEDS→ED
DaD→a
EbE→b

(2)首先使用算法1,得到非生成符号C,删去C及其生成式有:
SDS→D
DbSbD→bS|b
EDSbE→DS|b

使用算法2,发现不可达符号E,删去E及其生成式。因此等价文法为:G=({S,D}.{b},P,S)G=(\{S,D\}.\{b\},P,S),其中P:
SDS→D
DbSbD→bS|b

形式语言与自动机 第四章 课后题答案
考点:消空产生式

解:根据算法得,可得致空符号有:DECSD、E、C、SSS 也为致空符号,因此加入 S1SεS_1→S|ε,对于 SDCES→DCE 有:SDCECEDEDCDCES→DCE|CE|DE|DC|D|C|E。因此消空后的等价文法为:G1=({S1,S,C,D,E},{a,b},P,S1)G_1=(\{S_1,S,C,D,E\},\{a,b\},P,S_1),其中 PP
S1SεS_1→S|ε
SDCECEDEDCDCES→DCE|CE|DE|DC|D|C|E
DCCCD→CC|C
CEEEbC→EE|E|b
EDDDaE→DD|D|a

形式语言与自动机 第四章 课后题答案
考点:简化CFG(消无用→消空→消单→消无用 )

解:首先消无用符号,利用算法1发现没有非生成符号,再利用算法2也没有发现不可达符号。

再消致空符号,利用算法发现所有符号都为致空符号。SS 为致空符号,因此将 S1SεS_1→S|ε 加入P,P变为:
S1SεS_1→S|ε
SA1A2S→A_1 |A_2
A1A3A4A_1→A_3 |A_4
A2A4A5A_2→A_4 |A_5
A3SbA_3→S|b
A4SaA_4→S|a
A5SdA_5→S|d

再消除单产生式,构造 NS,NAi,i=1,2,3,4,5N_S,N_{A_i},i=1,2,3,4,5,产生式的关系如下图:
形式语言与自动机 第四章 课后题答案
因此P为:
S1abdεS_1→a|b|d|ε
SabdS→a|b|d
A1abdA_1→a|b|d
A2abdA_2→a|b|d
A3abdA_3→a|b|d
A4abdA_4→a|b|d
A5abdA_5→a|b|d

最后消去无用符号,利用算法1发现没有非生成符号;再用算法2发现只有 S1S_1 为可达符号,删去其他符号及其产生式得到文法 G1=({S1},{a,b,d},P,S1)G_1=(\{S_1 \},\{a,b,d\},P,S_1),其中P为 S1abdεS_1→a|b|d|ε

形式语言与自动机 第四章 课后题答案
考点:转换为CNF(Chomsky范式)

解:首先删除无用符号,利用算法1发现没有非生成符号,再利用算法2发现没有不可达符号;
再删除致空符号,利用算法发现S为致空符号,将 S1εSS_1→ε|S加入到P中,此时P为:
S1εSS_1→ε|S
SASBABS→ASB|AB
AaASaAaA→aAS|aA|a
BSBSSBBSAbbB→SBS|SB|BS|A|bb

再消单产生式,单产生式有:S1S,BAS_1→S,B→A,因此此时P变为:
S1εASBABS_1→ε|ASB|AB
SASBABS→ASB|AB
AaASaAaA→aAS|aA|a
BSBSBSSBbbaASaAaB→SBS|BS|SB|bb|aAS|aA|a

再消去无用符号,利用算法1、2发现没有无用符号。
最后转换为CNF:对 S1εAB,SAB,Aa,BBSSBaS_1→ε|AB,S→AB,A→a,B→BS|SB|a 为CNF,加入到P中。
S1ASBS_1→ASB 变换为 S1AC,CSBS_1→AC,C→SB
SASBS→ASB 变换为 SACS→AC
AaASaAA→aAS|aA 变换为 AEDAEADASEaA→ED,A→EA,D→AS,E→a
BSBSaASaAbbB→SBS|aAS|aA|bb 变换为 BCSBEDBEABFFFbB→CS,B→ED,B→EA,B→FF,F→b

由此得到文法 G1=({S1,S,A,B,C,D,E,F},{a,b},P1,S1)G1=(\{S_1,S,A,B,C,D,E,F\},\{a,b\},P_1,S_1),其中 P1P_1 为:
S1ABεACS_1→AB|ε|AC
SABACS→AB|AC
AEDEAaA→ED|EA|a
BBSSBaCSEDEAFFB→BS|SB|a|CS|ED|EA|FF
CSBC→SB
DASD→AS
EaE→a
FbF→b
形式语言与自动机 第四章 课后题答案
考点:转换为CNF(Chomsky范式)

解:先消除无用符号,利用算法1、2发现没有无用符号;再消致空符号,利用算法发现致空符号为A,B,因此P变为:
S0BB0B1AA1A01S→0BB|0B|1AA|1A|0|1
B0B000B→0B0|00
A11A11A→11A|11

此时没有单产生式和无用符号,转换为CNF:S01S→0|1为CNF,加入到P中
S0BBS→0BB 变换为 SCBCDBD0S→CB,C→DB,D→0
S0BS→0B 变换为 SDBS→DB
S1AAS→1AA 变换为 SEAS→EAEFAE→FAF1F→1
S1AS→1A 变换为 SFAS→FA
B0B0B→0B0 变换为 BCDB→CD
B00B→00 变换为 BDDB→DD
A11AA→11A 变换为 AFEA→FE
A11A→11 变换为 AFFA→FF

由此得到的文法为:G1=({S,A,B,C,D,E,F,G},{0,1},P1,S)G1=(\{S,A,B,C,D,E,F,G\},\{0,1\},P_1,S),其中 P1P_1 如下:
SCBDBEAFA01S→CB|DB|EA|FA|0|1
AFEFFA→FE|FF
BCDDDB→CD|DD
CDBC→DB
D0D→0
EFAE→FA
F1F→1

形式语言与自动机 第四章 课后题答案
考点:转换为GNF(Greibach范式)

解:题给产生式为CNF,N排序为 S,DS,D,其中D为高位,第2个式子右边首符序号>左边的N,需要变换,将1式代入2式中有:DDDSaSbD→DDS|aS|b

消除直接左递归,DaSbasDbD,DDSDSDD→aS|b|asD'|bD',D'→DS|DSD'

进行回代,此时N排序为 D,S,DD',S,D,其中D为高位:
DD’ 回代入SSSaSDbDaSDDbDDaS→aSD|bD|aSD'D|bD'D|a
DD 回代入DD’DaSSbSasDSbDSaSSDbSDasDSDbDSDD'→aSS|bS|asD'S|bD'S|aSSD'|bSD'|asD' SD'|bD'SD'

形式语言与自动机 第四章 课后题答案
考点:
解: