Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tarea1 200517857
Tarea1 200517857
Organizacin de lenguajes y compiladores 1 Seccin C Julio Alan Fernando Vidaurre Farfn 2005 - 17857 Estructura del proceso de compilacin Las fases del compilador se separan en dos grupos, fase de anlisis (back end) y fase de sntesis (front end). El objetivo de la fase de anlisis se encarga del manejo de errores y su salida se utiliza para la fase de sntesis, que en trminos generales se encarga de optimizar el cdigo de entrada y generar cdigo ensamblador o mquina. Analizador lxico Tambin llamado escner, lee carcter por carcter del programa origen, validando las entradas para aceptar solo los que son vlidos en el lenguaje. La segunda tarea del escner es agrupar los caracteres en sentencias o grupos de elementos llamados tokens o elementos lxicos. Otra de las tareas es el eliminar los comentarios, inclusin de ficheros, contabilizar el nmero de lneas y columnas para el manejo de errores. Analizador sintctico En esta fase el compilador verifica la entrada de tokens en base a una gramtica definida, para suministrar el rbol sintctico que lo reconoce. Tambin accede a la tabla de smbolos para iniciar el trabajo del analizador semntico, as como el chequeo de tipos y por supuesto el manejo de errores Analizador semntico La semntica corresponde al significado asociado a las estructuras formales (sintaxis) del lenguaje esto quiere decir que el analizador semntico se encarga de manejar la estructura y su significado del rbol sintctico. Una de las tareas de esta fase es la verificacin de los tipos, esta se puede hacer de forma dinmica (en tiempo de ejecucin) o esttica (en tiempo de compilacin), tambin verifica la compatibilidad entre un operador y sus operandos, duplicidad de nombres y flujo de control. Generacin de cdigo intermedio La tarea de sntesis puede comenzar con la generacin de cdigo intermedio. Este no es un lenguaje de programacin especifico sino corresponde a una maquina abstracta, que se debe definir lo ms general posible. Esta fase permite crear fcilmente un compilador para diferentes maquinas.