编译原理:正规文法与正规式
Posted zhif97
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译原理:正规文法与正规式相关的知识,希望对你有一定的参考价值。
1.分别写出描述以下语言的正规文法和正规式:
L1={abna|n≥0}。
L2={ambn|n≥1,m ≥1}
L3={(ab)n|n≥1}
解析:
(1)设文法G(S)={abna|n≥0}
正规文法:
S → aA
A → Ba
B → bn
B → bB|ε
正规式:
B = ε + bB = b*
A = Ba = b*a
S = ab*a
(2)设文法G(S)={ambn|n≥1,m ≥1}
正规文法:
S → AB
A → aA|a
B → bB|b
正规式:
A = aA + a = a*a
B = bB + b = b*b
S = AB = aa*bb*
(3)设文法G(S)={(ab)n|n≥1}
正规文法:
S → ab|abS
正规式:
S = ab + abS = ab(1+ S) = ab(ab)*
2.将以下正规文法转换到正规式
Z → 0A
A → 0A|0B
B → 1A|ε
(1)解析:
正规式:
A = 0A|0B = 0A + 0B
= 0A +0(1A + ε)
= 0A+01A+0ε
= 0A + 01A +0
= (0 + 01) A + 0
= (0101)*0
z = 0A = 0(0|01)*0
Z → U0|V1
U → Z1|1
V → Z0|0
(2)解析:
正规式:
Z=U0+V1,U=Z1+1,V=Z0+0
Z=(Z1+1)0+(Z0+0)1
=Z10+10+Z01+01
=Z(10+01)+10+01
=(10|01)*(10|01)
S → aA
A → bA|aB|b
B → aA
(3)解析:
正规式:
S=aA,A=bA+aB+b,B=aA
A=bA+aaA+b
=(b+aa)A+b
S=a(b|aa)*b
I → l|Il|Id
(4)解析:
正规式:
I=l+Il+Id
=I(l+d)+l
=(l|d)*l
以上是关于编译原理:正规文法与正规式的主要内容,如果未能解决你的问题,请参考以下文章
编译原理—词法分析构建DFA上下文无关文法LL分析提取正规式