ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

DEFINICIÓN DE UN TRADUCTOR Y ETAPAS DE UN COMPILADOR


Enviado por   •  25 de Agosto de 2015  •  Apuntes  •  11.594 Palabras (47 Páginas)  •  205 Visitas

Página 1 de 47

INSTITUTO TECNOLÓGICO DE TAPACHULA

INGENIERÍA EN SISTEMAS COMPUTACIONALES.

MATERIA:

LENGUAJES Y AUTÓMATAS 1

CATEDRÁTICO:

ANAMIM VILLARREAL WONG

TEMA:

DEFINICIÓN DE UN TRADUCTOR Y ETAPAS DE UN COMPILADOR

EQUIPO:

JHONNY NEGRETE MADRID

FERNANDO ULISES ROJAS LOPEZ

ALEJANDRO PEREZ GONZALEZ

CARLOS MARTINEZ VAZQUEZ

RICARDO PINOT ABUNDIS

LUGAR Y FECHA:

TAPACHULA CHIAPAS A 8 DE JUNIO DEL 2015

CONTENIDO

Contenido

1. INTRODUCCIÓN 4

2. DEFINICIÓN DE UN TRADUCTOR (COMPILADORES) 5

2.1 Tipos de COMPILADORES 7

3. ETAPAS DE UN COMPILADOR (TRADUCTOR) 7

3.1 FASE DE ANÁLISIS 7

3.1.1 ANÁLISIS LÉXICO 7

3.1.2 ANÁLISIS SINTÁCTICO 8

3.1.3 ANÁLISIS SEMÁNTICO 9

3.2 FASE DE SÍNTESIS 10

3.2.1 GENERACIÓN DE CÓDIGO INTERMEDIO 11

3.2.2 OPTIMIZACIÓN DE CÓDIGO 11

3.2.3 ADMINISTRACIÓN DE LA TABLA DE CONTENIDOS 12

3.2.4 MANEJADOR DE ERRORES 13

3.2.5 TIPOS DE ERRORES 13

4. Lenguaje de programación 14

5. Palabra reservada 15

6. OPERADORES 23

6.1 Tipos de operadores: 23

6.2 Prioridades del operador 23

6.3 Identificadores 24

6.3.1 Ejemplos válidos de identificadores: 24

6.3.2 Ejemplos no válidos de identificadores: 24

7. ANÁLISIS LÉXICO 25

7.1 Funciones del analizador léxico. 25

7.2 Funcionamiento 26

7.3 Funciones del Análisis Léxico 27

7.4 Componentes Léxicos, Patrones, Lexemas. 28

7.5 Aspectos del Análisis Léxico 28

7.6 Tratamiento de errores léxicos 29

8. PALABRAS RESERVADAS DE NUESTRO LENGUAJE 30

9. AUTóMATA de PALABRAS RESERVADAS 31

10. AUTóMATA DE VARIABLES 33

11. AUTóMATA DE OPERADORES ARITMéTICOS 33

12. AUToMATA DE OPERADORES LóGICOS 34

13. AUToMATAS DE DELIMITADORES 35

14. ¿Qué ES ANáLISIS SINTáCTICO? 35

14.1 Funciones del analizador sintáctico 35

14.2 Lenguajes de programación 37

14.3 Visión general del proceso 38

14.4 Clasificación 38

14.5 Manejo de errores sintácticos 38

14.6 Tipo de gramática que acepta un analizador sintáctico. 39

14.7 Árbol sintáctico de una sentencia de un lenguaje. 41

14.8 Tipos de Análisis 42

14.9 Análisis descendente con retroceso. 43

14.10 Análisis descendente de gramáticas LL 44

15. Formas de implementar el análisis sintáctico 46

15.1 GRAMáTICAS LIBRES DE CONTEXTO 46

15.2 Derivaciones y árboles sintácticos 46

15.3 Ejemplo: gramática de expresiones aritméticas 46

