Pour un langage compilé ce qui est exécuté sera le code objet pas le source du programme.
Exemple:
B**2-4.0*A*C
sera traduit en une séquence d'instructions:
R1 := B R1 := R1 * R1 R2 := 4.0 R3 := A R2 := R2 * R3 R3 := C R2 := R2 * R3 R1 := R1- R2Cette séquence sera exécutée pas le source.
Dans ce cas, une expression est évaluée:
Exemple:
function eval(E) = if E est la constante i then i else if E est la somme de E1 et E2 then eval(E1) + eval(E2) else if E est le produit de E2 par E2 then eval(E1) * eval(E2)
Exemple:
Le compilateur javac peut être (et est) écrit en langage intermédiaire et ne dépend pas de la plate-forme.
L'interpréteur Java dépend de la plate-forme.