Best viewed in 24pt and full-screen
next up previous contents
Next: E Up: A-Z Previous: C

D

kind réel type .
type dérivée (réel->réel) -> (réel->réel) -> o .
type (zéro , un) réel .
type plus réel -> réel -> réel .
dérivée xtex2html_wrap_inline56812x xtex2html_wrap_inline56812un .
dérivée xtex2html_wrap_inline56812Cste xtex2html_wrap_inline56812zéro .
dérivée xtex2html_wrap_inline56812( plus (A x) (B x) ) xtex2html_wrap_inline56812( plus (DA x) (DB x) ) :- dérivée A DA , dérivée B DB .


Quelques clauses d´un programme de dérivation.

tex2html_wrap_inline52830. n.f. Definite Clause Grammar ou grammaire en clauses définies [Pereira et Warren 80, Clocksin et Mellish 94]. Instance la plus répandue de la notion de grammaire logique*. Elle repose sur l'observation que la structure des clauses de Horn* et celle des règles de grammaires sans contexte se ressemblent, et que la stratégie habituelle de recherche de preuve par Prolog ressemble à une analyse descendante. Avec les tex2html_wrap_inline52830, les prédicats jouent le rôle de non-terminaux, et des notations spéciales représentent les terminaux et les points de génération. La plupart des systèmes Prolog sont équipés d'un préprocesseur qui traduit les règles tex2html_wrap_inline52830 en des clauses Prolog de telle manière que l'exécution standard du programme résultant corresponde à une analyse descendante du langage engendré par la grammaire. À d'autres stratégies d'exécution de Prolog peuvent correspondre d'autres stratégies d'analyse. Par exemple, l'exécution selon la stratégie tabulée tex2html_wrap_inline53122 [Warren 92, Warren 93] correspond à la procédure de Earley [Earley 70]. Noter que les tex2html_wrap_inline52830 peuvent servir pour programmer des analyseurs, mais aussi des générateurs.

Par exemple, une règle de grammaire avec attribut engendrant des phrases simples et sa version tex2html_wrap_inline52830 sont comme suit :

«phrase» tex2html_wrap_inline53876 «groupe sujet» «groupe verbal»
                avec «groupe sujet».accord = «groupe verbal».accord

phrase --> groupe_sujet A tex2html_wrap_inline52828 groupe_verbal A .

où l'attribut accord représente l'accord du sujet et du verbe. Comme souvent en programmation logique, on remplace le nommage de champs ou de paramètres par une notation positionnelle. L'attribut accord n'a donc plus de nom dans la version tex2html_wrap_inline52830 ; il n'est plus désigné que par sa position.

Dans un analyseur, cette règle de grammaire permet de vérifier la correction syntaxique d'une phrase, mais ne donne aucune information sur son contenu. Une variante plus utile construit une représentation sémantique (dans cet exemple, à la Montague [Montague 74]) de la phrase analysée.

phrase (SNP VP) --> groupe_sujet A SNP tex2html_wrap_inline52828 groupe_verbal A VP .

La plupart des systèmes Prolog contiennent un préprocesseur qui traduit les règles tex2html_wrap_inline52830 en clauses Prolog. En supposant que le mot entré pour être analysé est représenté par la technique de la liste en différence*, la règle précédente se traduit en :

type phrase o -> (list mot) -> (list mot) -> o .

phrase (SNP VP) In Out :- groupe_sujet A SNP In L1 , groupe_verbal A VP L1 Out .

De Bruijn (notation de). Notation des tex2html_wrap_inline56836-termes* qui s'affranchit de la tex2html_wrap_inline53968-équivalence* en ne désignant pas les tex2html_wrap_inline56836-variables* par leur nom mais par la position de la tex2html_wrap_inline56836-abstraction* qui les lie [de Bruijn 72]. Le principe est de noter chaque occurrence d'une tex2html_wrap_inline56836-variable par le nombre de tex2html_wrap_inline56836-abstractions qui sont situées entre cette occurrence et la tex2html_wrap_inline56836-abstraction qui lie cette variable, cette tex2html_wrap_inline56836-abstraction comprise. La figure suivante illustre la notation de de Bruijn graphiquement et textuellement.

  tex2html_wrap53906

Un programme de conversion entre les deux notations est donné en exemple d´induction structurelle en tex2html_wrap_inline56836Prolog*. La notation de de Bruijn est souvent employée dans les travaux sur les tex2html_wrap_inline56836-calculs* à substitution explicite*.

Décidable. adj. (ant. indécidable*) (rel. semi-décidable*) Se dit d'un problème tel qu'il existe un algorithme qui peut en résoudre toutes les instances.

Descriptif. adj. (ant. prescriptif*) Se dit d'un typage des programmes Prolog* qui consiste essentiellement en une abstraction des programmes. On peut aussi y voir l'application du point de vue de Curry* au typage de Prolog. Le type d'un programme est alors une partie de sa base de Herbrand* qui contient sa sémantique. L'enjeu principal est de trouver un compromis entre la facilité de calcul et la qualité de l'approximation. Dans ce domaine, les propositions techniques consistent essentiellement en des structures de parties de bases de Herbrand partiellement ordonnées par inclusion dans lesquelles on recherche la plus petite partie qui contient la sémantique d'un programme [Mishra 84, Yardeni et Shapiro 87, Zobel 87, Bruynooghe et Janssens 88].


next up previous contents
Next: E Up: A-Z Previous: C

Olivier Ridoux
Mon Apr 27 11:10:23 MET DST 1998