Introducción:
https://www.youtu.be/oxcdE92VDA0
En esta sección vamos a hablas sobre la asignatura de Compiladores y Lenguajes Formales para la carrera de Ingeniería Informática.
Puedes ver todos los apartados en el índice de la derecha o abajo en versión móvil.
Teoría sobre el tema en vídeo (abajo).
Conocimientos básicos:
Compilador: es el proceso de traducción que invierte un programa fuente escrito en un lenguaje de alto nivel a un programa objeto en un código máquina y listo para ejecutarse en un dispositivo.
Herramientas de los compiladores:
Editores: software utilizado para leer y escribir los programas.
Traductores: traducen o convierten un programa escrito en un lenguaje fuente a otro lenguaje objeto.
Intérpretes: igual que el traductor, pero la diferencia es que se ejecuta al mismo tiempo que traduce el código.
Ensambladores: traductor para una máquina en particular, traduce las instrucciones a código binario.
Procesadores: funcionan de forma independiente, su tarea es sustituir las macros por las sentencias que las componen, por ejemplo: la inclusión de librerías, eliminación de comentarios, etc.
Montadores de enlace: enlaza los diferentes módulos de código.
Cargadores: asigna las direcciones y espacio de memoria necesario para el programa.
Depuradores: permite encontrar errores y solucionarlos.
Desensambladores: traduce el lenguaje maquina a ensamblador, (hacer ingeniería inversa).
Decompiladores: traduce código maquina a un lenguaje de alto nivel.
Analizados de rendimiento: examinan el comportamiento del programa en el tiempo de ejecución.
Optimizadores de código: permiten analizar el código según diversos parámetros para su optimización.
Compresores: aplicaciones especificas para la compresión de ejecutables.
Fases de la compilación:
Análisis léxico: el analizado léxico lee una cadena de caracteres del programa fuente y los agrupa en componentes léxicos.
Análisis sintáctico: el analizador agrupa los tokens en grasas gramaticales que se usan para sintetizar la salida. Se suele representar con un árbol de análisis sintáctico.
Análisis semántico: revisa el programa fuente para comprobar la validez semántica de las sentencias aceptadas por el analizado sintáctico.