El intérprete ( inglés intérprete ıntə:'prıtə [1] , del latín interpretator - intérprete [2] ) es un programa (una especie de traductor ) que realiza la interpretación [3] .
Interpretación : análisis, procesamiento y ejecución línea por línea del código fuente de un programa o solicitud, en contraste con la compilación , donde el texto completo del programa se analiza y traduce a máquina o código de bytes antes de ejecutar [4] [5 ] [6] .
El primer lenguaje de programación de alto nivel interpretado fue Lisp . Su intérprete fue creado en 1958 por Steve Russell en una computadora IBM 704 . Russell se inspiró en el trabajo de John McCarthy y descubrió que una función evalen Lisp podría integrarse en el código de la máquina [7] .
Un intérprete simple analiza e inmediatamente ejecuta (la interpretación misma) el programa comando por comando o línea por línea a medida que su código fuente llega a la entrada del intérprete. La ventaja de este enfoque es la respuesta instantánea. La desventaja es que dicho intérprete detecta errores en el texto del programa solo cuando intenta ejecutar un comando o una línea con un error.
Un intérprete de tipo compilador es un sistema de un compilador que traduce el código fuente del programa en una representación intermedia, por ejemplo, en bytecode o p-code , y el propio intérprete, que ejecuta el código intermedio resultante (la llamada máquina virtual ) . La ventaja de tales sistemas es la mayor velocidad de ejecución del programa debido a la eliminación del análisis del código fuente en un solo paso separado y la minimización de este análisis en el intérprete. Desventajas: mayor requisito de recursos y el requisito de la corrección del código fuente. Se utiliza en lenguajes como Java , PHP , Tcl , Perl , REXX (se guarda el resultado de analizar el código fuente [8] ), así como en varios DBMS .
Si el intérprete de tipo compilador se divide en componentes, se obtiene un compilador de lenguaje y un intérprete simple con análisis de código fuente minimizado. Además, el código fuente de dicho intérprete no tiene que estar en formato de texto o ser un código de bytes que solo este intérprete entienda, puede ser el código de máquina de alguna plataforma de hardware existente. Por ejemplo, máquinas virtuales como QEMU , Bochs , VMware incluyen intérpretes de código de máquina para procesadores de la familia x86 .
Algunos intérpretes (por ejemplo, para Lisp , Scheme , Python , BASIC y otros) pueden funcionar en modo de diálogo o en el llamado bucle de lectura-computación-impresión ( read-eval-print loop, REPL ) . En este modo, el intérprete lee una construcción de lenguaje completa (por ejemplo, s-expression en Lisp), la ejecuta, imprime los resultados y luego espera a que el usuario ingrese la siguiente construcción.
El lenguaje Forth es único , que puede funcionar tanto en los modos de interpretación como de compilación de los datos de entrada, lo que le permite cambiar entre estos modos en cualquier momento, tanto durante la traducción del código fuente como mientras se ejecutan los programas. [9]
También cabe señalar que los modos de interpretación se pueden encontrar no solo en el software, sino también en el hardware . Por lo tanto, muchos microprocesadores interpretan el código de máquina utilizando microprogramas incorporados y los procesadores de la familia x86, comenzando con Pentium (por ejemplo, en la arquitectura Intel P6 ), durante la ejecución del código de máquina, lo pretraducen a un formato interno (a un secuencia de microoperaciones).
![]() | |
---|---|
En catálogos bibliográficos |