Tipos de gramatica y arboles de derivacion

28
Exposición de Compiladores e Intérpretes Profesor: Eddie Christian Malca Vicente Integrantes: *Jorge Luis Severino Vicharra *Elmer André Boulangger Alberca *Jesús Huamaní Taipe *Jhon Rodríguez Silva

Transcript of Tipos de gramatica y arboles de derivacion

Page 1: Tipos de gramatica y arboles de derivacion

Exposición de Compiladores e Intérpretes

Profesor: Eddie Christian Malca Vicente

Integrantes:*Jorge Luis Severino Vicharra*Elmer André Boulangger Alberca*Jesús Huamaní Taipe*Jhon Rodríguez Silva

Page 2: Tipos de gramatica y arboles de derivacion

Tipos de Gramática

o Una gramática es una estructura algebraica formada por cuatro elementos

o G={NT, T, S, P}o NT es el conjunto de elementos NO

TERMINALESo T es el conjunto de elementos TERMINALESo S es el SIMBOLO INICIAL de la gramáticao P es el conjunto de REGLAS DE PRODUCCION

Page 3: Tipos de gramatica y arboles de derivacion

Gramática tipo 0

Característicaso No tiene restricciones .o Incluyen a todas las demás gramáticas

formales.o Las maquinas que lo aceptan son maquinas de

Turing.

Page 4: Tipos de gramatica y arboles de derivacion

Gramática tipo 1

Característicaso Generan los lenguajes sensibles al contexto.o Las maquinas que los aceptan son autómatas linealmente

acotados.

Page 5: Tipos de gramatica y arboles de derivacion

Gramática tipo 2

Característicaso Generan los lenguajes independientes del

contexto.o Maquinas que lo aceptan son autómata de

pila.

Page 6: Tipos de gramatica y arboles de derivacion

Gramática tipo 3

Característicaso También llamadas de contexto

regular.o Maquinas que lo aceptan son

autómata finito, determinista o no determinista.

Page 7: Tipos de gramatica y arboles de derivacion

Árboles de derivación

Derivaciones utilizando una gramática

Page 8: Tipos de gramatica y arboles de derivacion

Derivación• Aplicación de las producciones de una

gramática para obtener una cadena de terminales.

• Consiste en sustituir la variable de la cabeza por el cuerpo de la producción.

Page 9: Tipos de gramatica y arboles de derivacion

Estructura

Un árbol es un conjunto de puntos, llamados nodos; unidos por líneas llamados arcos.

Page 10: Tipos de gramatica y arboles de derivacion

Satisfacen ciertas propiedades Hay un único nodo distinguido, llamado

raíz. Todo nodo “c” excepto el nodo raíz esta

conectado con un arco a otro nodo “k”, llamado padre de c. El padre de un nodo, se dibuja por encima de un nodo.

Todos los nodos están conectados al nodo raíz mediante un único camino.

Los nodos que no tienen hijos se denominan hojas, el resto de los nodos se denominan nodos interiores.

Page 11: Tipos de gramatica y arboles de derivacion

Tipos de derivación

Derivación a la

derecha.

Derivación a la

izquierda.

Page 12: Tipos de gramatica y arboles de derivacion

Ejemplo: 1. S ASB 2. A b 3. aaA aaBB 4. S d 5. A aA 6. B dcd

Page 13: Tipos de gramatica y arboles de derivacion

Ejemplo 1. S ASB 2. A b 3. aaA aaBB 4. S d 5. A aA 6. B dcd

Derivación a la izquierda S ASB aASB abSB abdB abddcd

Derivación a la derecha

S ASB ASdcd Addcd aAddcd abddcd

1 6 4 5 2

1 5 2 4 6

Page 14: Tipos de gramatica y arboles de derivacion

Gramáticas limpias y bien formadas

Page 15: Tipos de gramatica y arboles de derivacion

Gramáticas limpias y bien formadas

Una gramática se llama reducida si no contiene símbolos inaccesibles ni reglas superfluas.

Se llama limpia si tampoco contiene reglas innecesarias.

Page 16: Tipos de gramatica y arboles de derivacion

Reglas innecesarias

En una gramática, las reglas de la forma U: :=U son innecesarias y la hacen ambigua. A partir de ahora se supondrá que una gramática no tiene tales reglas o, si las tiene, serán eliminadas.

