Compiladores

Solo disponible en BuenasTareas
  • Páginas : 5 (1196 palabras )
  • Descarga(s) : 0
  • Publicado : 4 de septiembre de 2010
Leer documento completo
Vista previa del texto
COMPILADORES

Se denomina programa fuente, al código simbólico escrito por el programador, cuyas sentencias responden o respetan las reglas gramaticales de un determinado lenguaje. Cada lenguaje define su alfabeto y la estructura de sus frases o sentencias.
Sin embargo, estos lenguajes son facilidades creadas para el programador. Las computadoras no los pueden ejecutar directamente. Paraello, se diseñaron programas específicos que leen dichos programas, determinan si cada una de sus sentencias responde a las reglas del lenguaje que representan y las traducen.
Se llama programa objeto, al resultado de dicha traducción y que podrá ser ejecutado en una computadora.

Un programa que cumpla las funciones antes mencionadas se denomina compilador.

Básicamente, existen dos grandesformas de traducir programas fuentes para su posterior ejecución: programas compilados (previamente pasados por un compilador) y programas interpretados no necesitan pasar por un compilador para ejecutarse. Su ejecución se implementa mediante la intervención de un intérprete.
Se trata de traductores-ejecutores ya que con cada instrucción realizan un proceso triple de lectura-traducción-ejecución.Comparando su actuación con la de un ser humano, un compilador equivale a un traductor profesional que, a partir de un texto, prepara otro independiente traducido a otra lengua, mientras que un intérprete corresponde al intérprete humano, que traduce de viva voz las palabras que oye, sin dejar constancia por escrito.

Perspectiva histórica:
– En los 50 los compiladores eran consideradosprogramas muy difíciles de construir
– Ejemplo: Fortran evolucionó durante 18 años de trabajo en grupo.
– Hoy en día se han desarrollado técnicas sistemáticas, entornos de programación y herramientas de software que facilitan la tarea de desarrollo de compiladores, intérpretes y traductores.

Características de un compilador

Desde el punto de vista de la plataforma donde actuará, un compiladorse divide en dos partes:

* Front End: analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores de la tabla de símbolos. Parte que suele ser independiente de la plataforma o sistema operativo para el que funcionará.

* Back End: parte en donde se genera el código máquina exclusivo para una plataforma a partir de lo analizado en el front end.

Por logeneral el resultado del back end no puede ser ejecutado directamente, se necesita pasar por un proceso de enlazado (linker).

Intérpretes versus compiladores

Cualquier lenguaje puede ser ejecutado tanto vía intérprete o vía compilador, pero algunos lenguajes suelen asociarse más a una vía que a la otra, y por esto son llamados "lenguajes interpretados" o "lenguajes compilados"respectivamente.

Cuando el intérprete ejecuta un programa, se nutre de la versión fuente, previa carga en memoria.
Toma cada instrucción, la convierte a su equivalente en código fuente den tiempo real y recién la ejecuta.
Por lo tanto, sigue la técnica de paso por paso. También el acceso a variables es más lento en un intérprete, porque debe mapear los identificadores para almacenar las localizaciones entiempo real tantas veces como aparezca la misma variable en el programa.

La principal ventaja del proceso de compilación frente al de interpretación es que los programas se ejecutan mucho más rápidamente una vez compilados; por el contrario, es más cómodo desarrollar un programa mediante un intérprete que mediante un compilador puesto que en el intérprete las fases de edición y ejecución estánmás integradas. La depuración de los programas suele ser más fácil en los intérpretes que en los compiladores puesto que el código fuente está presente durante la ejecución. Estas ventajas pueden incorporarse al compilador mediante la utilización de entornos de desarrollo y depuradores simbólicos en tiempo de ejecución.

• Reemplazar nombres de archivos y variables
• Rendimiento de...
tracking img