Qu'est-ce que la programmation de haut niveau?
La programmation de haut niveau implique l'écriture d'un programme informatique dans un langage évitant au programmeur de traiter directement avec le matériel de l'ordinateur en cours de programmation. Cette abstraction permet au programmeur de se concentrer davantage sur la conception, le déroulement et les fonctionnalités du programme et moins sur la gestion des ressources système de base pour atteindre ces objectifs. Un langage de programmation de haut niveau peut gérer la gestion de la mémoire ou les entrées et sorties de manière à ce que le programmeur n'ait besoin que de comprendre le concept et non les spécificités matérielles d'un système donné. Contrairement à la programmation de haut niveau, la programmation de bas niveau est caractérisée par une faible séparation, voire aucune, entre le code informatique écrit et les actions effectuées par l'ordinateur.
Le développement de langages de programmation de haut niveau répondait à un besoin de fichiers de code source lisibles par l'homme, faciles à comprendre et à modifier. En utilisant des solutions en langage naturel, le code source de haut niveau devient beaucoup plus lisible que le langage d'assemblage ou d'autres langages de machine. À mesure que la taille des programmes informatiques progressait, il devenait moins pratique d'écrire des programmes entiers dans des langues de bas niveau.
En échange d'une programmation dans un langage lisible par l'homme et ne nécessitant pas une connaissance de base du matériel, il existe un concept appelé «pénalité d'abstraction». Ceci décrit les exigences accrues en termes de puissance de traitement, d'utilisation de la mémoire et d'autres types de temps système nécessaires à l'exécution du programme final. Cela est particulièrement vrai des langages interprétés qui doivent exécuter un interpréteur pour exécuter le programme, ce qui nécessite essentiellement que deux applications soient exécutées en même temps.
Les langages compilés sont des langages de programmation de haut niveau dans lesquels les fichiers source lisibles sont convertis en code machine lisible par l'ordinateur. Bien qu'un langage compilé soit moins pénalisé par l'abstraction qu'un langage interprété, il repose toujours sur des bibliothèques précompilées et des fonctions de compilation automatisées. Ces éléments peuvent nuire à l'optimisation d'un programme complexe dans lequel les performances sont essentielles.
L'utilisation de langages de programmation de haut niveau a également facilité la programmation conviviale. Cela est facilité par la facilité d’ajout d’éléments normalisés à une interface utilisateur fournie par la plupart des langages de haut niveau. Au lieu de développer un code personnalisé pour un système de fenêtrage ou un bouton d’interface chaque fois que l’on en a besoin, des éléments familiers peuvent facilement être placés dans une interface avec seulement quelques lignes de code. Cela permet aux programmes que les utilisateurs finaux peuvent apprendre plus facilement ou avec lesquels ils peuvent se familiariser immédiatement.
L'utilisation du terme "programmation de haut niveau" est relative à l'expérience du programmeur. Certaines langues intermédiaires étaient autrefois considérées comme de bas niveau mais ne le sont plus. De même, certains langages de haut niveau partagent des aspects avec des langages de bas niveau, brouillant la frontière entre eux.