Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
A BC con A,B,C N
A a, con A,B N y a T
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 .
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};
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 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.