ARQUITECTURAS DE         ORDENADORES Y      COMPILADORES CRUZADOS                                    PUCESI               ...
ARQUITECTURAS DE ORDENADORESEn la disciplina de Procesadores de Lenguaje los compiladoresocupan una posición privilegiada,...
ARQUITECTURAS DE ORDENADORESLos dos primeros pilares se tratarán en los apartados siguientes, conel tercer pilar tan sólo ...
ARQUITECTURAS DE ORDENADORES¿Con qué se escribe el primer compilador?Las dos cuestiones anteriores están ligadas entre sí,...
ARQUITECTURAS DE ORDENADORESIntérpretes software o emuladores software. Unintérprete software de código binario es un prog...
ARQUITECTURAS DE ORDENADORESEjemplos comerciales de intérpretes software binario son losemuladores de DOS para distintos s...
ARQUITECTURAS DE ORDENADORES Un emulador hardware es mucho más rápido que un intérprete software, sin embargo sólo se pue...
ARQUITECTURAS DE ORDENADORES Traductores entre códigos binarios o ensambladores. Son conjuntos de instrucciones de la nue...
ARQUITECTURAS DE ORDENADORES Compiladores nativos. Los programas fuente antiguos se pueden volver a recompilar compilador...
ARQUITECTURAS DE ORDENADORES Otro problema clásico en arquitectura de ordenadores es como medir el rendimiento de las dif...
COMPILADORES CRUZADOSUno de los problemas que se plantea es desarrollar los primeros compiladores enuna arquitectura nueva...
COMPILADORES CRUZADOSSi ya existe un compilador del lenguaje S, que se ejecuta en una máquinaM y genera un código para la ...
COMPILADORES CRUZADOSSi LSN se ejecuta a través de SMM, entonces se tiene un compilador LMN , esdecir un compilador de L a...
COMPILADORES CRUZADOS Ejemplo 4.1: Traductor cruzado Z80-80x86LSN + SMM = LMN A. González González en su Proyecto Fin de...
COMPILADORES CRUZADOSCOMPILADORES; ING. DIEGO BAROJA; 5TOINGENIERÍA
COMPILADORES CRUZADOS  Las entradas al preprocesador EQN se tratan como si fuesen un  lenguaje de programación y se aplica...
Upcoming SlideShare
Loading in …5
×

Arquitecturas de ordenadores y compiladores cruzados

2,208 views

Published on

