Langage de haut niveau

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

En programmation informatique, un langage de haut niveau est un langage de programmation orienté autour du problème à résoudre, qui permet d'écrire des programmes en utilisant des mots usuels des langues naturelles (très souvent de l'anglais) et des symboles mathématiques familiers. Un langage de haut niveau fait abstraction des caractéristiques techniques du matériel utilisé pour exécuter le programme, tels que les registres et les drapeaux du processeur[1],[2].

Les langages de haut niveau sont plus proches des langues naturelles, ce qui facilite et démocratise l'écriture des programmes. Ils sont généralement indépendants de la machine : le même programme pourra être utilisé tel quel sur plusieurs types d'ordinateurs — quoique les programmes puissent également être conçus pour un système d'exploitation en particulier[3].

Les langages de haut niveau sont apparus au début des années 1960. Ils ont permis d'écrire des programmes d'une manière plus familière, proche de l'anglais, et qui ne dépend pas du processeur qui sera utilisé[4].

En 2010, il existe plus de 200 langages de programmation de haut niveau. Les plus populaires sont Pascal, Java, Fortran, COBOL, OCaml et Python[1].

Caractéristiques[modifier | modifier le code]

Le terme « langage de haut niveau » n'implique pas que ce type de langage soit supérieur à un langage de bas niveau. La notion de profondeur désigne la distance du langage par rapport au travail de la machine. Le langage de haut niveau a un plus haut niveau d'abstraction que les langages machines. Plutôt que de s'occuper des registres, des accès mémoires et des piles, les langages de haut niveau s'occupent de concepts plus élaborés tels que les processus légers, verrous, objets, variables, tableaux, arithmétique complexe et expressions booléennes. De plus, ils n'ont en général pas la possibilité de s'occuper des détails liés à la machine tels que la gestion mémoire contrairement aux langages de bas niveau ou alors ces langages font appels à des fonctions préprogrammées (comme les instructions new et delete en C++). D'autres caractéristiques telles que des routines de manipulation de chaîne de caractères ou les concepts des langages objets peuvent être présentes.

Coût de cette abstraction[modifier | modifier le code]

De façon stéréotypée, les langages de haut niveau simplifient le travail du programmeur là où les langages de bas niveau permettent de produire un code plus efficace. La limite d'utilisation des langages haut niveau correspond aux situations où les ressources matérielles sont limitées. Les concepts de programmation haut niveau tels que les structures de données génériques, l'interprétation à l'exécution sont souvent lents à l'exécution et grands consommateurs mémoire. Pour cette raison, les codes qui ont besoin de s'exécuter rapidement et efficacement devraient être écrits en langage de bas niveau, même si la programmation en langage de haut niveau se ferait plus facilement.

Néanmoins, avec l'augmentation en complexité des architectures des microprocesseurs modernes et l'amélioration des compilateurs, on observe que fréquemment les langages de haut niveau produisent du code aussi efficace que ce qui peut être fait à la main par la plupart des programmeurs. De plus, une abstraction plus haute peut permettre des techniques plus puissantes produisant généralement de meilleurs résultats que leurs équivalents de bas niveau.

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

  1. a et b (en)Management Information Systems, Nirali Prakashan, (ISBN 9788185790909)
  2. (en)Rajib Mall, Fundamentals of Software Engineering, PHI Learning Pvt. Ltd. - 2009, (ISBN 9788120338197)
  3. (en)Deborah Morley et Charles S. Parker, Understanding Computers: Today and Tomorrow, Comprehensive, Cengage Learning, 2009,(ISBN 9780324830132).
  4. (en)J.B. Dixit, Computer Programming, Firewall Media - 2007, (ISBN 9788131800683)

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]