Hello!

Inspiré(e) de prendre part à la discussion ? Ou de poser une question ou demander de l’aide ?

Alors bienvenues dans les grands sujets des forums de La Bulle : m’inscrire.

Cette partie du forum n’est pas compatible avec les bloqueurs publicitaires

Félicitations à vous, de préférer les accès payants plutôt que la gratuité par la publicité, c’est honnorable et cohérent de votre part. Malheureusement, l’accès payant par micropaiement (qui serait d’environ 1 cent pour 20 pages consultées) n’est pour l’instant pas encore mis en place, et l’accès gratuit sans publicité, est réservé aux membres actif(ve)s du forum. En attendant, si vous souhaitez poursuivre votre visite chez nous, vous pouvez ajouter le site à votre liste blanche, ou encore mieux, désactiver le bloqueur partout. Pour ajouter le site à votre liste blanche, pour Firefox (similaire pour les autres navigateurs), rendez‑vous en bas à gauche de la fenêtre de votre navigateur, et cliquez sur le menu comme dans l’exemple de l’image ci‑dessous, puis rechargez la page, en appuyant sur F5.

Les références partielles
Auteur Message
Administrateur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 22208
Ven 21 Oct 2011 13:03
Message Les références partielles
Pour suggérer un ajout ou signaler une erreur, vous pouvez envoyer un message privé.

Image
Image : alain.colmerauer.free.fr

Alain Colmerauer, principal auteur des
premières spécifications du langage
Prolog et de sa première implémentation
de référence.


Avant‑Propos


Le nom Prolog, est un faux ami. Bien que son nom soit issus de l’expression « Programmation en Logique », ce n’est pas un langage représentatif de la logique, mais d’un sous ensemble de celle-ci seulement, qui sont les clauses de Horn.

On peut exprimer la logique avec ce langage, mais il n’est pas logique. Il permet d’exprimer différentes formes de logique (ce sont les interprétations qui sont logiques pour un système donné).

Attention : quand il est dit que ce langage n’est pas la logique classique, ce n’est pas à prendre à la légère, Prolog ne connait pas la valeur « Faux » par exemple, et d’ailleurs il ne connait pas la valeur « Vrai » non‑plus. Ce langage n’a rien à voir avec la logique booléenne ! On pourrait cependant dire, pour faire un parallèle plus proche de la sa réalité, qu’il connait les deux valeurs « Succès » et « Échec ». « Succès » signifiant qu’il a put vérifier une assertion ou la solutionner, « Échec » signifiant qu’il n’a pas put le faire. Il ne faut pas oublier à ce propos, que l’absence de preuve n’est pas la preuve de l’absence, et c’est bien pour cela qu’il ne faut pas interpréter ceci comme la valeur « Faux » de la logique classique. Pour en savoir plus, vous pouvez faire quelques recherches sur le Net, à propos du thème « Hypothèse du monde clos », pour en savoir plus sur la différence importante entre les deux.

Les références partielles


Prolog est un langage standardisé, mais son standard ISO n’est pas publiquement accessible. Il ne sera donc pas possible de s’y référer qu'en partie. C’est pour cette raison que le titre dit « références partielles ».

Anecdote : Alain Colmerauer avait, sur l’évolution de Prolog, un avis mitigé. Il s’est plain dans un papier, des pressions qu’il a subit pour incorporer au langage, tel et tel gadget, qu’il jugeait superflu et source d’alourdissement pour le langage, dont la nature est avant tout formelle; et sur ce point, je suis personnellement d’accord avec lui. Le standard ISO Prolog, bien que spécifiant aussi la sémantique des expressions du langage, porte en grande partie sur ces librairies non-nécessaires au fondement de Prolog, et ce n’est donc peut-être pas une si grande perte dans l’absolue, si ce standard n’est pas suivi. Pourtant, cela ne va pas sans poser de problèmes.

Plutôt que de se référer au standard ISO Prolog de manière stricte, on se contentera de ses parties publiquement accessibles, et de la notion de clauses de Horn, dans ses formes génériques et ses variantes.

Organisation du standard ISO


La standard ISO du langage Prolog est organisé comme décrit dans la schéma suivant.

Image

Autour de, et dans, le standard ISO Prolog, on peut distinguer quatre aires :

  1. Pure Prolog, également appelé Core Prolog dans d’autres documents, qui est la notion de base de Prolog, les clauses de Horn, etc.
  2. Primitive ISO Prolog, qui est la standardisation du langage, précisant par exemple, la sémantique, la syntaxe concrète, les prédicats prédéfinis, etc.
  3. Modules ISO Prolog, qui fourni les éléments utiles aux grands et larges programmes Prolog.
  4. Extensions, fournies par diverses implémentions, optionnellement.


Pure Prolog, est défini, sert de fondement à la norme ISO, mais ne fait pas partie de la norme ISO; c’est l’ensemble des aspects universels de Prolog.

Primitive ISO Prolog et Modules ISO Prolog, sont les deux aires définies par la norme. Primitive ISO Prolog est vraiment essentiel, Modules ISO Prolog répond à des besoins techniques réels, mais n’est pas nécessaire pour tout le monde. Par bonheur, Primitive ISO Prolog est spécifié par un document publiquement accessible. La norme ISO non publiquement accessible, est constituée de deux parties, dont une seule n’est pas accessible (formellement, elle est publiquement accessible, mais le prix de 197€ est rédhibitoire pour les particuliers, surtout s’ils ne sont pas riches). Cependant, même cette partie de la norme qui n’est pas accessible sous sa version finalisée officielle, est accessible sous sa version de préparation, telle qu’elle était juste avant sa validation. Cette version, appelée draft, peut différer de la version finalisée officielle, il n’est pas possible de dire où et comment sans pouvoir accéder à la norme officielle pour comparer, mais d’expérience, je peux dire que les draft sont souvent proches des normes finalisées, mais contiennent aussi des erreurs, et il faut en être conscient(e).

