sábado, 25 de octubre de 2014

INTERPRETES

            Es un tipo especial de compilador, no genera un programa objeto convencional, sino que traduce las instrucciones de alto nivel, una a una, en sus equivalentes de lenguaje máquina, directamente durante la secuencia de ejecución del programa. En caso de encontrar un error, el programa se detiene en ese punto. En general, un lenguaje de alto nivel que utiliza un intérprete ejecuta programas más lentamente que si utilizase un compilador. Ello es debido a que las instrucciones que inician operaciones repetitivas (bucles), han de ser retraducidas cada vez que reaparecen durante la ejecución.



Lenguajes interpretativos
Algunos lenguajes no pueden compilarse por completo al lenguaje de la máquina por uno de los motivos siguientes:
  • Porque contienen operadores que precisan de la presencia del intérprete, como aquéllos que ejecutan en tiempo de ejecución cadenas de caracteres que representan instrucciones del lenguaje fuente (APL, LISP, Prolog, Smalltalk).
  • Porque han eliminado totalmente la declaración de las variables, de tal modo que una variable tiene siempre el tipo del último valor que se le asignó (APL, LISP, Smalltalk).
  • Porque se ha eliminado la gestión dinámica de la memoria, confiándole al intérprete la eliminación automática de la memoria no utilizada (APL, JAVA, LISP, Smalltalk).
  • Porque la presencia del intérprete durante la ejecución es necesaria por razones de seguridad o de independencia de la máquina (JAVA).
Entre los lenguajes interpretativos destacan APL, JAVA, LISP, Prolog, Rexx, Smalltalk y SNOBOL.

Ventajas de un intérprete

  • Flexibilidad: permite realizar acciones complejas, imposibles o muy difíciles con un compilador, como las siguientes:
    • Ejecución de cadenas de caracteres mediante operadores como "execute", "interprete" o "evalquote".
    • Modificar sobre la marcha el significado de los símbolos e incluso prescindir por completo de las declaraciones.
    • Obtener un ligamiento dinámico completo en los sistemas orientados a objetos.
    • Simplificar la gestión de memoria en los programas fuente.
  • Facilidad de depuración de programas: la interpretación puede interrumpirse en cualquier momento para examinar o modificar los valores de las variables o la situación en la ejecución. La tabla de símbolos está disponible. Se pueden corregir los errores y continuar. Trazas y paradas programadas. Saltos en el programa. Abandonos de subrutinas.
  • Rapidez en el desarrollo.

Desventajas de un intérprete

  • Velocidad: usualmente un orden de magnitud menor que la de un programa compilado.
  • Tamaño del programa objeto, que exige añadir el intérprete al programa propiamente dicho.

Uso de los intérpretes

Los intérpretes se usan principalmente:
  • Para el desarrollo de prototipos.
  • Para la enseñanza.
  • Cuando el lenguaje tiene características que exigen un intérprete (Lisp, APL, REXX, Smalltalk, Prolog).
  • Cuando el lenguaje dispone de operadores muy potentes, lo que significa que la mayor parte del tiempo los programas están ejecutando código rápido prefabricado, más que los programas fuente del programador (APL, SNOBOL).
  • Para obtener independencia de la máquina (JAVA).
  • Para aumentar la seguridad (JAVA).



Fuentes:
Rocha Díaz, Alberto (2014). Introducción a la Programación. Electrónica e informática aplicada (pp. 190). Argentina: Libr. y Edit. Alsina.

Saffady, William. El Software del Ordenador. Informática Documental para Bibliotecas (pp. 47 - 48).

Capítulo 8. Intérpretes
http://arantxa.ii.uam.es/~alfonsec/docs/compila8.htm

COMPILADORES | INTERPRETES (Compilers and Interpreters)
http://compiladores-interpretes.blogspot.com/2012/01/introduccion-compiladores-e-interpretes.html#comment-form

1 comentario :

  1. Slot Machine Casino Review - Jammyhub
    Slot Machine 고양 출장마사지 Casino is a fun, regulated 포항 출장안마 and safe 군포 출장샵 casino with great signup bonuses and free spins. 수원 출장안마 Read our 통영 출장샵 review to see if you can

    ResponderEliminar