Journal histoires de typage

Posté par  (site web personnel) .
Étiquettes : aucune
0
10
mai
2004
y'a tout un thread sur le sempiternel "débat" typage dynamique vs. statique dans fr.comp.lang.general . Ça ressort tous les quelques mois, la dernière fois c'était cross-posté sur comp.lang.functional, comp.lang.lisp et comp.object (il était terrible celui là !).

C'est sympa pour récolter des citations marrantes :

« Dire qu'un langage est typé parce qu'il est typé dynamiquement, c'est un peu comme dire qu'une voiture offre une assistance au freinage parce qu'elle a une pédale de frein. »

Excellent !
  • # Cool ca

    Posté par  . Évalué à 3.

    Dire qu'un langage est typé parce qu'il est typé dynamiquement, c'est un peu comme dire qu'une voiture offre une assistance au freinage parce qu'elle a une pédale de frein.

    Ca veut dire qu'on ne peut pas considerer Caml comme typé ?
    Ehhh ben...

    Le premier qui trouve une analogie du même type pour démontrer que Small Talk n'est pas objet gagne toute mon estime. Allez-y

    Kha
    • [^] # Re: Cool ca

      Posté par  (site web personnel) . Évalué à 3.

      bah non puisque caml est statiquement typé.

      démontrer que Small Talk n'est pas objet

      bah, c'est sûrement possible vu le nombre de définitions possible de l'objet :)
      • [^] # Re: Cool ca

        Posté par  . Évalué à 2.

        bah non puisque caml est statiquement typé

        Euh... CAML est très fortement typé, mais cela ne l'empèche absolument pas de determiner le type a l'execution. Soit ma définition de typage dynamique est mauvaise, soit il suffit de faire mumuse 10 secondes avec les outils de patterns matching de Caml (notament les listes et les exceptions) que l'on peut parfaitement creer des fonctions qui accepte x valeurs de n'importe quel type a condition que les x valeurs soient du même type.

        Si j'ai faux quelque part dites le moi, je bosse très rarement avec des langages fortements typés, mais la terminologie et les définitions m'interressent au plus haut point.

        Kha
        • [^] # Re: Cool ca

          Posté par  (site web personnel) . Évalué à 4.

          Caml est fortement et statiquement typé. Cela lui permet d'oublier presque totalement les types des valeurs lors de l'exécution. Presque, parce qu'il reste un peu d'information pour que le runtime (notamment le garbage collector) puisse s'y retrouver.

          Quant tu dis 'faire mumuse 10 secondes' j'ai l'impression que tu parles du toplevel (aka interpréteur, aka REPL). Le toplevel fonctionne en fait comme un compilateur incrémentiel : quand tu tapes un truc dedans, c'est parsé, typé puis évalué. Le toplevel garde les informations de types pour les entrées suivantes mais lors de la phase d'évaluation tout se passe comme pour les programmes compilés, il n'y a pas d'information de type utilisée à l'exécution.

          Sinon tu parles peut-être du polymorphisme paramétrique. Typage statique n'est pas du tout incompatible avec polymorphisme paramétrique (ie les valeurs du genre 'une liste de n'importe quoi'). On peut travailler aved une telle liste (compter ses éléments, extraire des éléments, etc.) mais on ne peut rien faire avec les éléments eux-mêmes car on ne possède aucune information à leur sujet.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.