Les Extentions, sont propres à chaque implémentations, et ne sont pas normalisées. Dans une autre catégorie, ISO Prolog est définie comme une extension normalisée de Pure Prolog (*)


(*) An introduction to Prolog. Date et auteur inconnus : “There is a core pure Prolog (see Lloyd), which has been extended in many ways. ISO Prolog is a standard extension.”.

Les parties du standard publiquement accessibles sans frais rédhibitoires


Voici les liens vers les parties accessibles de la norme, et même ce qui n’en fait par partie, Pure Prolog.

Logical Fundamentals of Pure Prolog [PDF]. 2007. Mikhail Peretyat’kin, Suleyman Demirel University.

Primitive ISO Prolog Specification [PDF]. 2006. Mikhail Peretyat’kin, Suleyman Demirel University.

ISO Prolog: a Summary of the Draft ISO Standard. 1994. Michael A. Covington, University of Georgia.

Prolog: the ISO Standard Documents. 1999. J.P.E. Hodgson, INRIA (Institut National de Recherche en Informatique et Automatismes). Expose plusieurs éléments de la norme ISO Prolog, mais sans être exhaustif. On ne peut pas reconstruire la norme à partir de ces documents, mais ils sont suffisants pour beaucoup d’usages comme pour compléter ou éclaircir les précédents.

Pour finir sur la norme, un document abordant les problèmes posées par l’absence d’application du standard ISO en pratique, avec modération cependant, l’auteur ne jetant pas entièrement l’opprobre sur toutes les parties impliquées.

Is the ISO Prolog standard taken seriously ?. 1999. Roberto Bagnara, Dipartimento di Matematica, Università di Parma.

Autres documents faisant référence au standard


La Syntaxe de ISO Prolog. Date inconnue. Alain Colmerauer.

Notes on the ISO-Prolog Standard. 2011. Joachim Schimpf. Suggestions pour une futur version du standard, mais pas une partie du standard actuel ! Ce sera éventuellement une partie du standard futur.

Une référence indirecte, est la machine abstraite de Warren, utilisée pour les implémentations de référence des interpréteurs Prolog. Je ne sais pas avec certitudes si la norme ISO y fait référence ou pas, mais il me semble que plutôt oui, au moins en partie.

Warren's Abstract Machine [ZIP]. 1999. Archive de trois documents : la version PDF du livre du même nom initialement publié chez MIT Press (livre maintenant indisponible en version papier), un diaporama complétant de livre, et une liste d’Erratum s’appliquant à ces deux documents.

Tutoriels et cours


Adventure in Prolog. 1996. Dennis Merritt, Massachusetts.

Prolog :- Tutorial. Année inconnue. J.R.Fisher.

Learn Prolog Now!. 2006. Patrick Blackburn, Johan Bos, et Kristina Striegnitz.

CS157: Computational Logic. 2006. Université de Standford. Notes de cours, dont des notes sur l’algorithme de Herbrand (voir les notes intitulées Chapitre 7).

Divers et historique


Alain Colmerauer. Page d’accueil du site de Alain Colmerauer, auteur de la version initiale de Prolog dans les années 1970.

Prolog Under the Hood — An Honest Look. 1992. Dennis Merritt. Un résumé des aspects pragmatiques des usages de Prolog.


A last quote Clin d’œil


Le lien ci‑dessous a écrit : 
Prolog is a tool for solving problems, rather than producing “software products”.

Dixit This Prolog Life.

Image
Hibou57

« La perversion de la cité commence par la fraude des mots » [Platon]
Profil Site Internet
Administrateur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 22208
Sam 22 Oct 2011 13:19
Message Re: Les références partielles

Sources d’une partie des références ci‑dessus


Pour rester utile et lisible, le message précédent qui vient d’être mis à jour (il existe finalement un moyen d’accéder à de bonnes parties du standard), ne donne que les liens directes vers le documents pertinents qui ont put être trouvés. Pourtant, connaitre la page qui a elle‑même permis de découvrir un document, est souvent intéressant, ne serait que pour voir ce qu’une telle page permet peut-être encore de découvrir, d’autres.

Sans plus de détails ni résumés (aux personne intéressées de consulter et d’explorer), voici ces pages.

Prolog (techref.massmind.org). 2010. Alexei A. Morozov.

Demonstration to EEC (predicate-logic.org). 2010. Peretyat'kin.

Index of /fbarber/prolog (http://www.uv.es). Listage d’un répertoire. Pas d’auteurs, excepté pour les documents individuels que contient le répertoire.

Scope of the X3J17 Committee (sju.edu). À partir de ce lien et en suivant les liens qu’il contient à son tour, il peut être possible de trouver d’autres références.

Image
Hibou57

« La perversion de la cité commence par la fraude des mots » [Platon]
Profil Site Internet
Administrateur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 22208
Mar 13 Oct 2020 16:43
Message Re: Les références partielles
Hibou a écrit : 
[…]
Le lien ci‑dessous a écrit : 
Prolog is a tool for solving problems, rather than producing “software products”.

Dixit This Prolog Life.

À ce sujet :
Hibou a écrit : 
[…] Plus que dire que Prolog permet de résoudre des problèmes, il faudrait dire qu’il ne garanti que de vérifier des solutions trouvées à des problèmes. En fait, il tient plus du système de démonstration que du solveur. En temps que système de démonstration, il ne connait pas la négation […]

Dans Re: Les logiques : notes en vrac.

Image
Hibou57

« La perversion de la cité commence par la fraude des mots » [Platon]
Profil Site Internet
cron