Está en la página 1de 6

TEORIA Y LENGUAJE DE COMPILADORES

TIPOS DE COMPILADORES


EAP INGENIERA INFORMTICA 1
UNIVERSIDAD NACIONAL JOS FAUSTINO SNCHEZ CARRIN

TIPOS DE COMPILADORES

COMPILADOR CRUZADO
Un compilador cruzado es un compilador capaz de crear cdigo ejecutable para
otra plataforma distinta a aqulla en la que l se ejecuta. Esta herramienta es til
cuando quiere compilarse cdigo para una plataforma a la que no se tiene acceso,
o cuando es incmodo o imposible compilar en dicha plataforma (como en el caso
de los sistemas embebidos).
Un ejemplo de un compilador con estas posibilidades es el NASM, que puede
ensamblar, entre otro formatos, ELF (para sistemas UNIX) y COM (para DOS).

USO DE LOS COMPILADORES CRUZADOS
El uso fundamental de un compilador cruzado es separar el entorno de
construccin del entorno de destino. Esto es til en diversas situaciones:
Ordenadores integrados en un dispositivo dispone de pocos recursos en
extremo. Por ejemplo, un horno de microondas tiene un equipo muy
pequeo para leer su pantalla tctil y sensor de puerta, dar salida a una
pantalla digital y altavoces, y el control de la maquinaria para la coccin de
alimentos. Este equipo no ser lo suficientemente potente como para
ejecutar un compilador, un sistema de archivos, o un entorno de desarrollo.
Desde la depuracin y las pruebas tambin pueden requerir ms recursos
que estn disponibles en un sistema integrado, de compilacin cruzada
puede ser menos implicados y menos propenso a errores de compilacin
nativa.
Compilacin de varios equipos. Por ejemplo, una empresa la posibilidad
de apoyar varias versiones diferentes de un sistema operativo o para
apoyar varios sistemas operativos diferentes. Mediante el uso de un
compilador cruzado, un solo ambiente la construccin se puede configurar
para compilar cada uno de estos objetivos.
Compilar en una granja de servidores . Al igual que en la compilacin de
varias mquinas, una complicada construccin que involucra muchos
compilar las operaciones se pueden ejecutar en cualquier mquina que est
libre, independientemente de su hardware o la versin del sistema operativo
que se est ejecutando.
TEORIA Y LENGUAJE DE COMPILADORES
TIPOS DE COMPILADORES


EAP INGENIERA INFORMTICA 2
UNIVERSIDAD NACIONAL JOS FAUSTINO SNCHEZ CARRIN

Programa previo a una nueva plataforma. En el desarrollo de software
para una plataforma nueva, o el emulador de una plataforma de futuro, se
utiliza un compilador cruzado para compilar las herramientas necesarias,
tales como el sistema operativo y un compilador nativo.
Compilacin de cdigo nativo para emuladores de la tercera edad-ya
obsoleta plataformas como el Commdore 64 o Apple II por los entusiastas
que utilizan compiladores cruzados que se ejecutan en una plataforma
actual (como Azteca C de MS-DOS 6502 compiladores cruzados se ejecuta
en Windows XP ).
El uso de mquinas virtuales (como Java JVM ) resuelve algunas de las razones
por las que se desarrollaron compiladores cruzados. El paradigma de la mquina
virtual permite la salida del mismo compilador que se utiliza a travs de sistemas
objetivos mltiples.
Normalmente, la arquitectura de hardware diferente (por ejemplo, compilar un
programa destinado a la arquitectura MIPS en un 86 equipo), pero de compilacin
cruzada es tambin aplicable cuando slo el sistema operativo el medio ambiente
difiere, ya que al compilar un FreeBSD programa bajo Linux , o incluso la
biblioteca del sistema , ya que al compilar programas con uClibc en una glibc de
acogida.

COMPILADOR OPTIMIZADOR

es el proceso de ajuste de la salida de un compilador para minimizar o maximizar
algunos atributos de un archivo ejecutable del programa de computadora. El
requisito ms comn es reducir al mnimo el tiempo necesario para ejecutar un
programa , un comn uno menos es reducir al mnimo la cantidad de memoria
ocupada. El crecimiento de ordenadores porttiles ha creado un mercado para
reducir al mnimo la energa consumida por un programa. optimizacin del
compilador se implementa generalmente mediante una secuencia de la
optimizacin de las transformaciones, los algoritmos que tienen un programa y lo
transforman para producir un programa de salida que utiliza menos recursos.
Se ha demostrado que algunos problemas de optimizacin de cdigo son NP-
completo , o incluso indecidible . En la prctica, factores tales como el
programador de la voluntad s 'que esperar a que el compilador para completar su
tarea superior de poner lmites en las optimizaciones que un implementador del
TEORIA Y LENGUAJE DE COMPILADORES
TIPOS DE COMPILADORES


EAP INGENIERA INFORMTICA 3
UNIVERSIDAD NACIONAL JOS FAUSTINO SNCHEZ CARRIN

compilador podra proporcionar. (La optimizacin es generalmente una muy CPU
- memoria intensiva proceso. y) En el pasado, la memoria de las limitaciones de
equipo fueron tambin un factor importante en la limitacin de las optimizaciones
que se pudo realizar. Debido a todos estos factores, la optimizacin rara vez
produce "ptimo" de salida en ningn sentido, y de hecho una "optimizacin"
puede impedir el rendimiento en algunos casos, sino que son mtodos heursticos
para mejorar el uso de recursos en los programas tpicos.
Son aquellos compiladores que aplican transformaciones a los programas para
mejorar el cdigo.
ANLISIS DEL FLUJO DE CONTROL.- Proceso que identifica los lazos dentro
del grafo de flujo de un programa.
ANLISIS DEL FLUJO DE DATOS.- Proceso para recopilar informacin sobre el
modo en que se utilizan las variables en un programa. Considera varios algoritmos
para recopilar informacin, y el impacto de construcciones de lenguaje como los
procedimientos y apuntadores.
TRANSFORMACIONES.- Mejoras que se realizan al cdigo con el fin de obtener
programas en lenguaje objeto eficientes.










OPTIMIZADOR
DE CDIGO
ETAPAS
PREVIAS
ANLISIS DEL
FLUJO DE
CONTROL
ANLISIS DEL
FLUJO DE
DATOS
GENERADOR DE
CDIGO
TRANSFORMACIONES
TEORIA Y LENGUAJE DE COMPILADORES
TIPOS DE COMPILADORES


EAP INGENIERA INFORMTICA 4
UNIVERSIDAD NACIONAL JOS FAUSTINO SNCHEZ CARRIN


COMPILADOR DE UNA PASADA
Es un compilador de un compilador que pasa a travs del cdigo fuente de cada
unidad de compilacin una sola vez. En otras palabras, un compilador de una
pasada no "mirar atrs" en el cdigo que previamente procesados. Otro trmino
usado a veces es compilador estrecha, que hace hincapi en el alcance limitado-
compilador tiene la obligacin de pasar de uno a utilizar. Esto est en contraste
con un compilador multi-pass que atraviesa el cdigo fuente y / o el rbol de
sintaxis abstracta en varias ocasiones, la creacin de una o ms representaciones
intermedias que pueden ser arbitrariamente refinado.
Mientras que los compiladores de un paso puede ser ms rpido que los
compiladores de mltiples pasadas, no son capaces de generar programas
eficientes, debido al alcance limitado. (Muchas optimizaciones requieren mltiples
pasos en un programa, subprograma o bloque bsico .) Adems, algunos
lenguajes de programacin , simplemente no se puede compilar en un solo paso,
como resultado de su diseo.
Por el contrario, algunos lenguajes de programacin han sido diseados
especficamente para ser compilado con los compiladores de paso, y son
especiales construcciones para permitir un paso de compilacin. Un ejemplo de
esta construccin es la declaracin adelante en Pascal . Normalmente Pascal
exige que los procedimientos de estar completamente definida antes de su uso.
Esto ayuda a un paso del compilador uno con su comprobacin de tipos : llamar a
un procedimiento que no se ha definido un claro error.

En los compiladores de una sola pasada la fase de anlisis lxico se encarga de
crear la tabla de smbolos e introducir en ella los identificadores, pero la
asociacin de la mayora de los atributos queda en manos del anlisis semntico,
que debe localizar cada smbolo y actualizarlo.

En compiladores de una sola pasada, en los que todas las fases se efectan
prctica-mente en paralelo a medida que se recorre el cdigo fuente, puede
utilizarse una pila de tablas de smbolos. Cada vez que se entra en un nuevo
bloque se crea una tabla de smbolos, una tabla hash en la que se almacenaran
los smbolos de ese mbito, y se coloca en el tope de la pila. Al llegar al final del
bloque actual, que fue el ltimo que se coloc en la pila, se extrae de sta y se
descarta, puesto que ya no va a volver a ser til. Al encontrar en el cdigo un
identificador ste se buscara en la tabla hash que est en el tope de pila, a
TEORIA Y LENGUAJE DE COMPILADORES
TIPOS DE COMPILADORES


EAP INGENIERA INFORMTICA 5
UNIVERSIDAD NACIONAL JOS FAUSTINO SNCHEZ CARRIN

continuacin en la tabla que se encuentra justo debajo que representa el mbito
que acta como contenedor del actual y as sucesivamente, hasta llegar al primer
nivel que sera el global.

COMPILADOR DE MULTIPLES PASADAS
Es un tipo de compilador que procesa el cdigo fuente o rbol de sintaxis
abstracta de un programa varias veces. Esto est en contraste con un compilador
de un paso , que atraviesa el programa de una sola vez. Cada paso tiene el
resultado del paso anterior como la entrada, y crea una salida intermedia. De esta
manera, el cdigo (intermedio) es mejor pasar por el paso, hasta que el ltimo
pase emite el cdigo final.
De paso de varios compiladores a veces se llaman compiladores de ancho, se
refiere al mbito de aplicacin mayor de los pases: pueden "ver" todo el programa
que estn siendo recopilados, en lugar de slo una pequea parte de ella. El
mbito de aplicacin ms amplia por lo tanto a disposicin de estos compiladores
permite una mejor generacin de cdigo (por ejemplo, un tamao ms pequeo
cdigo, cdigo ms rpido) en comparacin con la salida de los compiladores de
una pasada, a costa de tiempo y compilador de alto consumo de memoria.
Adems, algunos idiomas no se puede compilar en un solo paso, como resultado
de su diseo.
Requiere pasos intermedios para producir cdigo en otro lenguaje y una pasada
final para producir y optimizar el cdigo producido durante pasos anteriores.
Ejemplo:
Recursivo indirecta


COMPILADOR JIT
Tambin conocida como traduccin dinmica, es un mtodo para mejorar el
rendimiento en tiempo de ejecucin de los programas de ordenador .
Tradicionalmente, los programas de ordenador tiene dos modos de
funcionamiento en tiempo de ejecucin, ya sea interpretado o esttica ( antes de
tiempo ) de compilacin.
[ cita requerida ]
cdigo Interpretado se traduce de un lenguaje
de alto nivel a un cdigo de mquina, de forma continua durante toda la ejecucin,
mientras que compilado estticamente cdigo se traduce en cdigo mquina antes
de la ejecucin, y slo requiere de esta traduccin una vez.
TEORIA Y LENGUAJE DE COMPILADORES
TIPOS DE COMPILADORES


EAP INGENIERA INFORMTICA 6
UNIVERSIDAD NACIONAL JOS FAUSTINO SNCHEZ CARRIN

compiladores JIT representan un enfoque hbrido, con la traduccin que ocurren
continuamente, al igual que con los intrpretes, pero con el almacenamiento en
cach de cdigo traducido para reducir al mnimo la degradacin del rendimiento.
Tambin ofrece otras ventajas sobre el cdigo compilado estticamente en tiempo
de desarrollo, tales como el manejo de tipos de datos en tiempo de ejecucin y la
capacidad para hacer cumplir las garantas de seguridad.
JIT se basa en dos ideas anteriores en entornos de tiempo de ejecucin: la
compilacin de cdigo de bytes y la compilacin dinmica . Se convierte el cdigo
en tiempo de ejecucin antes de que la ejecucin de forma nativa, por ejemplo
cdigo de bytes nativo en cdigo mquina .
Varios entornos de ejecucin moderna, tales como Microsoft s ' . NET Framework
y la mayora de las implementaciones de Java , se basan en la compilacin JIT
para la velocidad de ejecucin de cdigo-alto.

El compilador JIT convierte los cdigos de bytes en cdigo mquina nativo. Este
proceso de compilacin se realiza slo una vez, y se crea un vnculo entre el
cdigo de bytes y el correspondiente cdigo compilado. El propsito de este
proceso es aumentar la velocidad en que se ejecutan programas Java. Puede
observar un aumento de velocidad de ms de 50 veces cuando algunos
matemticamente intensivas realizan funciones.

Nota : Java algunos programas pueden ejecutarse a la misma velocidad o ms
lentamente cuando se utiliza el compilador JIT.

Puede habilitar o deshabilitar el compilador JIT mediante los pasos siguientes:
1. Haga clic en Inicio, seleccione Configuracin y, a continuacin, haga
clic en Panel de control.
2. Haga doble clic en Internet.
3. Haga clic en la ficha Opciones avanzadas.
4. Haga clic en la casilla de verificacin Habilitar compilador JIT de Java
para activarla o desactivarla y, a continuacin, haga clic en Aceptar.
Nota : debe apagar y reiniciar Internet para que el cambio surta efecto.

También podría gustarte