Arquitectura de los computadores. Compiladores cruzados

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,208
On SlideShare
0
From Embeds
0
Number of Embeds
42
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Arquitecturas de ordenadores y compiladores cruzados

  1. 1. ARQUITECTURAS DE ORDENADORES Y COMPILADORES CRUZADOS PUCESI ESCUELA DE INGENIERIA EN SISTEMASCOMPILADORES; ING. DIEGO BAROJA; 5TO INGENIERÍA
  2. 2. ARQUITECTURAS DE ORDENADORESEn la disciplina de Procesadores de Lenguaje los compiladoresocupan una posición privilegiada, dado que son lasherramientas más utilizadas por los profesionales de laInformática para el desarrollo de aplicaciones. En el casoparticular del desarrollo de compiladores es necesario tenerdefinidos tres pilares básicos: La definición léxica, sintáctica y semántica del lenguaje fuente a compilar. La estructura interna del compilador La arquitectura del ordenador y su repertorio de instrucciones que constituirá el lenguaje objetoCOMPILADORES; ING. DIEGO BAROJA; 5TOINGENIERÍA
  3. 3. ARQUITECTURAS DE ORDENADORESLos dos primeros pilares se tratarán en los apartados siguientes, conel tercer pilar tan sólo trata de resaltarse la relación intima entre lastecnologías de compilación y las arquitecturas de ordenadores, y losproblemas que plantea la rápida evolución de éstas últimas.El desarrollo de nuevas arquitecturas de ordenadores queorigina a su vez las correspondientes generaciones demicroprocesadores con sus repertorios de instruccionesplanteándose entre otros estos dos problemas:• ¿Cómo se pueden ejecutar las aplicaciones desarrolladaspara otras arquitecturas de ordenadores en la nuevaarquitectura?• Dado que un compilador es un programa demasiadocomplejo para escribirlo directamente en lenguaje máquina COMPILADORES; ING. DIEGO BAROJA; 5TO INGENIERÍA
  4. 4. ARQUITECTURAS DE ORDENADORES¿Con qué se escribe el primer compilador?Las dos cuestiones anteriores están ligadas entre sí, sinembargo el primer problema planteado no sólo es aplicable a laconstrucción de nuevas arquitecturas, también se aparececuando es necesaria la compatibilidad de aplicaciones entrediferentes sistemas operativos y arquitecturas de ordenadores.Las soluciones habitualmente empleadas para resolver esteproblema es el empleo de alguna de las técnicas y herramientaspresentadas en la fig. 10 y que se comentan a continuación.COMPILADORES; ING. DIEGO BAROJA; 5TOINGENIERÍA
  5. 5. ARQUITECTURAS DE ORDENADORESIntérpretes software o emuladores software. Unintérprete software de código binario es un programa quelee una a una las instrucciones binarias de la arquitecturaantigua que están en un fichero ejecutable, y lasinterpreta. Los intérpretes no son muy rápidos, pero sepueden construir y adaptar a distintas arquitecturas sinexcesivos costes de desarrollo. Se puede aumentar elrendimiento de los intérpretes creando una caché quepermita almacenar formas intermedias de instruccionesque ya se interpretaron previamente. COMPILADORES; ING. DIEGO BAROJA; 5TO INGENIERÍA
  6. 6. ARQUITECTURAS DE ORDENADORESEjemplos comerciales de intérpretes software binario son losemuladores de DOS para distintos sistemas operativos (por ejemploSoftPCÒ de Insignia Solutions). Otro ejemplo son los intérpretes dela máquina abstracta JVM (Java Virtual Machine) para distintasplataformas y que permiten ejecutar los códigos binariosdenominados bytecode (ficheros con la extensión .class).Emuladores hardware. Un emulador hardware trabaja deforma similar a un intérprete de software, pero estáimplementado en hardware de forma que decodifica lasinstrucciones de la arquitectura antigua y las traduce a la nuevaarquitectura. COMPILADORES; ING. DIEGO BAROJA; 5TO INGENIERÍA
  7. 7. ARQUITECTURAS DE ORDENADORES Un emulador hardware es mucho más rápido que un intérprete software, sin embargo sólo se puede diseñar para una máquina específica. Un ejemplo son los microprocesadores Java que emulan la máquina abstracta JVM (Java Virtual Machine), también denominados por Sun arquitecturas PicoJava. COMPILADORES; ING. DIEGO BAROJA; 5TO INGENIERÍA
  8. 8. ARQUITECTURAS DE ORDENADORES Traductores entre códigos binarios o ensambladores. Son conjuntos de instrucciones de la nueva arquitectura que reproducen el comportamiento de un programa en la arquitectura antigua. Habitualmente, la información de la máquina antigua se almacena en registros de la nueva máquina. Los programas traducidos a nivel binario o ensamblador son más rápidos que los intérpretes software o emuladores hardware, pero más lentos que los programas construidos con compiladores nativos, que aprovechan al máximo la arquitectura de la nueva máquina. Ejemplos de traductores binarios son los desarrollados por DEC para traducir instrucciones de las arquitecturas VAXÒ y MIPSÒ a la nueva arquitectura ALPHAÒ. COMPILADORES; ING. DIEGO BAROJA; 5TO INGENIERÍA
  9. 9. ARQUITECTURAS DE ORDENADORES Compiladores nativos. Los programas fuente antiguos se pueden volver a recompilar compiladores desarrollados para la nueva arquitectura, aprovechando al máximo sus características. Esta es la opción que produce la mejor calidad de código objeto en la nueva arquitectura, y por consiguiente la mayor velocidad con respecto a las opciones comentadas anteriormente. En el siguiente apartado se explican los compiladores cruzados, como una herramienta para portar compiladores y software entre distintas arquitecturas. COMPILADORES; ING. DIEGO BAROJA; 5TO INGENIERÍA
  10. 10. ARQUITECTURAS DE ORDENADORES Otro problema clásico en arquitectura de ordenadores es como medir el rendimiento de las diferentes arquitecturas y compararlas entre sí [PATT90]. Actualmente las pruebas de rendimiento más ampliamente aceptadas son las pruebas SPEC, desarrolladas por el organismo System Performance Evaluation Corporation y que están especializadas en medir el rendimiento en plataformas que utilizan microprocesadores diferentes. Una versión de las pruebas data de 1992, y con versiones diferentes para operaciones con enteros (SPECint92) y para operaciones con punto flotante (SPECfp92) [SHAR94]. COMPILADORES; ING. DIEGO BAROJA; 5TO INGENIERÍA
  11. 11. COMPILADORES CRUZADOSUno de los problemas que se plantea es desarrollar los primeros compiladores enuna arquitectura nueva, dado que un compilador es un programa demasiadocomplejo para escribirlo directamente en lenguaje máquina.Sin embargo cuando se trabaja con un nuevo tipo de microprocesador, alguientiene que escribir el primer compilador. Otro problema que se plantea es como sepuede ejecutar el código antiguo de otras arquitecturas en la nueva arquitectura.Sin embargo esta tarea se puede realizar más cómodamente en una máquinadonde ya se dispongan herramientas software, los compiladores cruzados seencargaran del resto del trabajo.Se denomina compilador cruzado (en inglés cross-compiler) a un compiladorque se ejecuta en una máquina pero el código objeto es para otra máquina.Supóngase que se escribe un compilador cruzado para un nuevo lenguaje L,siendo el lenguaje de implementación S, y el lenguaje objeto es el código de unamáquina N (nueva). Usando una notación en T, se tiene:COMPILADORES; ING. DIEGO BAROJA; 5TOINGENIERÍA
  12. 12. COMPILADORES CRUZADOSSi ya existe un compilador del lenguaje S, que se ejecuta en una máquinaM y genera un código para la máquina M, es decir usando la notación en TCOMPILADORES; ING. DIEGO BAROJA; 5TOINGENIERÍA
  13. 13. COMPILADORES CRUZADOSSi LSN se ejecuta a través de SMM, entonces se tiene un compilador LMN , esdecir un compilador de L a N que se ejecuta enM. Este proceso se puede ilustrar en la figura 13, que muestra juntos losdiagramas en T de estos compiladores.Cuando los diagramas en T se colocan juntos como en la figura 13, nótese que el lenguaje deimplementación S del compilador LSN debe ser el mismo que el lenguaje fuente delcompilador ya existente SMM, y además el lenguaje objeto M del compilador ya existentedebe ser el mismo que el lenguaje de implementación de LMN. Los tres diagramas en T de lafigura 13 pueden ponerse en forma de ecuación:COMPILADORES; ING. DIEGO BAROJA; 5TO LSN + SMM = LMNINGENIERÍA
  14. 14. COMPILADORES CRUZADOS Ejemplo 4.1: Traductor cruzado Z80-80x86LSN + SMM = LMN A. González González en su Proyecto Fin de Carrera de la E.U. de Informática de Oviedo [GONZ91], construye un traductor cruzado entre ensamblador para el microprocesador Z80 y los microprocesadores de la familia 80x86.COMPILADORES; ING. DIEGO BAROJA; 5TOINGENIERÍA
  15. 15. COMPILADORES CRUZADOSCOMPILADORES; ING. DIEGO BAROJA; 5TOINGENIERÍA
  16. 16. COMPILADORES CRUZADOS Las entradas al preprocesador EQN se tratan como si fuesen un lenguaje de programación y se aplica la tecnología de los traductores, con lo que se consiguen los siguientes beneficios:  Fácil implementación  Posibilidad de evolución del lenguaje La primera versión del compilador EQN se escribió en lenguaje C, y generaba los comandos para el formateador de texto TROFF En el siguiente diagrama se muestra un compilador cruzado para EQN, ejecutado sobre un ordenador PDP-11 de DECÒ, así se obtuvo la ejecución de EQNCTROFF a través del compilador de C del PDP-11 (C1111).COMPILADORES; ING. DIEGO BAROJA; 5TOINGENIERÍA

×