Traductor: Se denomina como un tipo de programa cuya función es convertir el código de un lenguaje en otro
Enviado por Miguel Salazar • 14 de Marzo de 2016 • Tarea • 1.294 Palabras (6 Páginas) • 805 Visitas
- Explique los siguientes términos en sus propias palabras:
- Traductor
- Intérprete
- Máquina Virtual
- Traductor: Se denomina como un tipo de programa cuya función es convertir el código de un lenguaje en otro y después ser ejecutado.
- Intérprete: Se denomina como un programa que lee línea por línea en un programa escrito en un lenguaje; en lenguaje fuente y así traduciendo a un código intermedio, para ejecutarlo. Donde estos lenguajes son de alto nivel. Solo realizan su traducción cuando sea necesario, instrucción por instrucción, y los resultados de la traducción normalmente no los guarda.
- Máquina Virtual: Es un programa encargado de instalar un software que controla por completo el comportamiento del computador real, albergando virtualmente en un ordenador físico. Donde este programa es instalado en un computador y puede disponer de varios sistemas operativos funcionando simultáneamente.
- ¿Qué diferencia hay entre interpretación y traducción?
Podemos definir que el traductor es un programa encargado de convertir un programa escrito en un lenguaje determinado en otro de diferente lenguaje para luego ser ejecutado. Mientras que el intérprete se encargara de leer o analizar, para ejecutar un programa escrito en el lenguaje fuente original sin aplicar traducción y así generando otro programa.
- Es concebible que un compilador genere salidas para el nivel de microarquitectura en lugar del nivel isa? comente las ventajas y las desventajas
La función del nivel de microarquitectura (nivel 1) es interpretar las instrucciones que vienen del nivel isa (nivel dos). Este nivel la maquina contemporánea está por encima de la lógica digital y debajo de la arquitectura de conjunto de instrucciones.
Es este segundo nivel (arquitectura de conjunto de instrucciones, ISA, Instruction Set Architecture) que esta un nivel por encima. El diseño del nivel de micro-arquitectura depende de la ISA que se está implementando, objetivo de costo y desempeño de la computadora.
La micro-arquitectura contiene un microprograma en la memoria ROM cuya tarea es buscar, decodificar y ejecutar las instrucciones de la ISA, este microprograma tiene un conjunto de variables llamadas estado de la computadora, al que todas las funciones tienen acceso. Cada función modifica al menos algunas de las variables que constituyen el estado.
En teoría, es posible que los compiladores generen salidas que puedan ser ejecutadas directamente por el nivel de microarquitectura en lugar del nivel ISA. Sin embargo, en la práctica, esta idea traería consigo más desventajas que ventajas.
Si el compilador genera salidas directamente al nivel del microarquitectura sin pasar por el nivel isa (juego de instrucciones). Las instrucciones compuesta son decodificadas internamente y ejecutadas con una serie de microinstrucciones almacenada en una ROM interna. A través de la circuitería se ejecutan las instrucciones, para esto requiere de cuatro a diez ciclos de reloj (al menos una por microinstrucción).
Ventajas:
- Facilidad de implementación del conjunto de instrucciones.
- Compatibilidad hacia delante y hacia atrás de nuevas.
- Se puede añadir instrucciones nuevas con solo extender el microprograma.
- Para la década de los 60 los procesadores se dotaron de poderosos conjuntos de instrucciones.
- Reducción del tiempo de ejecución de instrucciones complejas por medio de implementación directa de hardware.
Desventajas:
- Los microprogramas tendían a volverse más y más lentos a medida. que se hacían más voluminosos.
- Conjunto de instrucciones muy extenso.
- La complejidad del conjunto de instrucciones crece.
- Las instrucciones de longitud variable reducen el rendimiento del sistema
- Así mismo, una desventaja importante se reflejaría en la eficiencia de los compiladores, es decir, el gran desempeño que ofrecen los compiladores frente a los intérpretes se perdería.
- Los escritores de código a nivel de compiladores, para poder escribir código que sea ejecutado en el nivel ISA, tienen que conocer el modelo de memoria, los registros disponibles, los tipos de datos e instrucciones con que se cuenta, etc. En pocas palabras, deben conocer muy bien toda la definición del nivel ISA. Esto hace que los compiladores tengan un muy buen desempeño para producir código de lenguajes de alto nivel a lenguaje máquina. Si el código compilado se ejecutara directamente en el nivel del hardware, tardaría mucho más el tiempo de compilación, ya que no existirían las instrucciones que están en ISA y que facilitan en gran medida este proceso.
- ¿Puede imaginar una computadora multinivel en la que el nivel de dispositivos y el de lógica digital no son los niveles más bajos?
Las computadoras modernas están compuestas regularmente por dos o más niveles y pueden llegar a existir maquinas con hasta seis niveles, donde los dos niveles más bajos son el de “lógica digital” y el nivel de “microarquitectura”, los cuales son los más básicos y más óptimos para las computadoras que solo entienden lenguaje de máquina. Sin embargo ¿Se puede imaginar una computadora multinivel en la que estos dos niveles no sean los más bajos? Para poder responder esto, debemos tener en cuenta que cada máquina tiene cierto lenguaje de máquina o un cierto lenguaje que “entiende”, con el que la computadora puede ejecutar todos los programas escritos en ese lenguaje. Es decir que una maquina puede ser definida por un lenguaje dado, como por ejemplo C++ o cualquier otro lenguaje de alto nivel, pero crear una máquina de este tipo esto significaría un gran coste económico y una mayor complejidad a la hora de construirla. Aunque en la actualidad construirla no sería de gran complejidad tecnológica, la creación de esta máquina no sería tan rentable en comparación a otras técnicas.
...