Dans la terminologie de la programmation informatique, les langages de programmation sont souvent séparés en langages « de haut niveau » et « de bas niveau ». La différence entre les deux est une question d'interaction matérielle. En termes simples, les langages de bas niveau résident "plus bas" sur le système informatique, plus près de l'interaction matérielle réelle. Les langages de haut niveau sont extraits du matériel. Le résultat de cette abstraction peut entraîner un code plus rapide et plus lisible, mais des avantages en termes de vitesse et un accès réduit aux ressources système.
Abstraction
Ce qui différencie les langages de haut niveau des langages de bas niveau, c'est le niveau d'abstraction qu'un langage a des ressources système. La gestion quotidienne des ressources système peut devenir lente et pénible. Des langages de haut niveau ont été créés pour traiter ce problème en gérant le système pour le programmeur, en libérant lui pour accomplir une tâche plus avancée tout en ignorant les moindres détails du système, tels que la mémoire la gestion. Cependant, cela présente un inconvénient en ce sens qu'un programmeur peut se trouver dans une situation où un accès au système est requis et qu'un langage de haut niveau ne peut pas donner cet accès. Un langage de haut niveau n'est généralement pas adapté à la programmation système.
Vidéo du jour
La vitesse
Les langages de haut niveau sont généralement des langages "interprétés" plutôt que des langages de bas niveau "compilés". « Interprété » signifie simplement qu'un langage utilise un interpréteur qui exécute le code source ligne par ligne, plutôt que de compiler un fichier binaire. Cependant, les interprètes sont souvent des programmes écrits dans des langages compilés. Pour cette raison, le langage interprété - Python, par exemple - ne s'exécute que sur l'interpréteur Python, qui est écrit en C. Cela augmente la surcharge de mémoire et de temps pour les programmes interprétés, et ils s'exécutent souvent plus lentement.
Particularités du système
Une force apparente du code de haut niveau est sa portabilité. Le code de haut niveau peut s'exécuter sur n'importe quel système sur lequel l'interpréteur approprié est installé. Cependant, lorsqu'un programme est compilé pour un ordinateur, il prend en compte l'ensemble de l'environnement de ce système dans sa compilation. Un langage interprété est déjà abstrait du système à un point tel que le programme interprété ne sait rien du système sauf ce que l'interprète peut lui fournir.
Limites de programmation
En raison de la nature des langages de haut niveau, il existe certaines tâches pour lesquelles ils ne sont pas adaptés, ou du moins pas encore adaptés. Sans accès aux ressources système, il est difficile de développer rapidement des applications natives du système d'exploitation. De plus, même le développement d'un système d'exploitation devient problématique. À mesure que de plus en plus de logiciels se déplacent en ligne, ce fait devient moins préoccupant mais, pour un usage commercial et industriel, les langages interprétés peuvent fonctionner trop lentement ou trop loin de l'interaction matérielle.