Que sont les générations de langage de programmation?
Les générations de langages de programmation sont un moyen de classer les langages de programmation informatique en fonction de leur distance par rapport au code machine réel généré et, à certains égards, de leur facilité d'utilisation par un programmeur. Il existe trois générations de langages de programmation généralement acceptées et quelques-unes dont les définitions ne sont pas clairement définies. Un langage de programmation informatique de première génération est un code machine simple, sans abstraction. Les langages de deuxième génération sont des codes de machine abstraits, tels que le langage assembleur, liés à une architecture système spécifique, mais lisibles par l'homme et devant être compilés. Les langages de troisième génération constituent la forme la plus courante, y compris les langages standard tels que C et Java®, tandis que les langages de quatrième génération ou plus ont des définitions variées.
Lorsque les générations de langages de programmation ont été créées pour décrire les langages, le terme était principalement utilisé pour désigner les langages de troisième génération. Cela signifie que les langues de première et de deuxième génération n'ont été classées comme telles que pour mettre en valeur les capacités des langues de troisième génération. Les quatrième et cinquième générations de langages de programmation ont été largement utilisées comme termes relatifs au marketing des langages en développement. En marketing et dans certains domaines académiques, les générations de langues dont le nombre est le plus élevé sont utilisées de manière non standard pour indiquer qu’une langue est plus récente ou comporte plus de fonctionnalités que d’autres.
La première des générations du langage de programmation indique le code machine. Cela signifie écrire un programme sous la forme d'une séquence d'octets ou, dans les cas extrêmes, de bits pouvant être exécutés directement par un ordinateur. Dans la plupart des cas, il s'agit d'un système qui accepte les entrées via des commutateurs codés en dur ou d'autres mécanismes physiques.
Les langages de programmation de deuxième génération sont considérés comme des langages de style assembleur. Ce sont des langages écrits avec du code et des commandes lisibles par l'homme qui sont toujours liés à des architectures système spécifiques, mais présentent un environnement de développement plus facile et une certaine abstraction. Les langages d'assemblage n'ont jamais cessé d'être utilisés, à partir de 2011, et sont non seulement extrêmement puissants, mais peuvent également être utilisés comme instructions inline dans les langages de programmation de niveau supérieur, rendant fausse la notion selon laquelle la génération d'un langage équivaut à sa vitesse ou à sa puissance.
Les langages de programmation de troisième génération ont encore davantage dissocié le code du processeur, ce qui a permis de développer un code utilisant des instructions plus lisibles. En outre, des compilateurs ont été développés pour transformer une seule ligne de code en plusieurs instructions d'assemblage sur plusieurs plates-formes et, éventuellement, en plusieurs dizaines ou plus d'instructions de code machine. Presque tous les langages informatiques capables de compiler des exécutables et des bibliothèques binaires natifs sont considérés comme des langages de troisième génération.
En général, un langage de quatrième génération est considéré comme un langage censé utiliser un type de langage de programmation très naturel pour l'utilisateur. Il peut également être défini comme un langage qui utilise des éléments visuels pour construire le programme final. Une troisième définition est un langage de programmation conçu pour un objectif spécifique, tel qu'un langage de programmation de base de données ou un langage de développement rapide d'applications (RAD).
Une définition vague du langage informatique de cinquième génération permet au programmeur de présenter à l'ordinateur un problème qu'il tente ensuite de résoudre. La plupart des langues répertoriées comme appartenant à la cinquième génération sont principalement de nature académique. D'autres générations de langages de programmation, telles que les sixième et septième générations, ont été utilisées par des développeurs de langages commerciaux à des fins de marketing.