Procesadores de Lenguaje: Compilación, Interpretación y Fases Clave
Clasificado en Informática
Escrito el en español con un tamaño de 4,08 KB
Los procesadores de lenguaje son programas diseñados para trabajar con entradas pertenecientes a un lenguaje específico. Se clasifican en:
Traductores
Un traductor es un programa que recibe una entrada escrita en un lenguaje y la convierte a una salida en otro lenguaje.
Intérpretes
Un intérprete obtiene resultados mientras analiza la entrada. Se clasifican en compiladores, ensambladores y preprocesadores.
Compiladores
Un compilador transforma un lenguaje de nivel medio o alto en lenguaje ensamblador o lenguaje máquina.
Ensambladores
Un ensamblador transforma un programa escrito en lenguaje ensamblador en lenguaje máquina.
Precompiladores
Un precompilador se ejecuta antes del compilador y es capaz de reconocer estructuras, declaraciones e instrucciones en otros lenguajes.
Pseudocompiladores
Un pseudocompilador actúa como un compilador, pero su producto no es ejecutable en ninguna máquina real, sino en una máquina virtual. Toma como entrada un programa escrito en un lenguaje determinado y lo transforma a código de byte. Este es un código de un microprocesador que no existe, pero es un programa que emula a dicho procesador, permitiendo tener tantos emuladores como microprocesadores reales existan.
Intérpretes (en detalle)
Un intérprete es un programa que ejecuta cada una de las instrucciones y declaraciones que encuentra, facilitando la prueba del código de manera casi inmediata.
Fases de la Compilación
Preprocesamiento
El preprocesador es un traductor encargado de transformar instrucciones a instrucciones del lenguaje anfitrión, sobre las cuales trabajará el compilador.
Análisis Léxico
En el análisis léxico, la cadena de caracteres del programa fuente se despoja de comentarios, espacios en blanco y otros elementos. Se identifican los elementos gramaticales, y cada uno se sustituye por un código numérico conocido como token.
Análisis Sintáctico
En el análisis sintáctico, la cadena de tokens pasa por el parser, que verifica que la secuencia y disposición de los tokens corresponda con la sintaxis del lenguaje.
Análisis Semántico y Generación de Código
El análisis semántico se utiliza para identificar el sentido de la acción a realizar y generar el código correspondiente en lenguaje máquina.
Optimización de Código
En la optimización de código, se examinan secuencias de instrucciones y estructuras de datos buscando su sustitución con secuencias, instrucciones o estructuras más cortas, rápidas o eficientes.
Ligado
En el ligado, todas las referencias pendientes de resolver sobre rutinas, módulos, bibliotecas y demás porciones de código necesarias para el funcionamiento del programa son cubiertas. La resolución puede consistir desde proporcionar una dirección o llamado a una función hasta la inclusión de enormes porciones de código.
La integración de los diversos módulos que conforman al programa.
La resolución de las direcciones de memoria designadas en el área de datos para el almacenamiento de variables, constantes y estructuras complejas; así como la determinación del tamaño de éstas.
La identificación de las direcciones de memoria en la sección de código correspondientes a los puntos de entrada en saltos condicionales e incondicionales junto con los puntos de arranque de las subrutinas.
La resolución de los diversos llamados a los servicios o rutinas del sistema operativo, código dinámico y bibliotecas de tiempo de ejecución.
La especificación de la cantidad de memoria destinadas para las áreas de datos, código, pila necesarias y otorgadas para su ejecución.
La incorporación de datos y código necesarios para la carga del programa y su ejecución.