Interface graphique en Prolog avec XPCE


précédentsommairesuivant

II. Présentation de XPCE.

II-A. XPCE et Prolog.

La bibliothèque XPCE a été créée pour fournir une interface graphique à SWI-Prolog. XPCE est écrit en C pour des raisons de rapidité. XPCE est très facilement utilisable avec Prolog mais peut-être utilisé avec d'autres langages (Lisp par exemple). Les codes XPCE sont multiplate-formes Unix/Windows.
XPCE est distribué avec le système SWI-Prolog, c'est une bibliothèque de base, aucune installation spéciale n'est requise. Avec SWI-Prolog, elle est automatiquement chargée dès qu'un de ses prédicats (par exemple new/2) est appelé, ou elle est explicitement chargée par l'instruction :- use_module(library(pce)). formulée au début d'un source Prolog. Sous Windows, pour pouvoir utiliser XPCE, il faut obligatoirement lancer plwin.exe. On trouvera ici tous les renseignements possibles sur XPCE.

II-B. XPCE n'est pas Prolog.

Les données manipulées par Prolog consistent en variables logiques, atomes, entiers, réels et termes structurés (listes, tuples).
XPCE a des équivalents pour les atomes (name) , les entiers (XPCE int) , les nombres en virgule flottante (real).
Les variables logiques et les objets structurés n'ont pas d'équivalent en XPCE.
Lorsque Prolog utilise une structure pour représenter un produit, par exemple produit(Reference, Nom, Quantite), XPCE utilise un objet :

Prolog
Sélectionnez
:- pce_begin_class(produit(reference, nom, quantite), object).

variable(reference,    name,   both, "Référence du produit").
variable(nom,     string,    both, "Nom du produit").
variable(quantite, int, both, "Quantité en stock").

initialise(P, Reference:name, Nom:string, Quantite:int) :->
        "Creation à partir de la marque, ancienneté et "::
        send(P, reference, Reference),
        send(P, nom, Nom),
        send(P, quantite,Quantite).

:- pce_end_class.

Au prompt on obtient :

Prompt Prolog
Sélectionnez
?- new(P, produit(a25b47, 'Pc Portable', 4)).
P = @39784520/produit 
Yes

Le prédicat new/2 (new(?Reference, +NewTerm)) crée un objet dans l'environnement XPCE.
La variable P est unifiée avec la référence @39784520 (@/1 indique une référence), la valeur 39784520 est garantie être unique. Prolog dans sa grande bonté indique le type de l'objet créé.
Les deux représentations Prolog et XPCE ont des propriétés différentes :
Egalité : Prolog ne peut pas faire la distinction entre deux instances du même terme produit(a25b47, 'Pc Portable', 4), alors qu'en XPCE, deux instances d'une même classe ayant les mêmes attributs sont deux entités différentes.
Attributs : Un attribut d'un terme Prolog peut être une variable logique ou bien être instancié (lié) avec une donnée Prolog. En revanche, celui d'un objet XPCE peut être assigné. L'assignation est destructive.
Types : Prolog n'est pas un langage typé. XPCE est un langage typé dynamiquement et les attributs des objets XPCE peuvent avoir des types.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.