Vous êtes sur la page 1sur 15

UNIVERSIDAD NACIONAL AUTONOMA DE MÉXICO

FACULTAD DE INGENIERIA

INGENIERIA EN COMPUTACION

LENGUAJES FORMALES Y AUTÓMATAS

TEMA: « FORMA NORMAL DE CHOMSKY»

INTEGRANTES:
BARRANCO SERRANO ISAAC
CORTÉS YAÑEZ ARI-BEN
GONZÁLEZ ESPINOZA DAVID
RAMIREZ CHAVARRÍA ROBERTO GIOVANNI

SEMESTRE 2011-1
FORMA NORMAL DE CHOMSKY

Las gramáticas se pueden expresar de


diferentes formas, en ocasiones podemos llegar
al mismo resultado utilizando gramáticas que
difieren en su estructura, una norma para
estandarizar las gramática es la Forma Normal
de Chomsky.
Forma Normal de Chomsky (CNF):
A BC
A a
donde A, B y C son símbolos no terminales (o
variables)
y α es un símbolo terminal.
Gramáticas Regulares:
A aB
A a
**Teorema:

Si L es un lenguaje independiente del


contexto que no contiene la cadena vacía,
entonces existe una gramática G
independiente del contexto tal que L(G)=L
y el lado derecho de cualquier regla de
reescritura en G consiste en un solo
terminal o exactamente dos no terminales.
Se dice que una gramática cuyas reglas de reescritura se
adhieren a las restricciones del teorema tiene la FORMA
NORMAL DE CHOMSKY (FNC o CNF), llamada así en
honor a Noam Chomsky. Por ejemplo la siguiente gramática
cuyo símbolo inicial es S tiene la forma normal de Chomsky.

S XM
M SY
X x
Y y

Mientras que la siguiente gramática que genera el mismo


lenguaje no la tiene
S xSy
S xy
-PASO 1
-PASO 2
EJEMPLO
FORMA NORMAL DE CHOMSKY
La FNC (Forma Normal de Chomsky) sigue dos reglas
básicas y únicas para tener el formato debido, estás son:

1) Un No Terminal solo puede derivarse en otros dos No


Terminales.

2) Un No Terminal solo puede derivar en un Terminal.

Para la explicación de estas dos propiedades procedemos


con un ejemplo:

Tenemos la siguiente gramática:

A -> cB+
B -> q
Nota: La gramática anterior no tiene ni reglas unitarias ni
reglas no productivas, con lo que procedemos con el paso
3º.

Observemos la primera producción:

A -> cB+

1) Este No Terminal A deriva en cB+ donde como primer


elemento de esta es un elemento Terminal, entonces
procedemos a crear un No Terminal nuevo con este
elemento y se lo agregamos al no Terminal A, respetando
el orden de la gramática.

A -> ZB+
Z -> c
2) Una de las propiedades para la FNC es que un No Terminal
solo puede derivar en otros dos No terminales, en nuestro
ejemplo, tenemos el No Terminal A que deriva en ZB+, este
contiene otro elemento terminal más, creamos un nuevo No
Terminal para respetar la propiedad anteriormente descrita.

A -> ZY
Z -> c
Y -> B+

3) Podemos ver que los No Terminal A y Z cumplen con las


propiedades de la FNC, excepto el No Terminal Y que deriva en
un No Terminal y un Terminal, por lo que procedemos a crear el
último No Terminal que cumpla la FNC.

A -> ZY
Z -> c
Y -> BX
X -> +
Por lo que se obtiene como resultado
FINALMENTE:

A -> ZY
Z -> c
Y -> BX
X -> +
B -> q
Ejemplo