Page 17: Tipos de gramatica y arboles de derivacion

Símbolos inaccesibles Para eliminar los símbolos inaccesibles, se hace una

lista de todos los símbolos de la gramática y se marca el axioma S.

se marcan todos los símbolos que aparezcan en la parte derecha de cualquier regla cuya parte izquierda sea un símbolo marcado.

El proceso continúa hasta que no se marque ningún símbolo nuevo.

Los símbolos que se queden sin marcar, son inaccesibles.

Page 18: Tipos de gramatica y arboles de derivacion

Reglas superfluasMarcar los símbolos no terminales para los que exista

una regla U::=x, donde x sea una cadena de símbolos terminales, o de no terminales marcados.

Si todos los símbolos no terminales han quedado marcados, no existen símbolos superfluos en la gramática. Fin del proceso.

Si la última vez que se pasó por el paso 1 se marcó algún símbolo no terminal, volver al primer paso.

Si se llega a este punto, todos los símbolos no terminales no marcados son superfluos.

Page 19: Tipos de gramatica y arboles de derivacion

Eliminación de símbolos no generativos

Sea la gramática independiente del contexto G =(ΣT, ΣN, S, P). Para cada símbolo A ΣN se construye la ∈

gramática G(A)=(ΣT, ΣN, A, P). Si L(G(A)) es vacío, se dice que A es un símbolo no generativo.

Entonces se puede suprimir A en ΣN, así como todas las reglas que contengan A en P, obteniendo otra gramática más sencilla, que representa el mismo lenguaje.

Page 20: Tipos de gramatica y arboles de derivacion

Eliminación de reglas de re-denominación

Se llama regla de re-denominación a toda regla de la forma A::=B. Para compensar su eliminación, basta añadir el siguiente conjunto de reglas:

Para cada símbolo A de ΣN tal que A→*B en G, y para cada regla de la forma B::=x, donde x no es un símbolo no terminal, añadiremos una regla de la forma A::=x.

Page 21: Tipos de gramatica y arboles de derivacion

Lenguajes naturales y artificiales

Page 22: Tipos de gramatica y arboles de derivacion

Lenguaje Natural.- Se llama lenguaje natural al que utilizan los seres humanos en su comunicación ordinaria, porque ha sido formado paulatinamente mediante el uso del grupo social, a través de una dinámica histórica no intencionada.

Lenguaje Artificial.- Un lenguaje artificial es un lenguaje de programación que puede ser usado para controlar el comportamiento de una máquina, especialmente una computadora.

Page 23: Tipos de gramatica y arboles de derivacion

Lenguajes de programación de computadoras

Page 24: Tipos de gramatica y arboles de derivacion
Page 25: Tipos de gramatica y arboles de derivacion

Procesadores de lenguaje

Dicho en forma simple, un compilador es un programa que puede leer un programa en un lenguaje (el lenguaje fuente) y traducirlo en un programa equivalente en otro lenguaje (el lenguaje destino).

Si el programa destino es un programa ejecutable en lenguaje máquina, entonces el usuario puede ejecutarlo para procesar las entradas y producir salidas (resultados).

Page 26: Tipos de gramatica y arboles de derivacion

Partes de un procesador de lenguaje

Page 27: Tipos de gramatica y arboles de derivacion

Nota sobre sintaxis y semántica

AnálisisEl objetivo de esta etapa es obtener una representación de la entrada que nos permita realizarla síntesis o la interpretación con comodidad.

1.- Análisis léxicoEn esta fase se analiza la entrada carácter a carácter y se divide en una serie de unidades elementales: los componentes léxicos. 2.- Análisis sintácticoPartiendo de lo que ha recibido del analizador léxico, la tarea del analizador sintáctico consiste en ir descubriendo las estructuras presentes en el código de acuerdo con una gramática no contextual.

3.- Análisis semánticoLa última fase del análisis, el análisis semántico, toma como entrada el árbol sintáctico y comprueba si, además de las restricciones sintácticas, se cumplen otras restricciones impuestas por el lenguaje y que no pueden ser comprobadas mediante una gramática no contextual.

Page 28: Tipos de gramatica y arboles de derivacion