Compiladores

Solo disponible en BuenasTareas
  • Páginas : 24 (5889 palabras )
  • Descarga(s) : 4
  • Publicado : 26 de mayo de 2010
Leer documento completo
Vista previa del texto
Lenguajes de alto nivel y compiladores

UNIVERSIDAD DE CANTABRIA

Introducción a la tecnología de compiladores

GRUPO DE COMPUTADORES Y TIEMPO REAL
4

© Javier Gutiérrez, Michael González
24/nov/08

1

FACULTAD DE CIENCIAS

Notas:
UNIVERSIDAD DE CANTABRIA

1. Compiladores 2. Análisis léxico 3. Análisis sintáctico 4. Conclusión

GRUPO DE COMPUTADORES Y TIEMPO REAL FACULTAD DECIENCIAS

© Javier Gutiérrez, Michael González
24/nov/08

2

1. Compiladores

UNIVERSIDAD DE CANTABRIA

“Un compilador es un programa que lee un programa escrito en un lenguaje, y lo traduce a un programa equivalente en otro lenguaje.” programa en lenguaje fuente programa en lenguaje destino

compilador

mensajes de error Durante la traducción el compilador informa de la presenciade errores en el programa fuente.
GRUPO DE COMPUTADORES Y TIEMPO REAL FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González
24/nov/08

3

Notas:
UNIVERSIDAD DE CANTABRIA

Existen multitud de compiladores para un gran número de lenguajes fuente y lenguajes destino. Los compiladores se utilizan tanto para lenguajes de programación tradicionales, como Fortran, C o Ada, o paraaplicaciones especializadas como por ejemplo lenguajes de descripción de hardware, lenguajes de programación de robots, etc. Los primeros compiladores aparecieron a primeros de los años 50, como resultado de proyectos para la traducción de fórmulas aritméticas en código máquina. Los primeros compiladores eran costosos de implementar. Hoy en día existen técnicas sistemáticas para construir compiladores quehacen más sencillo el proceso.

GRUPO DE COMPUTADORES Y TIEMPO REAL FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González
24/nov/08

4

Análisis y síntesis
Compilación

UNIVERSIDAD DE CANTABRIA

Análisis

Síntesis

Léxico: “tokens”

Sintáctico: instrucciones

Semántico: significado

Generación de código

GRUPO DE COMPUTADORES Y TIEMPO REAL FACULTAD DE CIENCIAS

©Javier Gutiérrez, Michael González
24/nov/08

5

Notas:
UNIVERSIDAD DE CANTABRIA

Existen dos partes importantes en la compilación: • Etapa de análisis: Parte el programa fuente en sus piezas constituyentes y crea una representación intermedia del mismo. - Análisis léxico: separación de cada elemento componente del programa (“token”) - Análisis sintáctico: separación de cada instrucción osentencia del lenguaje, que agrupa varios componentes léxicos o “tokens”. - Análisis semántico: Se revisa el programa fuente para comprobar que las reglas semánticas del lenguaje (aquellas relativas al significado de las distintas instrucciones) se cumplen. Un ejemplo de regla semántica es la comprobación de tipos en las expresiones. • Etapa de síntesis: Construye el programa destino deseado apartir de una descripción en un lenguaje de representación intermedia. De las dos partes de la compilación, la síntesis es la que requiere las técnicas más especializadas, aunque en los lenguajes de programación modernos (Ada, C++, Java) la parte de análisis está alcanzando una gran complejidad. Durante la fase de análisis la estructura del programa se guarda en una estructura de datos especial quesuele ser un árbol: el árbol sintáctico.

GRUPO DE COMPUTADORES Y TIEMPO REAL FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González
24/nov/08

6

Análisis y síntesis (cont.)

UNIVERSIDAD DE CANTABRIA

Algunas herramientas presentan también una etapa de análisis: - Editores orientados al lenguaje - Impresión con formato (“pretty printer”) - Comprobadores estáticos de programas -Intérpretes

GRUPO DE COMPUTADORES Y TIEMPO REAL FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González
24/nov/08

7

Notas:
UNIVERSIDAD DE CANTABRIA

La etapa de análisis se encuentra en muchas herramientas además de los compiladores: • Editores orientados al lenguaje: Además de facilitar la introducción de texto por el teclado analiza el programa fuente y proporciona la...
tracking img