15.4 ANÁLISIS SINTÁCTICO DESCENDENTE 47

15.5 ANÁLISIS SINTÁCTICO ASCENDENTE 49

16. EJEMPLOS 50

16.1 ANALISIS SINTACTICO ASCENDENTE POR MEDIO DE UN PIVOTE 50

16.2 Análisis sintáctico descendente ejemplo visto en clase: 55

11. CONCLUSIÓN 57

BIBLIOGRAFÍA 58

1. INTRODUCCIÓN

Tanto los compiladores como los intérpretes son programas de gran complejidad. Afortunadamente, se sabe suficiente acerca de cómo estructurarlos y hay suficientes herramientas formales para que la complejidad se reduzca a niveles razonables. En este tema veremos en qué fases se divide un compilador o un intérprete. Veremos también que tienen en común y como difieren entre compiladores e intérpretes.

En el mundo de la informática existen muchos lenguajes de programación, que trabajan con uno o varios paradigmas de programación (estilos, formas, métodos de programación), por lo tanto es de suponer que existen distintas reglas de sintaxis y semántica para cada lenguaje de programación como lo existe en cualquier otro lenguaje, sea cualquiera el tipo y contexto al que pertenezca.

Con el tiempo se vio que el estar realizando una interpretación y traducción cada vez que se necesita realizar algo era poco efectivo, en cuanto a tiempo de trabajo delHardware se refiere, y más aun si se trataba de un conjunto grande deinstrucciones (peticiones), es aquí donde entraron en juego los compiladores, quien al igual que sus antecesores realizan una traducción de los programas

(conjunto de intrusiones de un lenguaje) revisando que este dentro del marco de definición del lenguaje de programación utilizado. Con la diferencia que la traducción se realiza una sola vez y de todo el programa. Después de todos estos tópicos previos, podemos decir que la calidad de un buen software es producto de un lenguaje de computación versátil, flexible y veloz, todo sinónimo de buen compilador, claro sin dejar de lado la capacidad creadora del programador (usuario, nosotros)."¿Cómo funciona un compilador? ", es la pregunta de todo aquel que se hace llamar programador, a grandes rasgos un compilador toma un programa escrito en un lenguaje de programación con una gramática, sintaxis y semántica definida, revisa que este dentro de las pautas de definición del lenguaje, y lo traduce en programa de salida escrito en lenguaje binario, el cual es entendido por el ordenador y por lo tanto puede ser ejecutado por el mismo (recordar que un intérprete a diferencia de un compilador no traduce todo el programa sino que va realizando la traducción e interpretación de la misma paso a paso, sin crear ningún programa de salida ejecutable). Las partes del proceso de compilación se dividen en dos: una llamada fase de Análisis y otra llamada fase de Sintaxis, las cuales interactúan entre si para la creación de la tabla de símbolos y el control delmanejador de errores, dentro del análisis hay tres etapas llamadas análisislexicográfico, análisis sintáctico, análisis semántico. Dentro de la fase de Síntesis existen las etapas de generación de código intermedio, optimización de código intermedio, y generación de código.

Al tener que describir cómo funciona un compilador tenemos que tener en claro en no confundir los términos compilador y compilación, se debe entender que al decir compilador nos referimos al programa, y al decir compilación al proceso en sí. En esencia ambos términos cumplen con la definición más simple de un compilador, es decir, sea el programa compilador o el proceso de compilación, ambos reciben como entrada un código escrito en algún lenguaje y producen como salida otro código escrito en otro lenguaje.

2. DEFINICIÓN DE UN TRADUCTOR (COMPILADORES)

Un traductor es un metaprograma que toma como entrada un programa (o parte de un programa) escrito en lenguaje simbólico, alejado de la máquina, denominado programa

...

Descargar como (para miembros actualizados) txt (71 Kb) pdf (248 Kb) docx (58 Kb)
Leer 46 páginas más »
Disponible sólo en Clubensayos.com