Compiladores

Solo disponible en BuenasTareas
  • Páginas : 33 (8109 palabras )
  • Descarga(s) : 0
  • Publicado : 27 de agosto de 2012
Leer documento completo
Vista previa del texto
COMPILADORES E INTÉRPRETES: Definiciones y conceptos
Genéricamente hablando, en ciencias de la computación, los procesadores de
lenguajes son aquellos programas destinados a trabajar sobre una entrada que, por la
forma como ha sido elaborada, pertenece a un lenguaje particular reconocido o aceptado
por el programa en cuestión. Los procesadores de Lenguajes se clasifican como
traductores ointérpretes.
Un traductor es un programa que recibe una entrada escrita en un lenguaje (el
lenguaje fuente) a una salida perteneciente a otro lenguaje (el lenguaje objeto),
conservando su significado. En términos computacionales esto significa que tanto la
entrada como la salida sean capaces de producir los mismos resultados. Un intérprete,
por otra parte, no lleva a cabo tal transformación; ensu lugar obtiene los resultados
conforme va analizando la entrada. Los traductores son clasificados en compiladores,
ensambladores y preprocesadores.
Un compilador es un programa que recibe como entrada un programa escrito en
un lenguaje de nivel medio o superior (el programa fuente) y lo transforma a su
equivalente en lenguaje ensamblador (el programa objeto), e inclusive hasta lenguajemáquina (el programa ejecutable) pero sin ejecutarlo. Un compilador es un traductor. La
forma de como llevará a cabo tal traducción es el objetivo central en el diseño de un
compilador. Para facilitar la portabilidad, se puede escribir un compilador en el propio
lenguaje fuente que traduce, entonces se llama autocompilador, aunque, como es obvio,
no es posible ejecutarlo la primera vez.
Unensamblador es el programa encargado de llevar a cabo un proceso
denominado de ensamble o ensamblado. Este proceso consiste en que, a partir de un
programa escrito en lenguaje ensamblador, se produzca el correspondiente programa en
lenguaje máquina (sin ejecutarlo), realizando:
• La integración de los diversos módulos que conforman al programa.
• La resolución de las direcciones de memoriadesignadas 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 llamadosa 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 y montículo 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.
Un precompilador, también llamado preprocesador, esun programa que se
ejecuta antes de invocar al compilador. Este programa es utilizado cuando el programa
fuente, escrito en el lenguaje que el compilador es capaz de reconocer (de aquí en
adelante denominado lenguaje anfitrión en inglés host language), incluye estructuras,
instrucciones o declaraciones escritas en otro lenguaje (el lenguaje empotrado en inglés
embeded language). El lenguajeempotrado es siempre un lenguaje de nivel superior o
especializado (e.g. de consulta, de cuarta generación, simulación, cálculo numérico o
estadístico, etcétera). Siendo que el único lenguaje que el compilador puede trabajar es

aquel para el cual ha sido escrito, todas las instrucciones del lenguaje empotrado deben
ser traducidas a instrucciones del lenguaje anfitrión para que puedan sercompiladas.
Así pues un precompilador también es un traductor.
Los precompiladores son una solución rápida y barata a la necesidad de llevar
las instrucciones de nuevos paradigmas de programación (e.g. los lenguajes de cuarta
generación), extensiones a lenguajes ya existentes (como el caso de C y C++) y
soluciones de nivel conceptual superior (por ejemplo paquetes de simulación o cálculo...
tracking img