Está en la página 1de 4

TEORA DE AUTMATAS Y LENGUAJES

FORMALES
Prctica 6 - Forma Normal de Chomsky
1. Introduccin
2. Forma Normal de Chomsky
3. Actividades propuestas

1. Introduccin.
Como ya conocemos, existen gramticas de muy diferentes formas que generan un
mismo lenguaje. El hecho de no restringir la forma de las reglas de tipo 2 tiene inters en
los casos en que se desea disear una gramtica para un lenguaje dado. Sin embargo,
cuando se desea desarrollar demostraciones de ciertas propiedades de los lenguajes
incontextuales o se desea desarrollar algoritmos eficientes que operen sobre gramticas
incontextuales, interesa imponer ciertas restriciones en las formas de las reglas de la
gramtica. Para ello se introducen las definiciones y los algoritmos de obtencin de las
formas normales para las gramticas incontextuales. En concreto, vamos a estudiar la
conocida como Forma Normal de Chomsky (FNC).
El objetivo principal de esta prctica es el estudio e implementacin de los algoritmos
que permiten obtener una gramtica incontextual en FNC a partir de una gramtica
incontextual sin -reglas ni reglas simples

2. Forma Normal de Chomsky.


Definicin de la Forma Normal de Chomsky
Diremos que una gramtica incontextual G=(N,T,P,S) que no genera la cadena
vaca, est en FNC cuando todas sus reglas son de la forma:
{
{

A BC con A,B,C N
A a, con A,B N y a T

Teorema. Todo lenguaje incontextual L que no incluye la cadena vaca, es generado


por una gramtica en FNC.

Algoritmo para la obtencin de gramticas en FNC


Entrada: G=(N,T,P,S) (sin producciones unitarias ni vacas)
Salida: G=(N'',T,P'',S)
Mtodo:

PASO 1
N'=N; P'=;
Para toda regla (A ) de P hacer
Si ||=1
entonces aadir la regla a P' (*ya esta en FNC*)
Sino sea =X1X2...Xm con m > 1
Para i=1 hasta m hacer
Si Xi=a
Entonces se aade a N' un nuevo no
terminal Ca y se aade a P' una nueva
regla (Ca a)
finsi
finpara
Se aade a P' una regla (A X'1X'2...X'm)
con:
X'i=Xi si Xi N
X'i=Ca si Xi = a

finSi
finPara
NOTA: al finalizar el PASO 1 todas las reglas de la
gramtica resultante G'=(N',T,P',S) presentarn la forma:
Aa
A B1B2...Bm
con A N', Bi N' 1<= i<= m, a .

Diremos que esta gramtica G' est en Forma Normal de


Chomsky intermedia.

PASO 2
(*Se toma como entrada la gramtica G' resultante del
PASO 1*)
N''=N'; P''=;
Para toda regla (A ) de P' hacer
Si || < 3
Entonces aadir la regla a P'' (*ya esta en FNC*)
Sino sea = B1B2 ...Bm con m > 2
Aadir a N' los no terminales { D1, D2, ..., Dm2};

Aadir a P'' el siguiente conjunto de reglas:


A B1D1
D1 B2D2
...
Dm-3 Bm-2Dm-2
Dm-2 Bm-1Dm;
finSi
finPara
La gramtica resultado es G''=(N'',T,P'',S).
fin_del_Mtodo

Ejemplo
Sea la gramtica incontextual G definida por las siguientes reglas:
S bA | aB
A bAA | aS | a
B aBB | bS | b
Tras la aplicacin del PASO 1 se obtiene la gramtica en FNC intermedia G':
S CbA | CaB

A CbAA | CaS | a
B CaBB | CbS | b

Ca a

Cb b

A partir de G', tras el PASO 2 se obtiene la gramtica en FNC G'':


S CbA | CaB

A CbD1 | CaS | a
D1 AA

B CaD2 | CbS | b

D2 BB
Ca a

Cb b

3. Actividades propuestas.

Actividad 1
Desarrollar un mdulo Mathematica que a partir de un gramtica incontextual de entrada
sin -reglas ni reglas simples, obtenga una gramtica de salida en FNC intermedia
(resultado del PASO 1 del algoritmo propuesto).
Actividad 2
Desarrollar un mdulo Mathematica que a partir de una gramtica en FNC intermedia de
entrada obtenga como salida una gramtica en FNC.
Actividad 3
Aplicar los anteriores mdulos para obtener la gramtica en FNC correspondiente a la
gramtica del ejemplo.

También podría gustarte