Prolog, langages de programmation logique
Cours : Prolog, langages de programmation logique. Recherche parmi 300 000+ dissertationsPar dissertation • 29 Mai 2013 • Cours • 339 Mots (2 Pages) • 823 Vues
Prolog est l’un des principaux langages de programmation logique. Le nom Prolog est un acronyme de PROgrammation en LOGique. Il a été créé par Alain Colmerauer et Philippe Roussel vers 1972. Le but était de créer un langage de programmation où seraient définies les règles logiques attendues d'une solution et de laisser le compilateur la transformer en séquence d'instructions. L'un de gains attendus était une facilité accrue de maintenance des applications, l'ajout ou la suppression de règles au cours du temps n'obligeant pas à réexaminer toutes les autres.
Prolog est utilisé en intelligence artificielle et dans le traitement linguistique par ordinateur (principalement langages naturels). Ses règles de syntaxe et sa sémantique sont simples et considérées comme claires (un des objectifs poursuivis était de procurer un outil aux linguistes ignorant l’informatique). Les premiers résultats obtenus avec Prolog suscitèrent quelque temps, dans les années 1980, des recherches sur une cinquième génération, matérielle et logicielle, d'ordinateurs (nommée Cinquième génération japonaise en raison de l'engagement important du MITI sur le projet). L'effort engagé fut important, les retombées plus modestes, Prolog restant juste un langage parmi d'autres dans la panoplie du programmeur, suivi plus tard d'autres prétendants comme Haskell[1].
Prolog est basé sur le calcul des prédicats du premier ordre ; cependant il est restreint dans sa version initiale à n’accepter que les clauses de Horn (les versions modernes de Prolog acceptent des prédicats plus complexes, notamment avec le traitement de la négation par l'échec). L’exécution d’un programme Prolog est effectivement une application du théorème prouvant par résolution du premier ordre. Les concepts fondamentaux sont l’unification, la récursivité et le retour sur trace. L'algorithme de résolution de Prolog est basé sur une extension de la SLD-résolution.
On peut construire en Prolog une base de connaissances dans un ordre indéterminé, puisque seules comptent les relations en présence et non leur séquence d'écriture. Prolog peut ensuite résoudre des séries de problèmes logiques relatifs à une telle base de connaissances (notion base de données déductive), problème similaire à la recherche d'une issue (ou plusieurs) dans un labyrinthe de contraintes établies.
...