Compiladores iswi (parte 2)

download Compiladores iswi (parte 2)

If you can't read please download the document

Transcript of Compiladores iswi (parte 2)

  • 1. SEGUNDA PARTE IE. Fernando Jimnez Valencia. Noviembre 2009.

2. Al terminar la unidad el alumno describir los conceptos y las diferentes partes de los compiladores 3.

  • Antecedentes.
    • Programa, lenguajes de programacin, etc.
    • Clasificacin y generaciones.
  • Compilacin.
    • Proceso.
    • Estructura.
  • Bibliografa.

4. Programa de proceso, proceso de compilacin y estructura general de un compilador 5.

  • Son los que estn enfocados preferentemente para ayudar al programador en la puesta punto de los programas.

Programas de proceso Traductores .- son meta-programas que toman como entrada un programa escritoen lenguaje simblicosemejante al natural y proporciona como salida un programa escrito enlenguaje compresible para el hardwarede la computadora. De servicio .- grupo de programas que realizan funciones tiles para el sistema o para el usuario. (comandos o utileras)

  • Ensambladores
  • Compiladores
  • Interpretes

6.

  • Programa ensamblador .- transformanprogramas fuente escritos en lenguaje ensamblador , en unprogramas objeto escritos en lenguaje maquinay ejecutables directamente por el hardware de la computadora.
  • Programa compilador .- realiza la traduccin completa delprograma fuenteescrito en lenguaje simblico de alto nivel, en unprograma objetoescritos en lenguaje maquina. La traduccin se realiza completa en caso de no existir errores.
  • Programa interprete .- transforma cada instruccin delprograma fuenteen instrucciones de lenguaje maquina y lo va ejecutando a la vez.

7.

  • Programa escrito por el programador en lenguaje simblico alejado del lenguaje maquina (binario). (extensin .CPP o .C para lenguaje C)
  • Programa binario generadopor el compiladora partir de un programa fuente. (extensin es .OBJ)

8.

  • Interpretes
    • Cada que se ejecuta el programa traduceinstruccin por instruccin a cdigo mquina. Ejemplos:DOS , Born shell de Unix, bash de Linux, BASIC, etc.
  • Compiladores
    • Traducen solo una vez todo el programa a cdigo objeto (binario) para despus crear un ejecutable . Ejemplos:C/C++ , PASCAL, etc.

PRACTICA CON DOS Y EL COMPILADORDE C 9. Cdigo fuente Interprete (traductor ) Ejecucin(De la instruccin) Cdigo Fuente (programa fuente) Compilador (traductor) Programa objeto Ejecucin directa 10. Editar y ejecutar un programa (.BAT) 11. Consiste en obtener elprograma objetocodificado en lenguaje maquina a partir delprograma fuente . 12.

  • El programa se instala en el sistema informtico, para la disposicin de los usuarios. Se evala peridicamente y se hacenadaptaciones y modificaciones necesarias para mantenerla actualizada.

EDICIN (programa fuente)COMPILACIN (programa objeto) PRUEBAS DE EJECUCIN.Se crea elprograma fuente (.CPP)almacenado en la computadora. EJERCICIO EDITAR Se obtiene unprograma objeto (.OBJ) , codificadoen lenguaje maquina a partir delprograma fuente . Realizada automticamente medianteel compilador del lenguaje. Elprograma ejecutable (.EXE) , se obtiene enlazando el programa objeto y los mdulos o rutinas internas del lenguaje que forman parte del la aplicacin necesarias. Proceso llevado a acabo en la etapa del MAKE. El programa ejecutable se somete a unjuego de datos pruebacapaz de detectar las posibles incorrecciones en su funcionamiento. EXPLOTACIN Y MANTENIMIENTO. ENLACE (programa ejecutable) 13. 14. Analizador lexicogrfico(scanner) .- examina en el programa fuente las unidades bsicas (lxicas) o tokens de informacin pertenecientes al lenguaje. Un token es un elemento o cadena con significado propio en el programa (palabras reservadas del lenguaje, identificadores, operadores, etc.). Un error puede ser una palabra reservada mal escrita, un identificador no permitido, etc. 15.

  • Analizador sintctico (parser) .- recibe la tira de tokens del scanner e investiga en ellas los posibles errores sintcticos que aparezcan. Errores de formato de instrucciones, duplicidad de identificadores de distintas variables, etc. Los errores son reportados mediante un listado de compilacin.

16.

  • Generador de cdigo intermedio .- traduce el resultado del anlisis anterior (en caso de ausencias de errores) a un cdigo intermedio propio del compilador, para que con l permita la portabilidad del lenguaje (posibilidad de utilizacin en distintas computadoras).

17.

  • Optimizador de cdigo .- su misin es tomar el cdigo intermedio y optimizarlo, adaptndolo a las caractersticas del procesador que va dirigido.

18.

  • Generador de cdigo final .- Traduce el cdigo intermedio optimizado en el cdigo final, es decir, en el lenguaje mquina del procesador al que el compilador va dirigido.

19.

  • Modulo de tratamiento de errores .- facilita la deteccin de errores y, en algn caso, recupera errores en las distintas fases de compilacin.

20.

  • Tipos de errores:
  • Lexicogrficos : se producen por tokens no reconocibles.
  • Sintcticos : son los que no cumplen con las reglas de sintaxis del lenguaje.
  • Semnticos : Se detecta en alguna fase de la compilacin y en algn caso en la de ejecucin y son aquellos que no interrumpen el proceso (warnings).
  • Lgicos : son los debidos a la utilizacin de un algoritmo o expresin incorrecta para el problema que se trata de resolver.
  • Ejecucin : son errores relacionados con desbordamientos, operaciones matemticamente irresolubles, etc.

21. Tabla de smbolos : es el elemento que almacena todos los datos referidos a variables y estructuras de datos del programa que se est compilando. 22.

  • Eduardo Alcalde, Miguel Garca. Informtica Bsica. Segunda Edicin. Edit. McGrawHill. 1994.