Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema6 PDF
Tema6 PDF
TALF. Tema6 nº 2
6.1. Gramáticas independientes del contexto.
Gramáticas limpias
TALF. Tema6 nº 3
6.2. Limpieza de Gramáticas Independientes del contexto.
TALF. Tema6 nº 4
6.3. Gramáticas limpias y gramáticas sucias.
Definiciones.
Símbolo muerto (superfluo): es un símbolo no terminal que
no genera ninguna cadena de símbolos terminales.
Símbolo vivo: es un símbolo no terminal del cual se puede
derivar una cadena de símbolos terminales. Todos los
símbolos terminales son símbolos vivos. Es decir son
símbolos vivos lo que no son muertos.
Símbolo inaccesible: es un símbolo no terminal al que no
se puede llegar por medio de producciones desde el símbolo
inicial.
Símbolo accesible: es un símbolo que aparece en una
cadena derivada del símbolo inicial. Es decir, aquel símbolo
que no es inaccesible.
Símbolo extraño: se denomina así a todo símbolo muerto o
inaccesible.
Gramática sucia: es toda gramática que contiene símbolos
extraños.
Gramática limpia: es toda gramática que no contiene
símbolos extraños.
TALF. Tema6 nº 5
6.4. Limpieza de gramáticas
TALF. Tema6 nº 6
6.4. Limpieza de gramáticas
TALF. Tema6 nº 7
6.4. Limpieza de gramáticas. Ejemplo.
TALF. Tema6 nº 8
6.4. Limpieza de gramáticas
TALF. Tema6 nº 9
6.4. Limpieza de gramáticas. Ejemplo.
TALF. Tema6 nº 10
6.4. Limpieza de gramáticas.
símbolos inaccesibles
TALF. Tema6 nº 11
6.4. Limpieza de gramáticas. Ejemplo.
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
El analizador indicará que la gramática no es limpia. La relación de
símbolos no accesibles: NOTER3 y NOTER4.
TALF. Tema6 nº 12
6.5 Gramáticas bien formadas
1. Está limpia.
TALF. Tema6 nº 13
6.5 Gramáticas bien formadas
Repetir
Para cada P=( A P´ y A≠S )
P´ = P´- {P}
Para cada P´ = (B::=xAy) P´
P´ = P´ {B::=xy}
TALF. Tema6 nº 14
6.5 Gramáticas bien formadas. Ejemplo.
Ejemplo:
P = {(A::=C0B), (A::=), (B::=BC), (B::=), (C::=0B), (C::=)}
Aplicando el algoritmo:
Eliminación de la regla B::= :
P = {(A::=C0B), (A::=C0) ,(A::=), (B::=BC), (B::=C),
(C::=0B), (C::=0), (C::=)}
Eliminación 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)}
Eliminación 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 gramática sin reglas regenerativas
Par eliminar las reglas de redenominación (A::=B) se
genera una nueva producción A::= por cada regla B::=,
con * y se borra la regla A::=B.
TALF. Tema6 nº 15
6.6. Formas Normales de Gramáticas Independientes del contexto.
TALF. Tema6 nº 16
6.6.1. Forma Normal de Chomsky (FNC)
TALF. Tema6 nº 17
6.6.1. Forma Normal de Chomsky (FNC)
TALF. Tema6 nº 18
6.6.1. Forma Normal de Chomsky (FNC). Ejemplo.
Sea la gramática G=( N={S, A, B}, T ={a, b}, P, S) cuyas producciones son:
S bA | aB
A bAA | aS | a
B aBB | bS | b
encontrar una gramática equivalente en FNC.
las reglas pueden reescribirse:
(1) S bA
(2) S aB
(3) A bAA
(4) A aS
(5)(*) A a
(6) B aBB
(7) B bS
(8)(*) B b
Solamente las señaladas con (*) están en forma FNC. La producción (1) se sustituye por dos:
S CbA
Cb b
Igualmente la (2) puede sustituirse por
S Ca B
Ca a
Las producciones (3) y (4) se sustituyen por
A CbD1 D1 AA
A Ca S
y la (6) y la (7) por
B C aD 2
D2 BB
B Cb S
TALF. Tema6 nº 19
6.6.1. Forma Normal de Chomsky (FNC). Ejemplo.
TALF. Tema6 nº 20
6.6.2. Forma Normal de Greibach (FNG)
TALF. Tema6 nº 21
6.6.2. Forma Normal de Greibach (FNG)
TALF. Tema6 nº 22
6.6.2. Forma Normal de Greibach (FNG)
TALF. Tema6 nº 23
6.6.2. Forma Normal de Greibach (FNG)
TALF. Tema6 nº 24
6.6.2. Forma Normal de Greibach (FNG). Ejemplo.
Ejemplo:
1. Partimos de la gramática en FNC del ejemplo anterior:
1. S CbA |CaB
2. A Ca S| CbD1|a
3. B Cb S| CaD2|b
4. D1 AA
5. D2 BB
6. Ca a
7. Cb b
2. Tomamos el orden anterior para ∑N ={S=A1…}. Poner las
producciones en la forma: AiAj, con j>i.
TALF. Tema6 nº 25
6.6.2. Forma Normal de Greibach (FNG)
TALF. Tema6 nº 26
6.6.2. Forma Normal de Greibach (FNG)
TALF. Tema6 nº 27
6.6.2. Forma Normal de Greibach (FNG)
Si ahora la limpiamos: 1. S bA | aB
Simbolos vivos: 2. A bAA | aS | a
todos 3. B aBB | bS | b
Símbolos accesibles:
S, A, B, D1, D1
Eliminamos C1,C2
TALF. Tema6 nº 28