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.

Entradas relacionadas: