Filtrage Par Motif

Filtrage Par Motif

Filtrage par motif

Le filtrage par motif, en anglais pattern matching, est la vérification de la présence de constituants d'un motif dans un programme informatique. Par contraste avec la reconnaissance de forme, les motifs sont spécifiés rigidement. De tels motifs concernent conventionnellement des séquences ou des arbres.

On utilise le filtrage par motif pour vérifier que l'objet filtré a la structure désirée, pour y trouver une structure appropriée, pour y retrouver des parties alignées ou pour substituer quelque chose d'autre aux motifs reconnus.

Les séquences (particulièrement les chaînes de caractères) sont souvent décrites par des expressions rationnelles. Elles peuvent aussi être vues comme des arbres.

Les motifs d'arbre peuvent être utilisés par les langages de programmation comme un outil général pour traiter leur structure. Certains langages de programmation fonctionnelle tels que Haskell, ML et le langage de mathématiques symboliques Mathematica ont une syntaxe spéciale pour exprimer les motifs d'arbre et une construction de langage pour l'exécution conditionnelle et la récupération de valeurs fondée sur celle-ci. Pour des raisons d'efficacité et de simplicité, ces motifs d'arbre n'ont pas toutes les fonctionnalités propres aux expressions rationnelles.

Selon le langage, les expressions de reconnaissance de motif peuvent être utilisées comme argument de fonctions, dans des expressions case où de nouvelles variables sont liées, ou dans des situations très limitées comme l'affectation en Python. Il est souvent possible de donner des motifs alternatifs qui sont essayés en séquence. La reconnaissance de motif peut bénéficier de gardes.

Les langages de réécriture de termes reposent sur le filtrage par motif comme manière fondamentale pour un programme d'évaluer un résultat.

Le filtrage par motif est le plus approprié quand la structure de données sous-jacente est aussi simple et flexible que possible. C'est particulièrement le cas pour les langages avec un penchant symbolique. Dans ceux-ci, les motifs sont du même type que le reste des données, et peuvent donc être passés en paramètres à des fonctions. En d'autre termes, ce sont des entités de première classe.

Le filtrage par motif reconnaît un motif dans une structure arborescente préexistante tandis que les expressions rationnelles reconnaissent un motif dans une structure plate. Perl 6 propose un système qui intègre les deux sémantiques dans une syntaxe concrète unifiée.

Sommaire

Exemple de filtrage en OCaml

Dans cet exemple écrit en OCaml, on crée une liste puis on définit une fonction récursive de recherche dans la liste à l'aide d'un filtrage.

# let l1 = [3 ; 4 ; 5];;
val l1 : int list = [3; 4; 5]
 
# let rec est_dans_liste x l = match l with
| [] -> false
(* fin de la liste : l'élément n'a pas été trouvé *)
| i::l' -> x = i or est_dans_liste x l'
(* il y a au moins un élément dans la liste : on le compare et si ce n'est pas le bon on continue le parcours récursif de l *)
;;
val est_dans_liste : 'a -> 'a list -> bool = <fun>
 
# est_dans_liste 4 l1;; (* recherche de l'entier 4 dans la liste l1 *)
- : bool = true
 
# est_dans_liste 4 [];; (* recherche de l'entier 4 dans une liste vide *)
- : bool = false

Voir aussi

Articles connexes

  • Type algébrique de données
  • Reconnaissance de forme pour les motifs flous
  • AIML pour un langage d'intelligence artificielle fondé sur le filtrage de motif dans la parole
  • SNOBOL pour un langage de programmation fondé sur une sorte de motif
  • PCRE Perl Compatible Regular Expressions, une implantation moderne du filtrage par motif de chaîne utilisée par de nombreux langages

Sources

Liens externes

  • Portail de l’informatique Portail de l’informatique
Ce document provient de « Filtrage par motif ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Filtrage Par Motif de Wikipédia en français (auteurs)

Игры ⚽ Поможем сделать НИР

Regardez d'autres dictionnaires:

  • Filtrage par motif — Le filtrage par motif, en anglais pattern matching, est la vérification de la présence de constituants d un motif par un programme informatique, ou parfois par un matériel spécialisé. Par contraste avec la reconnaissance de forme, les motifs sont …   Wikipédia en Français

  • Logiciel de Filtrage — DansGuardian blocking whitehouse.com. Un logiciel de contrôle de contenu (en anglais content control software[1 …   Wikipédia en Français

  • Logiciel de filtrage — DansGuardian bloque le site web whitehouse.com. Un logiciel de contrôle de contenu en anglais : content control software[1] …   Wikipédia en Français

  • Marketing par courriel — Sommaire 1 Origines 2 Les filtres anti spam 3 L’utilisation du courriel comme véhicule de communication personnalisée 4 Les principes …   Wikipédia en Français

  • OCaml — Objective Caml Apparu en 1987 (CAML), 1996 (OCaml) Développeur INRIA Dernière version stable …   Wikipédia en Français

  • Objective Caml — Apparu en 1987 (CAML), 1996 (OCaml) Développeur INRIA Dernière version stable 3.11.1 (le 12  …   Wikipédia en Français

  • Ocaml — Objective Caml Apparu en 1987 (CAML), 1996 (OCaml) Développeur INRIA Dernière version stable 3.11.1 (le 12  …   Wikipédia en Français

  • O’Caml — Objective Caml Apparu en 1987 (CAML), 1996 (OCaml) Développeur INRIA Dernière version stable 3.11.1 (le 12  …   Wikipédia en Français

  • Garde (informatique) — Pour les articles homonymes, voir Garde. En informatique, une garde est une expression de type booléen qui a pour valeur vrai si l exécution du programme doit continuer dans la branche en question. Le terme est utilisé notamment dans les langages …   Wikipédia en Français

  • Simplification de textes — La simplification de textes(TS) est une opération utilisée dedans en traitement automatique du langage naturel pour modifier, augmenter, classifier ou traiter autrement un corpus existant de texte lisible pour l homme de telle manière que la… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”