forma normal de greibach

18
FACULTAD DE INGENIERIAS: ELECTRICA, ELECTRONICA Y CIENCIAS DE LA COMPUTACIÓN Programa De Ingeniería De Sistemas Estructura de Lenguajes FORMA NORMAL DE GREIBACH Nelson Rivera

Upload: nelson-rivera-mercado

Post on 02-Jul-2015

368 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Forma Normal de Greibach

FACULTAD DE INGENIERIAS: ELECTRICA, ELECTRONICA Y

CIENCIAS DE LA COMPUTACIÓN

Programa De Ingeniería De Sistemas

Estructura de Lenguajes

FORMA NORMAL DE GREIBACH

Nelson Rivera

Page 2: Forma Normal de Greibach

Introducción

• Aparte de la forma normal de Chomsky (FNC) para gramáticas, existe otra forma para normalizar gramáticas, esta es la forma normal de Greibach (FNG).

• La Gramática está constituida por G=(Σ, N, S, P).

Page 3: Forma Normal de Greibach

Propiedades

• Cualquier gramática en forma normal de Greibach es una gramática libre de contexto que se verifica directamente analizando la forma de producciones permitidas.

• Para cualquier lenguaje libre de contexto existe una gramática en forma normal de Greibach, que genera el lenguaje.

Page 4: Forma Normal de Greibach

Teorema 1

• Si AαBγ es una producción de una gramática independiente del contexto y si Bβ1| β2 |…| βm son todas las producciones que tienen a B en su lado izquierdo, entonces la producción A αBγ se puede reemplazar por A αβ1γ| αβ2γ |…| αβmγ sin que varíe el lenguaje generado por la gramática.

Page 5: Forma Normal de Greibach

Demostración T1

• Por ejemplo, consideremos la gramática independiente del contexto cuyas producciones son:

S a|aaB|Bab|abBcBbaabS|bba

• Si realizamos la sustitución presentada en el Teorema obtendremos la gramática

Sa|aabaabS|aabba|baabSab|bbaabBbaabS|bba

Page 6: Forma Normal de Greibach

Demostración T1

• Obsérvese que las producciones de B, BbaabS|bba no desaparecen, pero no podrán formar parte de ninguna derivación. Entonces empleamos para la gramática resultante la limpieza de gramáticas.

Page 7: Forma Normal de Greibach

Teorema 2

• Sea G una gramática independiente del contexto y A un no terminal de G. Si AAα1|Aα2|…|Aαn son todas las producciones para A, que son recursivas por la izquierda, y si A β1|β2|…|βm son las restantes producciones para A, entonces se puede construir una gramática equivalente introduciendo un nuevo no terminal Z y reemplazando todas las producciones precedentes por: A β1|β2|…|βm|β1Z|β2Z|…|βmZ

Z α1|α2|…|αn|α1Z|α2Z|…|αnZ

Page 8: Forma Normal de Greibach

Demostración T2

• Considérese la gramática independiente del contexto dada mediante:

S Sa|Sb|cAA Aa|a|λ

• Obsérvese que hay producciones recursivas por la izquierda con S y A en su lado izquierdo. Aplicando el teorema al no terminal S e introduciendo un no terminal nuevo Z1 , se obtiene la siguiente gramática transformada que es independiente del contexto

S cA|cAZ1

Z1 a|b|aZ1|bZ1

AAa|a| λ

Page 9: Forma Normal de Greibach

Demostración T2

• Entonces, aplicando el teorema al no terminal A e introduciendo un no terminal nuevo Z2 , se obtienen las producciones

S cA|cAZ1

Z1 a|b|aZ1|bZ1

Aa|aZ2| λ|Z2

Z2 a|aZ2

• Obsérvese que al eliminar las producciones recursivas por la izquierda se introducen nuevos terminales y producciones recursivas por la derecha.

Page 10: Forma Normal de Greibach

Definición

• Una gramática independiente del contexto está en forma normal de Greibach (FNG) si todas las producciones son de la forma:A aα, donde a es un símbolo terminal y α Є (ΣUN)*.

Page 11: Forma Normal de Greibach

Definición

• Obsérvese que esta forma normal requiere que toda producción tenga un símbol0 del alfabeto como primer símbolo del lado derecho de las producciones.

• Por tanto una gramática en FNG no puede tener producciones recursivas por la izquierda. Es más, puesto que cada producción requiere que haya al menos un símbolo del alfabeto, una gramática independiente del contexto en FNG sólo puede generar lenguajes no vacíos que no contengan λ.

Page 12: Forma Normal de Greibach

Teorema 3

• Todo lenguaje independiente del contexto no vacío, que no contiene la palabra vacía λ, se puede generar mediante una gramática independiente del contexto G=(N, Σ, S, P) en la cual todas las producciones son de la forma Aaω para A Є N, a Є Σ y ω Є N*.

Page 13: Forma Normal de Greibach

Demostración T3

• Consideremos la gramática independiente del contexto en forma normal de Chomsky (cuyos no terminales han sido etiquetados convenientemente)

A1A2A2|a

A2A1A2|b

Page 14: Forma Normal de Greibach

Demostración T3

• Obsérvese que las producciones A1 A2A2|a la producción A1 a se acepta.

• Luego observemos a A2 A1A2|b, la producción A2 b se acepta. Entonces debemos sustituir A1 , obteniendo las producciones A2 A2A2A2|aA2. Eliminamos la recursividad por la izquierda y obtenemos el conjunto de producciones:

A1 A2A2|a

A2 aA2|aA2Z|b|bZ

Page 15: Forma Normal de Greibach

Demostración T3

• Finalmente, substituimos A2 de forma apropiada para que al lado derecho de todas las producciones comience con un terminal.

A1 aA2A2|aA2ZA2|bA2|bZA2|a

A2 aA2|aA2Z|b|bZ

ZaA2A2|aA2ZA2|bA2|bZA2|aA2A2Z

|aA2ZA2Z|bA2Z|bZA2Z

Page 16: Forma Normal de Greibach

Demostración T3

• Obsérvese que todas las producciones de la forma dada en este teorema son necesariamente la forma apropiada para la FNG.

Page 17: Forma Normal de Greibach

Corolario

• Todo lenguaje L independiente del contexto y no vacío, que no contenga λ, puede ser generado mediante una gramática independiente del contexto en forma normal de Greibach.

• Una definición alternativa para la FNG requiere que todas las producciones sean de la forma Aaω para A Є N, a Є Σ y ω Є N*.

Page 18: Forma Normal de Greibach

Bibliografía

• KELLEY, Dean. Teoría de Autómatas y Lenguajes Formales. 1995.