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

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

Embed Size (px)

Citation preview

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

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: Exposición de compiladores e intérpretes - Profesor: Eddie Malca

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

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

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.

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

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: Exposición de compiladores e intérpretes - Profesor: Eddie Malca

Gramática tipo 2

Características

o Generan los lenguajes independientes del contexto.

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

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

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.

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

Árboles de derivación

Derivaciones utilizando una gramática

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

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.

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

Estructura

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

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

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.

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

Tipos de derivación

Derivación a la

derecha.

Derivación a la

izquierda.

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

Ejemplo:

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

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

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

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

Gramáticas limpias y bien formadas

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

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.

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

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: Exposición de compiladores e intérpretes - Profesor: Eddie Malca

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.

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

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.

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

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.

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

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: Exposición de compiladores e intérpretes - Profesor: Eddie Malca

Lenguajes naturales y artificiales

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

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.

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

Lenguajes de programación de computadoras

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

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).

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

Partes de un procesador de lenguaje

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

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.

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