Partage
  • Partager sur Facebook
  • Partager sur Twitter

Programmation fonctionelle? Impérative? Ittérative??

Mais qu'est-ce donc?

    3 août 2006 à 20:05:33

    Salut à tous les zéros.
    J'ai compris la différence entre la programmation procédurale et orientée objet, mais je vois qu'apparament, il existe d'autres types de programmation:
    - Fonctionnelle
    - Impérative
    - Ittérative

    Qu'est-ce donc que ces types de langages? Est-ce que certains sont justes des synonymes? Y a-t-il encore d'autres types?

    Merci d'avance pour vos réponses.

    Ps: J'ai fait des recherches google et je ne comprend pas la définition de wikipédia sur la prog fonctionnelle... Et j'ai pas trouvé de bonne définition sinon..
    • Partager sur Facebook
    • Partager sur Twitter
      3 août 2006 à 20:10:34

      procédurale = fonctionelle, ce sont deux mots pour désigne la même chose (dans certains langages comme le pascal, une procédure est une fonction qui ne demande pas d'argument)

      Impérative, j'ai jamais entendu parlé

      Ittérative est plutôt une façon de penser son programme. Souvent en algoritme, on procède par "ittération", c'est à dire par répétition de l'éxecution d'un même bloc de code
      • Partager sur Facebook
      • Partager sur Twitter
        4 août 2006 à 18:39:29

        ahem, itération

        Petit extrait d'un gros document en rédaction chez moi :

        Citation : bluestorm


        Langages impératifs



        Les langages impératifs conservent un lien très étroit entre les variables manipulées par le programme et la mémoire de l'ordinateur. Pour penser une action dans un langage impératif, on a tendance à envisager les modifications que cette action apportera à la mémoire de l'ordinateur, et à écrire le programme de la même manière, en modifiant des variables à la place de la mémoire de l'ordinateur.

        C'est le cas de la plupart des langages connus : par exemple, tous les langages basés sur le C (dont le PHP) sont des langages impératifs.

        OCaml permet de programmer dans un style impératif. Vous y retrouvez d'ailleurs une partie de la syntaxe des langages que vous connaissez bien, les boucles for et while en particulier.



        Langages fonctionnels



        Les langages fonctionnels ont une conception plus abstraite du programme informatique. Elle est souvent fondée sur des fonctions (j'imagine que vous vous en doutiez ^^ ), et moins axée sur la modification en place des variables, mais plutôt sur la construction de nouvelles valeurs.

        Imaginez une liste d'éléments, et imaginez que l'on cherche à obtenir la "queue" de cette liste, c'est-à-dire une liste composée de tous les éléments (dans le même ordre) sauf le premier.
        Dans un langage impératif, on utilisera une fonction (nommée par exemple pop) qui retourne le premier élément de la liste, et le supprime. Il suffit donc d'appeler pop, sans prendre garde de ce qu'il pourrait renvoyer, et on sait que pour le reste du programme la liste a été tronquée, et ne contient plus le premier élément.
        Dans un langage fonctionnel, on utilisera une fonction (nommée par exemple tail) qui retourne une copie de la liste, sans le premier élément, sans modifier la liste que l'on avait avant. On va donc déclarer une valeur qui contiendra le résultat de la fonction tail, et qui correspondra à ce que l'on recherche, la liste initiale restant inchangée.

        OCaml permet la programmation fonctionnelle. C'est même un des points forts du langage : le style fonctionnel se marie extrêmement bien à un typage fort.

        C'est en général un aspect que les programmeurs (surtout les programmeurs autodidactes, je ne parle pas des cours de programmation à l'université ou en classe préparatoire) connaissent mal. Si vous êtes dans ce cas, cette partie du OCaml ne vous sera pas familière du tout, et vous trouverez cela extrêmement étrange. Préparez-vous psychologiquement, parce que le style fonctionnel a de nombreux avantages dans certains cas : le jeu en vaut la chandelle.

        • Partager sur Facebook
        • Partager sur Twitter
          4 août 2006 à 18:58:45

          sans oublier la pub pour OCaml :-)
          • Partager sur Facebook
          • Partager sur Twitter
            7 août 2006 à 18:59:47

            bah forcément, c'est un extrait de document parlant exclusivement de OCaml :D
            • Partager sur Facebook
            • Partager sur Twitter

            Programmation fonctionelle? Impérative? Ittérative??

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown