Professional Documents
Culture Documents
2012
Definicin de compilador
Traductor: Programa que toma como entrada un texto escrito (llamado fuente) y da como salida otro texto (llamado objeto). Compilador: Traductor cuyo fuente es un lenguaje de alto nivel y cuyo objeto es un lenguaje de bajo nivel. Interprete: Compilador que ejecuta al mismo tiempo que traduce.
Estructura de un compilador
Estructura de un compilador
Anlisis Sintctico
Comprueba los valores unitarios del programa (tokens):
Palabras reservadas(do, while, if, ) Palabras no especificas(identificadores, constantes)
Formados por tipo y lexema
Int contador
Identificador = tipo contador = lexema
Estructura de un compilador
Anlisis Sintctico
Recibe los tokens del analizador lxico y comprueba que estn ordenados conforme a la gramtica.
Anlisis Semntico
Comprueba la validez del programa Comprobacin de tipos en operadores
Estructura de un compilador
Generacin de cdigo intermedio
Codifica el lenguaje fuente en un lenguaje intermedio entre el lenguaje objeto Permite la separacin entre front-end y back-end Instrucciones condicionales y saltos
Estructura de un compilador
Optimizacin de cdigo intermedio
Permite realizar mejoras en el cdigo intermedio Eliminacin de saltos consecutivos Factorizaciones Eliminar cdigo intil Optimizacin de bucles
Estructura de un compilador
Generacin de cdigo objeto
Generar una secuencia de instrucciones en cdigo ensamblador o mquina a partir del cdigo intermedio A=B+C
LOAD B ADD C STORE A
Estructura de un compilador
Tabla de smbolos
Tabla donde se registran los identificadores, constantes, funciones y otros objetos especificados en el programa fuente El compilador desarrolla funciones comunes de acceso a ella
Manejo de errores
Mensajes de error que el compilador emite cuando encuentra una inconsistencia en cualquiera de las fases de compilacin Normalmente en una compilacin no se muestran todos los errores producidos:
Ocultacin de otros errores Avalancha de errores
Se puede
Pararse al encontrar cualquier error Intentar recuperar todos los errores de una pasada
Estructura de un compilador
Fuente
Anlisis lxico Anlisis sintctico Anlisis semntico Generacin de cdigo intermedio
FRONT-END
Cdigo Intermedio
BACK-END
Cdigo objeto
Prctica
Pasos detallados para la realizacin de una rutina que imprima en una ventana de comandos: Nombre Completo(string), Edad(int), Fecha Actual(Date). Usando el compilador de C# y VB.Net en modo consola y PHP.
Prctica
Para realizar esta practica tienen que investigar como hacer la compilacin desde la lnea de comandos de C# y VB.net . Asi como las sentencias bsicas de estos lenguajes de programacin para realizar lo solicitado. Tambin tienen que verificar que el equipo donde harn la practica tenga instalado .net framework. Futuros ingenieros ojo para la parte de PHP tendrn que Ingeniarse como hacer la COMPILACION del cdigo fuente escrito en este lenguaje.
La entrega de esta practica ser, haciendo un video o diapositivas realizadas por ustedes mismos como resolvieron lo solicitado, adems de los archivos fuentes y el archivo con el cdigo compilado, todo para la siguiente Clase.