Download - 1. Derivación más a la izquierda (derecha) 2. Árbol de derivación. 3. Ambigüedad.

Transcript
Page 1: 1. Derivación más a la izquierda (derecha)  2. Árbol de derivación.  3. Ambigüedad.

1. Derivación más a la izquierda (derecha) 2. Árbol de derivación. 3. Ambigüedad.4. Simplificación de Gramáticas.5. Formas Normales.

5.1. De Chomsky.5.2. De Greibach.

Tema 2.- Gramáticas independientes de contexto.

Page 2: 1. Derivación más a la izquierda (derecha)  2. Árbol de derivación.  3. Ambigüedad.

Gramáticas independientes de contexto

A : A N, V*

Derivación más a la izquierdas (derechas) : En todos los pasos de la derivación se sustituye el no terminal más a la izquierda (derecha).

S AB | BA | D A CAC | 0B CBC |1 C 0|1D CCD|C•Derivación más a la izquierdasS AB CACB 0ACB 00CB 001B 0011 •Derivación aleatoriaS AB CACB C0CB C0C1 00C1 0011

Ejemplo:

Page 3: 1. Derivación más a la izquierda (derecha)  2. Árbol de derivación.  3. Ambigüedad.

Árbol que cumple:1. Raíz etiquetada con S.2. Nodos interiores etiquetados con auxiliares3. Nodos hoja etiquetados con terminales o 4. Nodo etiquetado con es el único sucesor de supredecesor.5. Si un nodo está etiquetado con A y sus sucesorescon B1 B2 ... Bn entonces A B1 B2 ... Bn P

Árbol de derivación en G

S

A B C A C 1

0 0 1

S AB CACB 0ACB 00CB 001B 0011

Subárbol de derivación en G

Cumple de 2 a 5

Page 4: 1. Derivación más a la izquierda (derecha)  2. Árbol de derivación.  3. Ambigüedad.

Ambigüedad• G = (N, , P, S) es ambigua si existe x * con más de un árbol de derivación.

Ejemplo: S SS | 0 S S

S S S S

S S 0 0 S S

0 0 0 0

Un lenguaje es inherentemente ambiguo si toda gramática que lo genera es ambigua.

Ejemplo: 0+ no es inherentemente ambiguo (puede ser generado por S SS | 0y por S 0S | 0 ).L = {0i 1j 2k : i = j j = k} es inherentemente ambiguo.

Page 5: 1. Derivación más a la izquierda (derecha)  2. Árbol de derivación.  3. Ambigüedad.

Simplificación de Gramáticas Incontextuales

• Gramáticas equivalentes G equivalente a G ’ si L(G) = L(G ’) ó L(G) = L(G ’) - {} • Símbolos inútiles (no intervienen en la generación de palabras)

• No generativos A N, es generativo si * con• No alcanzablesA N, es alcanzable si forma parte de forma sentencial derivable desde S.

GA

Dada una gramática G existe otra G’ equivalente a G sin símbolos inútiles.

El orden de eliminación es importanteEjemplo: S AB|a

A a

Page 6: 1. Derivación más a la izquierda (derecha)  2. Árbol de derivación.  3. Ambigüedad.

Producciones vacías.• Cualquiera de la forma A

•Si L(G) debe existir alguna producción A (Se puede conseguir que sea S )

Dada una gramática G existe otra G’con L(G’) =L(G)- {}sin producciones vacías.

•Si L(G) se puede conseguir una equivalente sinproducciones vacías.

Page 7: 1. Derivación más a la izquierda (derecha)  2. Árbol de derivación.  3. Ambigüedad.

•Producciones unitarias.• Cualquiera de la forma A B

Dada una gramática G existe otra G’ equivalente a G sin producciones unitarias.

•Proceso de simplificación. 1. Eliminación de Símbolos inútiles. 2. Eliminación de Producciones vacías.

3. Eliminación de Producciones unitarias.4. Eliminación de Símbolos inútiles.

Page 8: 1. Derivación más a la izquierda (derecha)  2. Árbol de derivación.  3. Ambigüedad.

Simplificación de las gramáticas incontextuales.

Si L es un lenguaje incontextual no vacío G de tipo 2 que lo genera,

con:

•Cada símbolo de G aparece en la derivación de alguna palabra del lenguaje.

•No hay reglas de la forma A B con A, B N .

•Si L se pueden eliminar todas las producciones de la forma A .

Caso contrario se puede conseguir que la única regla de este tipo sea S .

Page 9: 1. Derivación más a la izquierda (derecha)  2. Árbol de derivación.  3. Ambigüedad.

Eliminar no generativos en:

Page 10: 1. Derivación más a la izquierda (derecha)  2. Árbol de derivación.  3. Ambigüedad.
Page 11: 1. Derivación más a la izquierda (derecha)  2. Árbol de derivación.  3. Ambigüedad.
Page 12: 1. Derivación más a la izquierda (derecha)  2. Árbol de derivación.  3. Ambigüedad.

Eliminar lar regas unitarias en:

Page 13: 1. Derivación más a la izquierda (derecha)  2. Árbol de derivación.  3. Ambigüedad.

S A|AAA|AAA Aba|Aca|aB Aba|Ab|C CAba|CCD CD|Cd|CeaE b

Aplicar los algoritmos anteriores a las gramáticas

2.1.

Page 14: 1. Derivación más a la izquierda (derecha)  2. Árbol de derivación.  3. Ambigüedad.

1. Eliminación símbolos no generativos 2. Eliminación símbolos no accesibles

3. Eliminación reglas 4. Eliminación símbolos no generativos

5. Eliminación reglas unitarias

Resolución de 2.