Exposición de compiladores e intérpretes - Profesor: Eddie Malca

Preview:

Citation preview

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

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 TERMINALES

o T es el conjunto de elementos TERMINALES

o S es el SIMBOLO INICIAL de la gramática

o P es el conjunto de REGLAS DE PRODUCCION

Gramática tipo 0

Características

o No tiene restricciones .

o Incluyen a todas las demás gramáticas formales.

o Las maquinas que lo aceptan son maquinas de Turing.

Gramática tipo 1

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

linealmente acotados.

Gramática tipo 2

Características

o Generan los lenguajes independientes del contexto.

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

Gramática tipo 3

Características

o También llamadas de contexto regular.

o Maquinas que lo aceptan son autómata finito, determinista o no determinista.

Árboles de derivación

Derivaciones utilizando una gramática

Derivación

• Aplicación de las producciones de unagramática para obtener una cadena determinales.

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

Estructura

Un árbol es unconjunto depuntos, llamadosnodos; unidos porlíneas llamadosarcos.

Satisfacen ciertaspropiedades Hay un único nodo distinguido, llamado

raíz.

Todo nodo “c” excepto el nodo raíz estaconectado con un arco a otro nodo “k”,llamado padre de c. El padre de unnodo, se dibuja por encima de un nodo.

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

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

Tipos de derivación

Derivación a la

derecha.

Derivación a la

izquierda.

Ejemplo:

1. S ASB2. A b3. aaA aaBB4. S d5. A aA6. B dcd

Ejemplo

1. S ASB2. A b3. aaA aaBB4. S d5. A aA6. B dcd

Derivación a la izquierda

S ASB aASB abSBabdB abddcd

Derivación a la derecha

S ASB ASdcd AddcdaAddcd abddcd

1 6 4 5 2

1 5 2 4 6

Gramáticas limpias y bien formadas

Gramáticas limpias y bien formadas

Una gramática se llama reducida si nocontiene símbolos inaccesibles ni reglassuperfluas.

Se llama limpia si tampoco contiene reglasinnecesarias.

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.

Símbolos inaccesibles

Para eliminar los símbolos inaccesibles, se hace unalista de todos los símbolos de la gramática y se marcael axioma S.

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

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

Los símbolos que se queden sin marcar, soninaccesibles.

Reglas superfluas

Marcar los símbolos no terminales para los que existauna regla U::=x, donde x sea una cadena de símbolosterminales, o de no terminales marcados.

Si todos los símbolos no terminales han quedadomarcados, no existen símbolos superfluos en lagramá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 noterminales no marcados son superfluos.

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 lagramá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í comotodas las reglas que contengan A en P,obteniendo otra gramática más sencilla, querepresenta el mismo lenguaje.

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.

Lenguajes naturales y artificiales

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

Lenguaje Artificial.- Un lenguaje artificial es un lenguaje deprogramación que puede ser usado para controlar elcomportamiento de una máquina, especialmente unacomputadora.

Lenguajes de programación de computadoras

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 enlenguaje máquina, entonces el usuario puede ejecutarlopara procesar las entradas y producir salidas (resultados).

Partes de un procesador de lenguaje

Nota sobre sintaxis y semántica

AnálisisEl objetivo de esta etapa es obtener una representación dela 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 sedivide en una serie de unidades elementales: loscomponentes léxicos.

2.- Análisis sintácticoPartiendo de lo que ha recibido del analizador léxico, latarea del analizador sintáctico consiste en ir descubriendolas estructuras presentes en el código de acuerdo con unagramática no contextual.

3.- Análisis semánticoLa última fase del análisis, el análisis semántico, toma comoentrada el árbol sintáctico y comprueba si, además de lasrestricciones sintácticas, se cumplen otras restriccionesimpuestas por el lenguaje y que no pueden sercomprobadas mediante una gramática no contextual.