1.2.1. Interpretes

En lugar de producir un programa objeto como resultado de una traducción, un intérprete realiza las operaciones que implica el programa fuente.

 Para una proposición de asignación, por ejemplo, un intérprete podría construir un árbol como el de la figura 1.2, y después efectuar las operaciones de los nodos conforme ‘’recorre’’  el árbol. 

En Ia raíz descubriría que tiene que realizar una asignación, y llamaría a una rutina para evaluar Ia expresión de Ia derecha y después almacenaría el valor resultante en Ia localidad de memoria asociada con el identificador posición. En el hijo derecho de Ia raiz, la rutina descubriría que tiene que calcular Ia suma de dos expresiones. Se llamaría a sí misma de manera recursiva para calcular el valor de Ia expresión velocidad*60. Después sumaría ese valor al valor de la variable inicial.

Figura 1.2
Muchas veces los intérpretes se usan para ejecutar lenguajes de órdenes, pues cada operador que se ejecuta en un lenguaje de órdenes suele ser una invocación de una rutina compleja, como un editor o un compilador. Del mismo modo, algunos lenguajes de “muy alto nivel”, como APL, normalmente son interpretados, porque hay muchas cosas sobre los datos, como el tamaño y Ia forma de Ias matrices, que no se pueden deducir en el momento de la compilación.