Directory

(PDF) Limpieza de gramáticas

Limpieza de gramáticas

2019, Limpieza de gramáticas

Teoría de Autómatas y Lenguajes Formales Boletín de Autoevaluación 5: ¿Cómo se simplifica una Gramática de Contexto Libre?. 1. Objetivos. El objetivo de este boletín es ilustrar cómo proceder para simplificar gramáticas de contexto libre y, además, proporcionar la solución a alguno de los problemas propuestos en el boletín para que podáis comprobar si habéis aplicado bien este método. 2. Idea Principal. Una gramática nos proporciona un conjunto de producciones que nos permitirán obtener cadenas de un determinado lenguaje. En este juego hay pocas reglas: una producción nos indica cómo substituir una serie de símbolos auxiliares por otra cadena de símbolos; se empieza siempre por un símbolo auxiliar especial, el símbolo S, start, y el objetivo es formar cadenas formadasúnicamenteformadas´formadasúnicamente por símbolos termina-les esto es, símbolos del alfabeto sobre el que construimos el lenguaje. Al substituir no hay cota sobre el número de veces que se aplica una producción y tampoco hay reglas que tengan una "preferencia" sobre otras. Al diseñar la gramática nuestra principal preocupación es asegurar que se producen todas las cadenas. De hecho, puede ocurrir que en el proceso de diseño se introduzcan producciones que no facilitan la obtención de cadenas o que introducen pasos innecesarios en el proceso de derivación. El objetivo al simplificar una gramática de contexto libre es obtener una gramática equivalente, pero en la que se asegura que cada derivación esútiles´esútil, y que no obliga a aplicar ningún paso innecesario. 3. Pasos para simplificar una Gramática de Contexto Libre. Cualquier lenguaje de contexto libre, L, puede ser generado por medio de una GCL, G, que cumpla las siguientes condiciones: 1. Cada símbolo (terminal o auxiliar) de G se emplea en la derivación de alguna cadena de L. 2. Si λ ∈ L entonces en el conjunto de producciones de G no existen producciones vacías, es decir, producciones de la forma A → λ. 3. En el conjunto de producciones de G no existen producciones unitarias, es decir, producciones de la forma A → B donde A, B ∈ Σ A. Si se obtiene una gramática que cumpla estas tres condiciones se puede asegurar que en cada deri-vación que se realiza se introduce información relevante. ¿Cómo se puede asegurar que son ciertas en nuestra gramática cada una de estas tres condiciones? 1