Langage de bas niveau

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Un langage de programmation est dit de bas niveau quand il ne fournit que peu d'abstraction par rapport au jeu d'instructions du processeur de la machine. Les langages de bas niveau sont à opposer aux langages de haut niveau, qui permettent de créer un programme sans tenir compte des caractéristiques particulières (registres, etc) de l'ordinateur censé exécuter le programme.

Le langage machine et le langage d'assemblage sont les archétypes de langages de bas niveau, puis qu'ils permettent de manipuler explicitement des registres, des adresses mémoires, des instructions machines.

Hors ces cas extrêmes, la distinction entre bas niveau et haut niveau n'est pas binaire. Les discussions stériles pour savoir si des langages comme C et C++, qui ont à la fois des aspects de bas niveau (possibilités d'accès à la mémoire en utilisant des adresses explicites, "bitfields" dans les structures) et de haut niveau, méritent ou pas le nom de langage de haut ou bas niveau ont toujours cours.

Une citation attribuée à Alan Perlis dit : « A programming language is low level when its programs require attention to the irrelevant. » ; ce qui pourrait être traduit par : « Un langage de programmation est bas niveau lorsqu'il nécessite de faire attention aux choses qui ne sont pas pertinentes ». Néanmoins, cette citation doit être nuancée : dans cette citation, ce qui est considéré non-pertinent est la gestion du matériel et ses contraintes. Dans certains cas, la gestion du matériel est un impératif, et est loin d'être non pertinente. Il est donc souvent nécessaire d'utiliser un langage de bas niveau, un langage de haut niveau ne pouvant permettre de coder le programme désiré.

Utilisation[modifier | modifier le code]

Les langages de bas niveau sont utilisés dans : l'informatique embarquée, industrielle, la création de pilotes, de systèmes d'exploitation, voire le développement de jeux vidéo. Dans tous les autres domaines, l'utilisation des langage de bas niveau est contre-productive, parce qu'elle demande au programmeur de consacrer beaucoup plus d'attention, de temps de programmation, et entraîne donc des coûts de production plus élevés) pour réaliser un code équivalent à

Les langages de bas niveau sont donc aujourd'hui de moins en moins utilisés pour développer les applications courantes.

Dans certains domaines, comme l'informatique embarquée ou en informatique industrielle, les langages de bas niveau sont majoritairement utilisés (typiquement le C ou plus rarement le C++), en complément d'un langage de « haut niveau », et certaines portions très limitées sont programmées en assembleur. Ceci peut être justifié par les contraintes techniques du matériel sur lequel doit tourner le programme (taille mémoire réduite et processeur lent), et aussi expliqué par l'investissement que représente la formation des programmeurs à un autre langage que celui qu'ils pratiquent depuis des années.

Performances[modifier | modifier le code]

Contrairement aux idées reçues, programmer une application dans un langage de bas niveau comme l'assembleur ne permet pas forcément d'obtenir une application plus rapide. En effet, les compilateurs modernes des langages de haut niveau produisent généralement un code bien plus optimisé que ce qu'un programmeur peut faire[1] quand il a des contraintes de délais à respecter pour livrer.

Notes et références[modifier | modifier le code]

  1. Renaud Marlet, Ingénierie de la spécialisation de programmes, Lavoisier, (lire en ligne).

Voir aussi[modifier | modifier le code]

Sur les autres projets Wikimedia :