Qu'est-ce que le langage Prolog?
Prolog est un langage de programmation informatique basé sur la logique. La plupart des langages informatiques sont basés sur les étapes nécessaires pour résoudre un problème. Le langage Prolog, en revanche, est un langage "déclaratif" qui indique les relations logiques entre les entités. La façon de résoudre le problème est laissée à l'ordinateur. Le nom Prolog vient du français PROgrammation en LOGique, c'est-à-dire PROgramming LOGic.
Ce qui suit est un programme simple Prolog:
ancêtre (F, C): - père (F, C)
ancêtre (P, Q): - père (P, R), ancêtre (R, Q)
père (john, jim).
père (jim, jerry).
père (jerry, jason).
père (jerry, jeff).
père (jason, joshua).
Le programme ci-dessus indique des truismes. Si F est le père de C, alors F est un ancêtre de C. Si P est le père d'une personne R qui est un ancêtre de Q, alors P est un ancêtre de Q. Un certain nombre de faits réels sont alors donnés, tels que John étant le père de Jim. Si alors une question problématique est posée pour savoir si John est un ancêtre de Jeff, nous obtenons la réponse "Oui" comme ci-dessous:
? - ancêtre (john, jeff).
Oui
Si les ancêtres de joshua sont intéressants, le programme affiche tous les ancêtres comme suit:
? - ancêtre (A, joshua)
A = jason
A = jerry
A = Jim
A = john
Notez que dans les deux cas ci-dessus, le programme n'a pas expliqué comment procéder à l'évaluation. Par exemple, il n’indiquait pas s’il fallait commencer par la personne la plus âgée et s’adresser à la plus jeune, ou inversement. Échangez également les pièces comme ci-dessous:
ancêtre (P, Q): - ancêtre (R, Q), père (P, R)
Cela ne changerait rien au programme, car ces deux parties du côté droit doivent être vraies pour que le côté gauche soit vrai.
Le langage Prolog se concentre donc sur les relations et non sur la façon de résoudre le problème. Lors de l'exécution du programme, Prolog construit un certain nombre d'instructions vraies, créant ainsi une base de connaissances. Dans l'exemple ci-dessus, la base de connaissances, sans ordre particulier, aurait ancêtre (john, jim), ancêtre (jim, jerry), ancêtre (john, jerry), ancêtre (jim, jason), ancêtre (john, jason), etc. Cette base de connaissances peut continuer à se constituer au fur et à mesure de l'exécution du programme et peut être recherchée efficacement pour trouver des solutions. L'exécution peut utiliser un traitement parallèle, une exécution simultanée par plusieurs ordinateurs.
Le langage Prolog est utilisé dans plusieurs domaines. Cela a commencé dans des systèmes adaptés aux langues naturelles telles que l'anglais; le langage naturel est l'un des domaines de l'intelligence artificielle. Le langage Prolog est également utilisé en mathématiques symboliques, notamment en algèbre. Il est utilisé dans la démonstration de théorèmes, dans des systèmes experts et dans des systèmes de contrôle, parmi de nombreuses autres applications.