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 provient de la programmation française en logique, c'est-à-dire la logique de programmation.
Ce qui suit est un programme de prolog simple:
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 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, comme Jean étant le père de Jim. Si alors une question de problème est posée pour savoir si John estUn ancêtre de Jeff, nous obtenons la réponse "oui" comme ci-dessous:
? - Ancesor (John, Jeff).
Oui
Si les ancêtres de Joshua sont intéressants, alors le programme affiche tous les ancêtres comme suit:
? - Ancestor (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 effectuer l'évaluation. Par exemple, cela n'indiquait pas de commencer par la personne âgée et de se rendre à la personne plus jeune ou vice versa. Échange également les pièces comme ci-dessous:
ancêtre (p, q): - ancêtre (r, q), père (p, r)
Cela ne ferait aucune différence dans le programme, car ces deux pièces sur le 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. Pendant l'exécution du programme, Prolog renforce un certain nombre de véritables états, créant une base de connaissances. Dans l'exemple ci-dessus, la base de connaissances, sans ordre particulier, aurait un ancêtre (John, Jim), un ancêtre (Jim, Jerry), un ancêtre (John, Jerry), l'ancêtre (Jim, Jason), l'ancêtre (John, Jason), etc. Cette base de connaissances peut continuer à se développer au fur et à mesure que le programme s'exécute et peut être recherché efficacement pour obtenir 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 un certain nombre de domaines. Il a commencé dans les systèmes destinés à des 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, y compris l'algèbre. Il est utilisé pour prouver les théorèmes, dans les systèmes experts et dans les systèmes de contrôle, entre autres applications.