12.07.2015 Views

Algorithmes de la morphologie mathématique pour - Pastel - HAL

Algorithmes de la morphologie mathématique pour - Pastel - HAL

Algorithmes de la morphologie mathématique pour - Pastel - HAL

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Algorithmes</strong> <strong>de</strong> <strong>la</strong> <strong>morphologie</strong> <strong>mathématique</strong> <strong>pour</strong> les architectures orientées fluxJaromír BRAMBORlisent pas <strong>la</strong> machine d’état <strong>pour</strong> décrire un programme comme c’est le cas chez les <strong>la</strong>ngages impératifs 1mais ils préfèrent exprimer le programme à l’ai<strong>de</strong> <strong>de</strong>s fonctions qui prennent <strong>de</strong>s paramètres d’entrée etqui ne retournent qu’un paramètre <strong>de</strong> sortie à <strong>la</strong> fois. L’utilisation <strong>de</strong>s types et <strong>de</strong>s structures <strong>de</strong> haut niveauest propre à ces <strong>la</strong>ngages. Ils permettent d’exprimer d’une façon simple les constructions complexesqui prendraient plusieurs lignes dans un <strong>la</strong>ngage impératif. Ces constructions prennent souvent beaucoupmoins <strong>de</strong> lignes ou seulement une seule dans un <strong>la</strong>ngage fonctionnel. Par exemple, l’application d’unefonction à chaque élément d’une liste prend une ligne et utilise <strong>la</strong> récursion.4.2 Haskell et les bases <strong>de</strong>s <strong>la</strong>ngages fonctionnels4.2.1 Syntaxe du HaskellNous avons choisi <strong>la</strong> syntaxe du <strong>la</strong>ngage Haskell <strong>pour</strong> exprimer les algorithmes dans cette thèse.Le nom <strong>de</strong> ce <strong>la</strong>ngage, Haskell, est en honneur <strong>de</strong> Haskell Brooks Curry Wik06g dont les travaux dans <strong>la</strong>logique <strong>mathématique</strong> servent comme bases aux <strong>la</strong>ngages fonctionnels. Il s’agit d’un <strong>la</strong>ngage fonctionnelqui émane du Lambda calcul, qui est bien défini dans sa version actuelle nommée Haskell98 Jon03 maisqui est également bien vivant car les travaux <strong>de</strong> définition <strong>de</strong> son successeur se <strong>pour</strong>suivent ; il est utiliséavec succès dans <strong>la</strong> recherche y compris par les membres 2 <strong>de</strong> Microsoft Research HMJH05 , par exemple.Notre choix du Haskell a été le résultat d’une petite recherche que nous avons menée et dont le butétait <strong>de</strong> choisir un formalisme satisfaisant un certain nombre <strong>de</strong> <strong>de</strong>si<strong>de</strong>rata. Dans notre cas, c’est Haskellqui a contenté nos exigences par <strong>la</strong> combinaison <strong>de</strong>s propriétés suivantes :• les <strong>de</strong>scription implicitement formelle <strong>de</strong>s algorithmes à travers Haskell,• <strong>la</strong> proximité <strong>de</strong> <strong>la</strong> notation utilisée en <strong>mathématique</strong>s où même les lecteurs non instruits peuventfacilement comprendre les algorithmes exprimés en Haskell,• les capacités <strong>la</strong>rges <strong>de</strong> modélisation qui sont adaptées à nos besoins,• pouvoir vérifier <strong>la</strong> bonne construction d’une définition en utilisant le parser <strong>pour</strong> l’analyse <strong>de</strong>syntaxe,• <strong>la</strong> possibilité <strong>de</strong> simu<strong>la</strong>tion par l’exécution d’un programme, ce qui nous permet <strong>de</strong> vérifier le bonfonctionnement sur les données réelles.La combinaison <strong>de</strong> ces propriétés nous a mené par <strong>la</strong> suite à l’utilisation du Haskell <strong>pour</strong> notre travail et<strong>pour</strong> nos explications.Pourtant, nous ne sommes pas les seuls <strong>de</strong> se poser <strong>de</strong> telles exigeances et <strong>de</strong> choisir Haskell commeun outil ; il y a d’autres chercheurs qui l’utilisent <strong>pour</strong> <strong>la</strong> <strong>de</strong>scription <strong>mathématique</strong>, cf. l’article électroniqueintitulé Eleven Reasons to use Haskell as a Mathematician Unk06 .Le Lambda calcul BB94 travaille avec <strong>de</strong>ux opérations <strong>de</strong> base, l’application et l’abstraction. L’opérationd’application qui est exprimée dans le Lambda calcul parA · Eou également par plus courtA Eindique l’application d’un algorithme, perçu par A, sur une entrée, perçue par E. L’application dansHaskell correspond, si elle est explicitement mentionnée, à <strong>la</strong> fonction $ utilisée commeA$Emais nous pouvons aussi employer <strong>la</strong> notation plus courte, <strong>de</strong> <strong>la</strong> même façon que dans le Lambda calcul.Cette notation omet <strong>la</strong> fonction d’application explicite et est utilisée comme :A E1Comme <strong>la</strong>ngages impératifs nous pouvons citer Basic, Pascal, C, C++, Java, et d’autres.2Citons les travaux <strong>de</strong> Simon Peyton Jones portant sur les utilisations du Haskell dans les technologies <strong>de</strong> Microsoft60

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!