Langage compilé
Les programmes compilés en code natif au moment de la compilation ont tendance à être plus rapides que ceux traduits au moment de l’exécution en raison de la surcharge du processus de traduction. Les nouvelles technologies telles que la compilation juste à temps, et les améliorations générales du processus de traduction commencent à réduire cet écart, cependant. Les solutions mixtes utilisant le bytecode tendent vers une efficacité intermédiaire.
Les langages de programmation de bas niveau sont généralement compilés, surtout lorsque l’efficacité est la principale préoccupation, plutôt que le support multiplateforme. Pour de tels langages, il existe davantage de correspondances biunivoques entre le code programmé et les opérations matérielles effectuées par le code machine, ce qui permet aux programmeurs de contrôler plus facilement l’utilisation de l’unité centrale de traitement (CPU) et de la mémoire dans les moindres détails.
Avec un certain effort, il est toujours possible d’écrire des compilateurs même pour des langages traditionnellement interprétés. Par exemple, Common lisp peut être compilé en bytecode Java (puis interprété par la machine virtuelle Java), en code C (puis compilé en code machine natif), ou directement en code natif. Les langages de programmation qui prennent en charge plusieurs cibles de compilation donnent aux développeurs plus de contrôle pour choisir soit la vitesse d’exécution, soit la compatibilité multiplateforme.