La programmation de haut niveau consiste à écrire un programme informatique dans un langage qui maintient le programmeur d'avoir à traiter directement avec le matériel de l'ordinateur spécifique en cours de programmation. Cette abstraction permet au programmeur de se concentrer davantage sur la conception du programme, le débit et la fonctionnalité et moins sur mobilisant des ressources de base du système pour atteindre ces objectifs. Un langage de programmation de haut niveau peut s'occuper de la gestion mémoire ou d'entrée et de sortie d'une manière que le programmeur n'a 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 est bas-niveau de la programmation, dans lequel il y a peu, le cas échéant, la séparation entre le code informatique écrit et les actions de l'ordinateur exécutent.
Le développement de langages de programmation de haut niveau était en réponse à un besoin de l'homme lisibles fichiers de code source qui pourrait être facilement comprises et modifiées. En utilisant des solutions en langage naturel, le code source de haut niveau devient beaucoup plus lisible que langage d'assemblage ou les langues autres machines. Comme la taille des programmes informatiques ont progressé, la pratique de l'écriture de programmes entiers en langages de bas niveau sont devenus moins possible. En échange de la programmation dans un langage qui est lisible par l'homme et ne nécessite pas la connaissance matérielle de bas niveau, il existe un concept connu sous le nom d'une pénalité abstraction. Cette section décrit les exigences accrues dans la puissance de traitement, l'utilisation de la mémoire et d'autres types de frais généraux nécessaires pour exécuter le programme final. Ceci est particulièrement vrai pour les langages interprétés qui doivent fonctionner à un interprète pour exécuter le programme, nécessitant essentiellement que deux applications doivent fonctionner en même temps.
Les langages compilés sont des langages de programmation de haut niveau dans lequel les fichiers sources lisibles sont transformés en code machine que l'ordinateur peut lire. Alors un langage compilé souffre moins d'une sanction abstraction que d'un langage interprété, il repose toujours sur les bibliothèques précompilées et les fonctions du compilateur automatisés. Ces éléments peuvent nuire à l'optimisation d'un programme complexe dans lequel la performance est essentielle.
L'utilisation des langages de programmation de haut niveau a également fait conviviale facilite la programmation. Ceci est facilité par la facilité d'ajouter des éléments standardisés à une interface utilisateur que la plupart des langages de haut niveau fournir. Au lieu de développer du code personnalisé pour un système de fenêtrage ou bouton de l'interface à chaque fois il en faut, des éléments familiers peuvent être facilement placés dans une interface avec seulement quelques lignes de code. Cela permet aux programmes que les utilisateurs finaux puissent apprendre plus facilement ou peuvent immédiatement être familier.
L'utilisation du terme «programmation de haut niveau" est relative à l'expérience du programmeur. Il ya certaines langues intermédiaires qui étaient autrefois considérés comme de bas niveau, mais maintenant le sont pas. De même, certains langages de haut niveau partager des aspects de langages de bas niveau, ce qui brouille la ligne entre eux.