Maison >Problème commun >Quelles sont les trois déclarations de base du langage prologue ?

Quelles sont les trois déclarations de base du langage prologue ?

藏色散人
藏色散人original
2021-02-01 09:42:486082parcourir

Les trois déclarations de base du langage prolog sont des faits, des règles et des requêtes, et correspondent aux clauses HORN avec et sans tête ; par conséquent, la programmation en langage PROLOG peut être réduite à déclarer des faits, à définir des règles et à faire des enquêtes.

Quelles sont les trois déclarations de base du langage prologue ?

L'environnement d'exploitation de cet article : système Windows 7, ordinateur Dell G3.

Prolog (abréviation de Programming in Logic) est un langage de programmation logique. Il repose sur les bases théoriques de la logique et a été initialement utilisé dans des domaines de recherche tels que le langage naturel.

Introduction à Prolog

Un langage de programmation logique. En 1972, afin d'améliorer l'efficacité d'exécution de la méthode de réduction, le groupe français Comolaue a développé un programme d'exécution pour le programme de preuve de théorème, nommé PROLOG (Programming In Logic), marquant la naissance du premier langage de programmation logique PROLOG. En 1974 et plus tard, R. Kowalski a clarifié davantage la base théorique de PROLOG du point de vue de la clause HORN de la logique des prédicats et a systématiquement proposé l'idée de programmation logique.

Il existe trois types d'instructions de base dans le langage PROLOG, qui représentent respectivement des faits, des règles et des enquêtes, et correspondent aux clauses HORN avec tête (sans corps, corps) et sans tête. Par exemple :

Quelles sont les trois déclarations de base du langage prologue ?

Programmer en langage PROLOG se résume donc à déclarer des faits, définir des règles et poser des questions.

Le processus d'interprétation et d'exécution du programme PROLOG utilise une réduction d'entrée spécifique, c'est-à-dire qu'à partir de l'instruction cible, la formule de réduction de celle-ci et une clause de l'ensemble de clauses d'origine sont trouvées (la queue et la tête match), et la nouvelle clause est ensuite Rechercher la formule de réduction avec une clause de l'ensemble de clauses d'origine, et ainsi de suite. A aucun moment la réduction ne se retrouve entre deux clauses dérivées ou deux clauses du jeu de clauses initial. Dans l'exemple ci-dessus,

⑥ : -humain(u), grec(u) (la réduction de ④ et ⑤, mgu=u/x)

⑦ : -grec(socarates) (② La réduction de ⑥ et ⑥, mgu=socarates/u)

⑧ : - (La réduction de ③ et ⑦, obtenant une clause vide)

La réponse à la question est u = socarate. On peut voir que le système d'explication PROLOG est en fait un programme de démonstration de théorèmes ou un programme de résolution de problèmes basé sur le principe de réduction.

La faible efficacité spatio-temporelle est un problème important affectant l'application du langage PROLOG. Les moyens d'améliorer l'efficacité sont : l'amélioration du système d'interprétation PROLOG, l'adoption du système de compilation PROLOG, le développement de la machine PROLOG, l'introduction de méta-règles de contrôle. , et l'utilisation du mode de recherche heuristique permet un retour en arrière intelligent, adopte une technologie de résolution collaborative et simultanée et développe des mécanismes de traitement parallèle.

Étant donné que l'interpréteur PROLOG peut trouver automatiquement des solutions aux problèmes basées sur des règles d'inférence, les concepteurs de programmes peuvent se concentrer sur la révélation des relations logiques entre les objets sans avoir à trop réfléchir aux détails du processus. avancer dans le sens de la programmation automatique. Mais le langage PROLOG possède également des fonctionnalités non logiques. Par exemple, afin de contrôler le retour en arrière, nous utilisons la technologie CUT (technologie de coupure, ce qui signifie que les programmeurs utilisent le symbole CUT pour informer le système qu'il ne considère plus les chemins de recherche inutiles qui ont été effectués dans le passé et n'ont pas besoin pour enregistrer les points de retour en arrière), et introduit le prédicat assert (dans la clause d'ajout de base de données) ret ract (clause de suppression de la base de données). Cela entraîne une modification de l'ensemble d'axiomes du système au cours du processus de raisonnement, ce qui est incompatible avec les idées de base de la logique du même ordre. PROLOG n’est donc pas un langage de programmation logique au sens strict. Afin de le rendre plus logique, les composants non logiques du langage doivent être limités au minimum, et des recherches dans ce domaine sont en cours.

Recommandé : "Vidéo de programmation"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn