popurry

Páginas: 64 (15970 palabras) Publicado: 15 de enero de 2014
iPOR QUE COI1PILADORES? UNA BREVE HISTORIA
Con el advenimiento de la computadora con programa almacenado, iniciado por John von
Neumarin a finales de la década de 1940, se hizo necesario escribir secuencias de códigor,
o programas, que darían como resultado que estas computadoras realizaran los cálculos deseados.
Al principio estos programas se escribían en lenguaje de máquina: códigos nuni6-ricos que rcpresentaban las operaciones reales de la iiváquina que iban a ckctiiarse. Por
+inplo,
representa la instrucción parti mover el nílrnertt 2 a la i~hicaciór0i0 00 (en sistenia hex;~ RO
MUL RO, 2 ;; doble valor en RO
MOV R1, &a ;; dirección de a -> R1
ADD R1, RO ;; sumar RO a R1
MOV *R1, 6 ;; constante 6 -> dirección en R1
En este código utilizamos una convención propia de C paradireccionar modos, de
manera que &a es la dirección de a (es decir, la dirección base del arreglo) y que *R1
significa direccionamiento indirecto de registro (de modo que la última instrucción almacena
el valor 6 en la dirección contenida en Rl). En este código también partimos del
supuesto de que la máquina realiza direccionamiento de byte y que los enteros ocupan
dos bytes de memoria (deaquí el uso del 2 como el factor de multiplicación en la segunda
instrucción).
OPTlMlZADOR DE C~DIGO OBJETIVO
En esta fase el compilador intenta mejorar el código objetivo generado por el generador
de código. Dichas mejoras incluyen la selección de modos de direccionamiento para
mejorar el rendimiento, reemplazando las instrucciones lentas por otras rápidas, y eliminando
las operacionesredundantes o innecesarias.
En el código objetivo de muestra dado es posible hacer varias mejoras. Una de ellas
es utilizar una instrucción de desplazamiento para reemplazar la multiplicación en la
segunda instrucción (la cual por lo regular es costosa en términos del tiempo de ejecución).
Otra es emplear un modo de direccionamiento más poderoso, tal como el direccionamiento
indizado para realizarel almacenamiento en el arreglo. Con estas dos
optimizaciones nuestro código objetivo se convierte en
MOV RO, index ; ; valor de index -> RO
SHL RO ;Í doble valor en RO
MOV &a[ROl, 6 ;; constante 6 -> dirección a + RO
Esto completa nuestra breve descripción de las fases de un compilador. Querernos
enfatizar que esta descripción sólo es esquemática y no necesariamente representa laorganización
real de un compilador trabajando. En su Lugar, los compiladores muestran
una amplia variación en sus detalles de organización. No obstante, las fases que describimos
están presentes de alguna forma en casi todos los compiladores.
También analizamos sólo de manera superficial las estructuras de datos necesarias
para mantener la información necesaria en cada fase, tales como el árbolsintáctico, el
código intermedio (suponiendo que éstos no sean iguales), la tabla de literales y la tabla
de símbolos. Dedicamos la siguiente sección a una breve perspectiva general de las estructuras
de datos principales cn un compilador.PERFILADORES
Un perfilador es un programa que recolecta estadísticas sobre el comportamiento de un
programa objeto durante la ejecución. Las estadísticas típicasque pueden ser de interés
para el programador son el número de veces que se llama cada procedimiento y el porcentaje
de tiempo de ejecución que se ocupa en cada uno de ellos. Tales estadísticas pueden
ser muy útiles para ayudar al programador a mejorar la velocidad de ejecución del
progrrnna. A veces el compilador utilizará incluso la salida del perfilador para mejorar
de manera automática elcódigo objeto sin la intervención del programador.
ADMINISTRADORES DE PROYECTO
Los modernos proyectos de softwae por lo general son tan grandes que tienen que ser
eniprendidos por grupos de programadores en lugar de por un solo programador. En tales
casos es importante que los archivos que se esthn trabajando por personas distintas
se encuentren coordinados, y este es el trabajo de un...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS