Prolog

1566 mots 7 pages
Un peu de programmation logique — Unification

Programmation logique

origines: ann´es 70, ´tude des preuves constructives en logique e e une fonction peut ˆtre vue comme une preuve d’une propri´t´ e ee de la forme ∀x.∃y .P(x, y )

Prolog est un d´monstrateur de th´or`mes e e e

(= Coq)

un programme ≡ des axiomes et des r`gles (clauses) e addright(nil,X,cons(X,nil)). addright(cons(A,B),X,cons(A,Z)) :- addright(B,X,Z) rev(nil,nil). rev(cons(X,Y),Z) :- rev(Y,W), addright(W,X,Z) le :- se lit ⇐

Prolog, “ex´cutions” d’un programme e addright(nil,X,cons(X,nil)). addright(cons(A,B),X,cons(A,Z)) :- addright(B,X,Z) rev(nil,nil). rev(cons(X,Y),Z) :- rev(Y,W), addright(W,X,Z)

on saisit une requˆte e rev([1,2,3],[3,2,1]) rev([9,1,1],Y) rev(X,[32,52]) rev([1,2,A],[3,2,B]) rev([1,2,C],[3,3,D]) → → → → → true Y=[1,1,9] X=[52,32] A=3, B=1 ∅

pas vraiment de notion d’entr´es/sorties e programmation tr`s d´clarative e e pas trop de notion de flot du calcul

r´sultat d’un programme: ensemble de solutions de la requ`te e e plus petit ensemble de faits satisfaisant axiomes et r`gles e

Prolog – hello world

famille pere(X,Z) :- pere(X,Y), frere(Y,Z). grandpere(X,Z) :- pere(X,Y), pere(Y,Z). fils(X,Y) :- pere(Y,X). pere(X,Y) :- fils(Y,X). cousin(X,Y) :- pere(T,X), frere(T,U), pere(U,Y). pere(jacques, arthur). fils(mathieu, louis). frere(louis, roger). pere(maurice,roger). grandpere(X,mathieu). frere(jacques,Y).

comment ¸a marche? c

Un programme Prolog, formellement des axiomes et des r`gles: e c(t1 , . . . , tk ). c(t1 , . . . , tk ) : − p1 (u11 , . . . , u1k1 ), . . . , pn (un1 , . . . , unkn ). les c, p1 , . . . , pn sont des pr´dicats e
(penser aux constructeurs de Caml)

les ti , uij sont des termes un terme est: soit une variable (majuscule) soit construit en appliquant un pr´dicat ` un certain nombre e a (´ventuellement nul) de (sous-)termes e

exemples:

nil

Y

rev(nil,nil)

rev(cons(a,nil),X)

un pr´dicat a une arit´:

en relation

  • Corrige ccp math
    2785 mots | 12 pages
  • Éloge
    510 mots | 3 pages
  • Logistique
    287 mots | 2 pages
  • Determinant d'un livre de maths
    9922 mots | 40 pages
  • Epreuve specifique- mathematiques filiere mp
    1201 mots | 5 pages
  • Logi
    2770 mots | 12 pages
  • exo de math
    357 mots | 2 pages
  • temps de programmation temps reel
    12446 mots | 50 pages
  • Logistique
    1303 mots | 6 pages
  • Calcul intégral
    13153 mots | 53 pages
  • Logistique
    21393 mots | 86 pages
  • Logs
    775 mots | 4 pages
  • Logistique
    2973 mots | 12 pages
  • Asdgasdg
    1845 mots | 8 pages
  • Logis
    1051 mots | 5 pages