• Aucun résultat trouvé

Td corrigé Licence Informatique Année 2000-2001 pdf

N/A
N/A
Protected

Academic year: 2022

Partager "Td corrigé Licence Informatique Année 2000-2001 pdf"

Copied!
1
0
0

Texte intégral

(1)

Licence Informatique Année 2000-2001 UNSA

TP 4

Découverte de Gnu Prolog :

Gnu Prolog est un Prolog disponible gratuitement utilisant la syntaxe d’Edimbourg (celle vue en cours). Les systèmes Prolog sont des systèmes interactifs, c’est-à-dire que leur

fonctionnement est basé sur une conversation avec l’utilisateur.

Mise en route et premiers débuts : Dans un premier temps :

1. Il faut tout d’abord modifier votre PATH afin d’inclure : /net2/softs/gnu/gprolog-1.2.1/bin

2. Prolog doit être lancé depuis clio par l’instruction gprolog. Cela affiche le prompt ?-

3. Sous Emacs, tapez le programme menu. Attention : prenez garde à ne pas insérer d’espace entre le nom d’un prédicat et la parenthèse qui le suit.

4. Sous Prolog, charger le programme par l’instruction

?-consult(menu). Tester le programme en posant plusieurs questions closes (sans variable) ou non, sans et avec coupures.

5. Remarque : si vous avez à corriger votre programme sous Emacs, il faut le recharger par l’instruction reconsult(menu). Elle permet d’effacer le programme précédent au sein du système Prolog avant de charger les nouvelles règles.

6. Faire de même avec les programmes sur les listes abordés au dernier TD.

7. Pour terminer l’exécution du programme Prolog, il suffit de taper l’instruction

?-halt.

Les modes conversationnels :

Lorsque le système Prolog est lancé, il dialogue avec l’utilisateur. Il existe deux modes conversationnels :

 Le mode interrogation : dans ce mode, le système considère que ce que

l’utilisateur tape au clavier est une question. Toute question est une formule ou une conjonction de formules impérativement terminée par un point. Le système lit la question et y répond comme vous venez de le voir.

 Le mode enregistrement : dans ce mode, le système considère que ce que

l’utilisateur tape au clavier constitue des faits et ou des règles qu’il doit enregistrer en tant que programme.

Lorsque le système est lancé, Prolog est normalement en mode interrogation. La manière de passer d’un mode à l’autre est dépendante du système et il vous faut consulter le manuel de GnuProlog (/net2/softs/gnu/gprolog-1.2.1/docs) pour la connaître. Cependant le mode interrogation est le plus important, car il est plus facile de taper les programmes en un seul bloc sous Emacs.

(2)

Travail sur les N-uplets : Les arbres syntaxiques Exercice 1 :

Nous avons vu dans le chapitre sur les listes la manière de construire un analyseur associé à une grammaire. Nous allons maintenant introduire la notion d’arbre syntaxique.

Considérons la grammaire :

G1 : {S → c, S → aSb}

1. Citez quelques mots du langage.

2. En déduire les arbres syntaxiques correspondants.

3. En déduire les n-uplets correspondants.

4. Ecrire un programme qui construit tous les arbres syntaxiques de la grammaire G1.

5. Tester le programme en lui de demandant de reconnaître si un arbre donné correspond à la grammaire G1 ou non.

6. Tester le programme pour générer des arbres syntaxiques (attention c’est un processus infini). Que remarque-t-on en inversant l’ordre des règles ?

7. Reprendre les règles de l’analyseur associé à cette grammaire (ou les retrouver). Peut-on modifier ce programme de façon que l’analyseur construise l’arbre syntaxique d’un mot, en même temps qu’il reconnaît ce mot.

8. Lorsqu’on construit un arbre syntaxique, la liste des feuilles constitue le mot dérivé par l’arbre. Ecrire un programme qui construit la liste des feuilles d’un arbre en respectant les deux contraintes suivantes :

 Vous vous limiterez aux arbres comportant au plus trois branches (ou fils). Vous coderez donc ces arbres au moyen des n-uplets <X, Y>, <X, Y, Z> ou <X,Y,Z, T>.

 Le programme doit être capable de reconnaître des feuilles de nature très diverse : caractères, entiers, identificateurs, etc. Un moyen simple de parvenir à ce but est de coder les feuilles par le singleton <X>.

Exercice 2 :

On se donne la grammaire :

<NOMBRE> : := <A><B>

<A> : := 0<A>1

<A> : :=01

<B> : :=2<B>

<B> : :=2

1. Donnez des exemples de mot générés à partir de cette grammaire.

2. Ecrire l’analyseur associé à cette grammaire.

3. Modifier cet analyseur pour calculer le nombre de0, de 1, et de 2 que contient le nombre (on utilisera le terme plus-un(K, M) qui effectue le calcul M=K+1).

Références

Documents relatifs

Développement d’un modèle de cellulaire de propagation de mouche des fruits grâce aux logiciels développés (Systèmes d’information géographiques, modélisation orientée

exercice 7 : ajout d'un nouveau contrôle (date and time picker) exercice 10 : création d'un fichier texte avec Excel. complément : lire un fichier texte par

Pour donner à ce genre de journal plus de vraisemblance, le narrateur nous explique que les geôliers lui ont fourni de quoi écrire, et lui laissent du temps pour écrire. Pour

Cette question peut être interprétée comme : « trouver le premier ensemble de valeurs de H, P, D qui satisfait la relation repas et vérifier s’il comporte du poisson en plat

Fonctions d’une variable réelle à valeurs réelles : fonctions d’une variable réelle (fonctions bornées, extrema, bornes supérieure et inférieure, fonctions

Objectifs de l’enseignement : Applications des méthodes numérique et résolution des quelques équations dans le domaine énergétique (transfert thermique et MDF)

Le crédit bail n’apparaît que dans le compte de résultat dans les autres achats et charges externes (et non au bilan comptable).. Il faut donc le réintégrer : problème  dans

Le volume horaire des cliniques pour la quatrième (4) et cinquième (5) année a été fixé à 450 heures / année pour chaque année clinique, avec cinq (05) séances