Diferencia entre revisiones de «Intérprete (informática)»

Contenido eliminado Contenido añadido
m Revertidos los cambios de 189.139.39.4 a la última edición de 201.203.5.110
Línea 5:
== Antecedentes históricos del interpretado y compilado ==
 
En los comienzos de la computación, el diseño del lenguaje fue fuertemente influenciado por la decisión de usar como modo de ejecución, la compilación o la interpretación. Por ejemplo, algunos lenguajes compilados requieren que los programas deban indicar explícitamente el [[tipo de dato]] de una [[Variable (programación)|variable]] en el momento en que sea declarada o al ser usada por primera vez. Por otro lado, algunos lenguajes interpretados toman ventaja de los aspectos dinámicos de la interpretación para hacer tales declaraciones innecesarias. Por ejemplo, [[SmallTalk]], el cual fue diseñado para ser interpretado en tiempo de ejecución, permite a objetos genéricos interactuar dinámicamente entre sí.
htyhth
 
Inicialmente, los lenguajes interpretados eran compilados línea por línea; es decir, cada línea era compilada a medida que estaba a punto de ser ejecutada, y si un [[Bucle (programación)|loop]] o una [[subrutina]] hiciera que ciertas líneas se ejecutaran múltiples veces, ellas debían ser recompiladas repetidamente. Esto ha llegado a ser mucho menos común. La mayoría de los lenguajes interpretados usan una representación intermedia, que combina tanto la compilación como la interpretación. En este caso, un compilador puede producir una cierta forma representación intermedia del programa, como el [[bytecode]] o el [[código enhebrado]], que entonces es ejecutado por un [[intérprete (informática)|intérprete]] de bytecode. Los ejemplos incluyen [[Python]], y [[Lenguaje de programación Java|Java]]. Similarmente, [[Ruby]] utiliza un [[árbol de sintaxis abstracta]] como representación intermedia. La representación intermedia puede ser compilada de una vez por todas (como en Java), cada vez que se vaya a ejecutar (como en [[Perl]] o Ruby), o cada vez que un cambio en el [[código fuente]] es detectado antes de la ejecución (como en [[Python]]).
 
== Ventajas de los lenguajes interpretados ==