Documente Academic
Documente Profesional
Documente Cultură
TALF. Tema6
n 2
TALF. Tema6
n 3
despus, o
que nunca se llegue a cadenas terminales.
TALF. Tema6
n 4
Definiciones.
Smbolo muerto (superfluo): es un smbolo no terminal que
no genera ninguna cadena de smbolos terminales.
Smbolo vivo: es un smbolo no terminal del cual se puede
derivar una cadena de smbolos terminales. Todos los
smbolos terminales son smbolos vivos. Es decir son
smbolos vivos lo que no son muertos.
Smbolo inaccesible: es un smbolo no terminal al que no
se puede llegar por medio de producciones desde el smbolo
inicial.
Smbolo accesible: es un smbolo que aparece en una
cadena derivada del smbolo inicial. Es decir, aquel smbolo
que no es inaccesible.
Smbolo extrao: se denomina as a todo smbolo muerto o
inaccesible.
Gramtica sucia: es toda gramtica que contiene smbolos
extraos.
Gramtica limpia: es toda gramtica que no contiene
smbolos extraos.
TALF. Tema6
n 5
TALF. Tema6
n 6
TALF. Tema6
n 7
1.
2.
3.
TALF. Tema6
n 8
TALF. Tema6
n 9
<INICIAL>::= a<NOTER1><NOTER2>|<NOTER1>
<NOTER1>::= c <NOTER2> d
<NOTER2>: := e | f <INICIAL>
<NOTER3>::= g <NOTER4> | h <NOTER4> t
<NOTER4>::= x l y l z
1.
2.
3.
TALF. Tema6
n 10
TALF. Tema6
n 11
Ejemplo:
<INICIAL>::= A <NOTER1> <NOTER2>
<INICIAL>: := <NOTER1>
<NOTER1>::= C <NOTER2> D
<NOTER2>::= E
<NOTER2>::= F <INICIAL>
<NOTER3>::= G <NOTER4>
<NOTER3>::= H <NOTER4> T
<NOTER4>::= X
<NOTER4>::= Y
<NOTER4>::= Z
TALF. Tema6
n 12
TALF. Tema6
n 13
P = P
Repetir
Para cada P=( A P y AS )
P = P- {P}
Para cada P = (B::=xAy) P
P = P {B::=xy}
TALF. Tema6
n 14
Aplicando el algoritmo:
Eliminacin de la regla B::= :
P = {(A::=C0B), (A::=C0) ,(A::=), (B::=BC), (B::=C),
(C::=0B), (C::=0), (C::=)}
Eliminacin de la regla C::= :
P = {(A::=C0B), (A::=0B), (A::=C0) , (A::=0) ,(A::=),
(B::=BC), (B::=C), (B::=B), (B::=), (C::=0B), (C::=0)}
Eliminacin de la regla B::= que ha aparecido de nuevo:
P = {(A::=C0B), (A::=0B), (A::=C0) , (A::=0) ,(A::=),
(B::=BC), (B::=C), (C::=0B), (C::=0)}
Esta ser la gramtica sin reglas regenerativas
n 15
TALF. Tema6
n 16
TALF. Tema6
n 17
TALF. Tema6
n 18
Sea la gramtica G=( N={S, A, B}, T ={a, b}, P, S) cuyas producciones son:
S
A
B
encontrar
bA | aB
bAA | aS | a
aBB | bS | b
una gramtica equivalente en FNC.
(1)
(2)
(3)
(4)
(5)(*)
(6)
(7)
S
S
A
A
A
B
B
(8)(*)
bA
aB
bAA
aS
a
aBB
bS
B b
Solamente las sealadas con (*) estn en forma FNC. La produccin (1) se sustituye por dos:
S CbA
Cb b
S Ca B
Ca a
A CbD1
A Ca S
D1 AA
B C aD 2
D2 BB
B Cb S
TALF. Tema6
n 19
S CbA
S Ca B
A Ca S
A CbD1
A a
B Cb S
B CaD2
B b
D1 AA
D2 BB
Ca a
Cb b
TALF. Tema6
n 20
A a
A a
donde A N, a T N*
A a
A a
donde A N, a T N*
n 21
1.
1. Sacar A B de P.
2. PiP, tq B , aadir A
La notamos como ELIMINAproduccin(A B)
TALF. Tema6
n 22
A a o A
2.
donde A N, a T N*
1. Para k=1,...,m
1. Para j=1,...,k-1
1. PiP, Pi: Ak Aj,
ELIMINARproduccin(Ak Aj)
2. Si Ak Ak entonces ELIMINArecursividad(Ak)
TALF. Tema6
n 23
TALF. Tema6
n 24
Ejemplo:
1.
2.
TALF. Tema6
n 25
1.
2.
3.
4.
5.
6.
7.
S CbA |CaB
A Ca S| CbD1|a
B Cb S| CaD2|b
D1 AA
D2 BB
Ca a
Cb b
Resultado paso 2
1.
2.
3.
S CbA |CaB
A Ca S| CbD1|a
B Cb S| CaD2|b
4.
D1 CaSA| CbD1A| aA
D2 CbSB| CaD2B|bB
5.
6.
7.
D2 CbSB| CaD2B|bB
Ca a
Cb b
Para k=1,...,m
//m=7
1. Para j=1,...,k-1
1. PiP, Pi: Ak Aj,
ELIMINARproduccin(Ak Aj)
2.
No Ak Ak
TALF. Tema6
n 26
1.
i= 2 ELIMINARproduccin(A Ca S| CbD1|a)
A aS| bD1|a
1.
Para k=1,...,m
1. PiP, Pi: Bj Ak, No existen
TALF. Tema6
1.
2.
3.
S CbA |CaB
A Ca S| CbD1|a
B Cb S| CaD2|b
4.
D1 CaSA| CbD1A| aA
5.
6.
7.
D2 CbSB| CaD2B|bB
Ca a
Cb b
1.
2.
3.
Resultado paso 3
S bA |aB
A aS| bD1|a
B bS| aD2|b
4.
D1 aSA| bD1A| aA
5.
6.
7.
D2 bSB| aD2B|bB
Ca a
Cb b
n 27
1. S bA |aB
1. S bA |aB
2. A aS| bD1|a
2. A aS| bD1|a
3. B bS| aD2|b
3. B bS| aD2|b
4. D1 aSA| bD1A| aA
4. D1 aSA| bD1A| aA
5. D2 bSB| aD2B|bB
5. D2 bSB| aD2B|bB
6. Ca a
7. Cb b
Si ahora la limpiamos:
Simbolos vivos:
todos
Smbolos accesibles:
S, A, B, D1, D1
Eliminamos C1,C2
TALF. Tema6
Equivalente a:
1. S bA | aB
2. A bAA | aS | a
3. B aBB | bS | b
n 28