Está en la página 1de 10

Forma Normal de

Chomsky
Unidad 5. Analizador sintáctico

• JKS
Es Chomsky cuando…
Una gramática libre de contexto G=(N,T,P,S) se
dice estar en forma normal de Chomsky si sus
producciones son de cualquiera de las dos
formas:

• JKS
Forma Normal de
Chomsky (GFNCH)
Todo lenguaje independiente del contexto que no
posee a la cadena vacía, es expresable por medio de
una gramática en forma normal de Chomsky
(GFNCH) y recíprocamente. Además, dada una
gramática independiente del contexto, es posible
algorítmicamente producir una GFNCH equivalente,
es decir, que genera el mismo lenguaje.

• JKS
Pasos para la transformación de una
gramática a la FNC
• 1º Eliminamos reglas unitarias.
• 2º Eliminamos reglas no productivas
• 3º Se procede a dar el formato correspondiente de la FNC.

• JKS
1º Eliminamos reglas unitarias.
Primero verificamos si en la gramática no hay reglas unitarias que
obstruyan el desarrollo de FNC. Un ejemplo de una regla unitaria seria:

A -> X
X -> z

Como se puede observar, un No Terminal A deriva en otro No Terminal


X, que a su vez deriva en un Terminal z, esto es redundante y por lo
tanto se procede a eliminar el No Terminal X y pasando el Terminal z al
No Terminal A

• JKS
2º Eliminamos reglas
no productivas
Una regla no productiva consiste en un No Terminal que nunca es accesible desde el No
Terminal principal y sus respectivas derivaciones, del mismo o de las que provoquen sus
No Terminal que se encuentren en su propia derivación. Un ejemplo de una regla no
productiva seria:
A -> AZ
W -> X
Z -> c

En el ejemplo anterior el No Terminal W es una regla no productiva porque no es


accesible desde el No Terminal principal que es A, ni de su derivación correspondiente
que es AZ.
Nota: Este paso es omitido en el programa, por lo que no se verifica si un No Terminal
es improductivo, por lo tanto, el usuario debe asegurarse de no introducir éste tipos de
reglas.
• JKS
3º Se procede a dar el formato correspondiente
de la FNC.
• Reglas básicas de la FNC:
• 1) Un No Terminal solo puede derivarse en otros dos No
Terminales.
• 2) Un No Terminal solo puede derivar en un Terminal.

• JKS
ZONA DE
REPASO

S -> aAB
#1
A -> BAb | Ɛ | B S -> aAB | aB B -> BAb | Bb | B
B -> a | b | CD
C -> ba
D -> DD
S -> aAB | aB
B -> BAb | Bb | B
C -> ba
D-> DD

• JKS
ZONA DE
REPASO

S -> aAB | aB
#2
A -> BAb | Bb | B
A -> BAb | Bb | a | b | CD
B -> a| b | CD
C -> ba
D-> DD
S -> aAB | aB
A -> BAb | Bb | a | b | CD
B -> a | b | CD
C -> ba
D -> DD
• JKS
ZONA DE
REPASO
#3
S -> aAB | aB
S -> aAB | aB
A -> BAb | Bb | a | b | CD A -> BAb | Bb | a | b

B -> a | b | CD
C -> ba
D -> DD S -> aAB | aB
A -> BAb | Bb | a |b
B -> a| b

• JKS

También podría gustarte