domingo, 17 de noviembre de 2013

COMPILADORES

 COMPILADORES

USOS Y FUNCION DE LOS COMPILADORES
USOS
Los compiladores trabajan en fases, las cuales transforman el programa fuente de una representacion en otra.
Se usa con el fin de analizar las seccciones, administrar la taba de simbolos y manejar los errores, para esto utiliza el analisis lexico, analisis sintactico, analisis semantico, generacion de codigo intermedio, optimacion de codigo y generacion de codigo.

Dentro de las caracteristica im portantes de un compilador es que traduce de un Lenguaje de alto nivel a uno de bajo nivel.


FUNCION


La función principal que cumple es traducir a un lenguaje mucho mas sencillo y entendible por la maquina, informa al usuario si existen errores en el código fuente con el fin de ejecutar la aplicación sin problema, si existe algún error simplemente se detiene.

Tambien registra los identificadores utilizados en el programa fuente y toma la informacion de los atributos de cada identificador. 
 Los compiladores son programas o herramientas encargadas de compilar. Un compilador toma un texto (código fuente) escrito en un lenguaje de alto nivel  y lo traduce a un lenguaje comprensible por las computadoras (código objeto).

Básicamente, existen dos grandes formas de
 ejecutar  programas: programas compilados (previamente pasados por un compilador) y programas interpretados (necesitan pasar por un intérprete  para ejecutarse en tiempo real).

Características
 de un compilador

Generalmente un compilador se divide en dos partes:

* Front End: parte que 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 osistema 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 lo general el resultado del back end no puede ser ejecutado directamente, se necesita pasar por un proceso de
 enlazado (linker).

Existen varios tipos de compiladores: Compiladores cruzados, Compiladores optimizadores, Compiladores de una sola pasada, Compiladores de varias pasadas, Compiladores JIT (Just In Time).

Intérpretes vs 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.

También puede darse que un programa contenga partes que son implementadas vía
 intérprete y otras vía compilador.

También existen intérpretes que incluyen cierta "compilación" en el medio. Son aquellos que compilan a un código intermedio llamado
 bytecode, que es más eficiente de ejecutar que hacerlo directamente desde el código fuente.

En general, la principal desventaja de los intérpretes, es que cuando un programa es interpretado, suele ejecutarse más lento que si el mismo programa estuviese compilado. Esto se debe a que el intérprete debe analizar cada
 sentencia en el programa en cada ejecución (un análisis en tiempo real). También el acceso a variables es más lento en un intérprete, porque mapear los identificadores para almacenar las localizaciones debe hacerse repetidas veces en tiempo real.

0 comentarios:

Publicar un comentario