Sunteți pe pagina 1din 8

B2 - Seminar 6

​Expresii regulate pt limbajele:

L = {w din {a,b,c}* | fiecare al 3-lea simbol din w este c}

((a|b|c)(a|b|c)c)* ( epsilon| (a|b|c) | (a|b|c)(a|b|c) )


( (a|b|c|eps)(a|b|c|eps) )

(p|eps)(p|eps) = ​n un ! peste tot​}


(!(!)*(0|1)*11(0|1)*) (!(!)*(0|1)*11(0|1)*)* !(!)*

(!​n​ u)​

k ​
k>=1

a​n ​n>=1 = aa​*

Eliminarea simbolurilor inutile din gramatici (obtinerea


formei reduse pt o gramatica data)

1. ​S → axz|yb
2. ​x → ax|z
3. ​y → yx|yz
4. ​z → az|a
Simbol productiv: X=>​*​w , w din T​*​ ​ , X neterminal
Simbol accesibil:X fie terminat, fie neter1minal, S=>​*
uXv
Simbol util daca este productiv si accesibil.
Productive:

N​0​ = ​∅
N1= ​∅ U {z}
N2= {z}U{x}
N3={z,x}U{S}
N4={S,x,z}U ∅ = N3 = N​’​ = multimea simbolurilor
productive
y este simbol neproductiv
Gramatica obtinuta:
1. ​S → axz
2. ​x → ax|z
3. ​z → az|a

Accesibile:
V0={S}
V1= {S}U{a, x, z}
V2={S,a,x,z}U​∅ = V1 = multimea simboluriloe accesibile
In aceasta gramatica toate simbolurile sunt accesibile, nu
avem nimic de eliminat

Eliminati simbolurile inutile din urmatoarea gramatica (si


obtineti gramatica in forma redusa echivalenta)
S → ax​1b

– ​x1​ ​→ bx​1​|x​2​x5​ c|x


​ ​3x​ 4​
– ​x2​ ​→ x​2​x3​
– ​x3​ ​→ x​3​ab|ab
– ​x4​ ​→ x​3​ac
– ​x5​ →
​ d

N0 = ​∅
N1 = ∅ U {X3,X5}
N2 = {X3,X5} U {X4}
N3 = {X3,X4,X5}U{X1}
N4 = {X1,X3,X4,X5}U{S}
N5 = N4 = multimea simbolurilor productive
X2 - simbol neproductiv
Gramatica echivalenta:
S → ax1​ b​

– ​x1​ →
​ bx1​ |x
​ ​ x​ ​4
3

– ​x​3 →
​ x​3ab|ab

– ​x4​ → ​ x3​ ac​

– ​x​5 →
​ d

Simboluri accesibile:
V0 = {S}
V1 = {S} U {a,X1,b}
V2 = {S,a,X1,b} U {X3,X4}
V3 = {S,a,X1,b,X3,X4} U {c}
V4 = V3 = multimea simbolurilor accesibile
{X5,d} -> simbol neaccesibil
Gramatica echivalenta in forma redusa:
S→ aX1b
X1→ bX1 | X3X4
X3 → X3ab | ab
X4 → X3ac

Eliminarea regulilor de stergere (cu ​𝜀)​ din gramatici


S → axbyz
x → ax|y
y → by|​𝜀
z → cz|c
Determinam N𝜀

N0= {y}
N1={y}U{x}
N2={x,y}= N1 = N𝜀

S → a​x​b​y​z
S-> abyz | axbz| abz
x → a​x​|​y
x-> a
y → b​y
Y -> b
z → cz|c

Eliminati regulile cu epsilon din gramatica:


S → axyz
x → atz | ​𝜀
y → by | z
z → xt | b
t → ​𝜀​ | b​t
N0={x, t}
N1={x, t} U {z}
N2= {x, t, z} U {y}
N3= {x, y, z, t}=N2 = N​𝜀

S → a​xyz
S -> axy | axz | ayz | ax | ay | az | a
x → a​tz
X -> at | az | a
y → b​y​ | ​z
Y -> b
z → ​xt​ | b
Z -> x | t
t → ​b​t
T -> b

Eliminarea redenumirilor din gramatici

x → ax|y
y → by|cz
z → cz|x|a

N​x​ ={x,y}
N0={x}, N1={x}U{y}, N2={x,y}=N1

N​y​ ={ y}
N0={y}, N1={y}U{}, N2={y}=N1

N​z​ ={x,y, z}

N0={z}, N1={z}U{x}, N2={y,x}U{y}, N3={x,y,z}=N2

x → ax|​ by| cz
y → by | cz
z → cz|a |​ ax​|​ by| cz

S-ar putea să vă placă și