Está en la página 1de 2

Ejercicios de la sección 1.

1) ¿Cuál es la diferencia entre un compilador y un intérprete?

Un intérprete traduce instrucciones de alto nivel en una forma intermedia para ser ejecutado.
En contraste, un compilador, traduce instrucciones de alto nivel directamente en lenguaje de
máquina. El intérprete traduce un programa línea a línea mientras que el compilador traduce el
programa entero y luego lo ejecuta.

2) ¿Cuáles son las ventajas de (a) un compilador sobre un intérprete, y (b) las de un
intérprete sobre un compilador?

Ventajas de un compilador sobre un intérprete:

Un compilador suele generar programas más rápidos y eficientes, ya que el análisis del lenguaje
fuente se hace una sola vez, durante la generación del programa equivalente. En cambio, un
intérprete se ve obligado generalmente a analizar cada instrucción tantas veces como se ejecute
(incluso miles o millones de veces).

Ventajas de un intérprete sobre un compilador:

Un intérprete facilita la búsqueda de errores, pues la ejecución de un programa puede


interrumpirse en cualquier momento para estudiar el entorno (valores de las variables, etc.).
Además, el programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la
ejecución.

Un intérprete permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar
código contenido en una variable en forma de cadenas de caracteres. Usualmente, este tipo de
instrucciones es imposible de tratar por medio de compiladores. Los lenguajes que incluyen este
tipo de operadores y que, por tanto, exigen un intérprete, se llaman interpretativos. Los
lenguajes compilativos, que permiten el uso de un compilador, prescinden de este tipo de
operadores.

3) ¿Qué ventajas hay para un sistema de procesamiento de lenguajes en el cual el


compilador produce lenguaje ensamblador en vez de lenguaje máquina?

Velocidad: Se puede ejecutar muy rápidamente, aunque el proceso de traducción es más


complejo y costoso que el de ensamblar un programa. Tamaño: Reduce el tamaño del
ejecutable, mejorando el uso de la memoria y teniendo también beneficios en velocidad.

Flexibilidad: Existen tareas que la máquina puede hacer, pero que un lenguaje de alto nivel no
permite. En ensamblador tenemos el acceso directo al hardware del monitor

4) A un compilador que traduce un lenguaje de alto nivel a otro lenguaje de alto nivel
se le llama traductor de source-to-source. ¿Qué ventajas hay en cuanto al uso de C
como lenguaje destino para un compilador?

 Es un lenguaje muy eficiente puesto que es posible utilizar sus características de bajo
nivel para realizar implementaciones óptimas.
 A pesar de su bajo nivel es el lenguaje más portado en existencia, habiendo
compiladores para casi todos los sistemas conocidos.
 Proporciona facilidades para realizar programas modulares y/o utilizar código o
bibliotecas existentes.
5) D escriba algunas de las tareas que necesita realizar un ensamblador.

 Convertir los códigos a su código equivalente en lenguaje de máquina.


 Construir las instrucciones en lenguaje de maquina en el formato apropiado.
 Convertir las constantes definidas en el programa en su verdadera representación.
 Procesar las directrices al ensamblador.

También podría gustarte