Dans la terminologie de la programmation informatique, les langages de programmation sont souvent séparés en "haut niveau" et "niveau faible" langues. La différence entre les deux est une question d'interaction du matériel. Autrement dit, les langages de bas niveau résident "inférieur" sur le système informatique, plus proche de l'interaction du matériel réel. Langages de haut niveau sont extraites loin du matériel. Le résultat de cette abstraction peut entraîner plus rapide, le code plus lisible, mais les avantages de vitesse inférieurs et moins d'accès aux ressources du système.