Un langage de programmation de cinquième génération ( 5GL ) est un langage de programmation de haut niveau basé sur la résolution de problèmes à l'aide de contraintes données au programme, plutôt que d'utiliser un algorithme écrit par un programmeur. La plupart des langages de programmation basés sur les contraintes et la logique et certains autres langages déclaratifs sont des langages de cinquième génération.
Histoire
Alors que les langages de programmation de quatrième génération sont conçus pour créer des programmes spécifiques, les langages de cinquième génération sont conçus pour permettre à l'ordinateur de résoudre un problème donné sans l'aide du programmeur. De cette façon, l'utilisateur n'a qu'à se soucier des problèmes à résoudre et des conditions à respecter, sans se soucier de la manière de mettre en œuvre une routine ou un algorithme pour les résoudre. Les langages de cinquième génération sont principalement utilisés dans la recherche en intelligence artificielle . OPS5 et Mercury sont des exemples de langages de cinquième génération, tout comme ICAD , qui a été construit sur Lisp . KL-ONE est un exemple d'idée connexe, un langage de trame .
Dans les années 1980, les langages de cinquième génération étaient considérés comme la voie de l'avenir, et certains prédisaient qu'ils remplaceraient la programmation procédurale par une programmation basée sur des contraintes pour toutes les tâches qui pouvaient être formulées comme une série de contraintes logiques. Plus particulièrement, de 1982 à 1993, le Japon a consacré beaucoup de recherche et d'argent à son projet de systèmes informatiques de cinquième génération , dans l'espoir de concevoir un réseau informatique massif de machines utilisant ces outils.
Cependant, à mesure que des programmes plus importants ont été élaborés, les défauts de cette approche sont devenus plus apparents. Il s’avère que, compte tenu d’un ensemble de contraintes définissant un problème particulier, dériver un algorithme efficace pour le résoudre est un problème très difficile en soi. Cette étape cruciale ne peut pas encore être automatisée et nécessite toujours la perspicacité d’un programmeur humain.
Idée fausse courante
Les fournisseurs ont parfois fait la publicité de leurs langages sous le nom de 5GL. La plupart du temps, ils vendent en réalité des langages 4GL avec un niveau d'automatisation et une base de connaissances plus élevés . Comme le battage médiatique des années 1980 s'est estompé et que les projets ont finalement tous été abandonnés, la notoriété du 5GL a également diminué ; cela a ouvert la porte aux fournisseurs pour réutiliser le terme dans la commercialisation de leurs nouveaux outils, sans provoquer beaucoup de controverse parmi les générations actuelles de programmeurs.