Aller au menu - Aller au contenu

Le typage : présentation thématique et historique

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page 1 
Pseudo Commentaire
Page 1 
Hors ligne SpotZup # Posté le 02/06/2007 à 01:35:31
Go n7
Avatar

Études : ENSEEIHT

C'est un texte super intéressant, qui fait comprendre des tas de choses (encore plus que ce qu'il explique) ! Merci encore d'avoir pris le temps de rédiger tout ça, ce travail mériterait d'être mis en valeur, ça fait bien plus progresser que la découverte d'une nouvelle fonction. De toute façon ça a toujours été la théorie, le "comment ça marche" qui m'a le plus plu.. Avec mes maigres compétences, je peux pas encore foncer tête baissée dans la pratique. J'espère qu'on aura droit a encore pleins d'autres comme ça (avant votre retraite), en tout cas c'est super complet, les liens m'ont fait aussi passer un moment sur wikipédia, et grâce a vous j'ai pu ne pas réviser mon bac ce soir ^^ Bon c'est un peu propagandiste et certains passages visent un public assez expérimenté, mais il faudrait plein de pages pour tout expliquer clairement !

Je met 19, pas le maximum à cause d'une petite faute d'orthographe (faut bien trouver quelque chose ^^)

>> ENSEEIHT 2012 (Bureau Des Arts) <<
 
Hors ligne shuss # Posté le 03/06/2007 à 17:36:31
Avatar

Waw, on en a à lire ! Je trouve ça plutôt intéressant, même si des fois je me suis un peu perdu dans tes explications. Mais je dois dire que je me suis habitué aux types : au départ, avec PHP (ou d'autres langages) où il est possible de ne pas typer explicitement ses variables, je me disais que le typage serait une contrainte. Mais après plus de C, j'ai fini par trouver que le typage est une formidable sécurité, que la plupart des utilisations ou une typage est "impossible" (sans créer un structure) sont peu claires, que les structures (et surtout les unions) permettent de faire la même chose avec plus de sécurité (utilisation possible seulement des types utiles), et surtout, que le non typage est un perte colossale de performances (je finis par me dire que l'ordinateur doit bouffer plein de mémoire à se souvenir de quels types sont les variables de ce tableau) !

Je mets (que :p ) 18 car je trouve parfois que cela manque d'exemples concrets pour illustrer le propos à des débutants comme moi !
Hors ligne Leonhart # Posté le 05/06/2007 à 05:53:38
Avatar

Je suis shuss sur le fait que ça manque un peu d'exemple pour vraiment tout comprendre mais c'est un super tutoriel ;)

J'ai bien adoré le paradoxe, j'ai plancher dessus 5min pour trouvé que aucune réponse ne convient dans n'importe qu'elle situation

A quand le prochain tuto de bluestorm ? ... personnellement je l'attend avec impatience :D

Secret (cliquez pour afficher)
Ah oui la note, un bon 18 vu le travail

Conseil de Séduction [1-2]
 
Hors ligne YellowMan # Posté le 28/06/2007 à 14:29:43

Avatar
Flux RSS

Études : Polytech'Nice-Sophia Antipolis

Très intéressant, instructif. C'est pas tout les jours qu'on voit des trucs sur le `pourquoi les choses ont évolué comme ça' sur le net (à propos de l'informatique).

Sinon, j'ai bien aimé le :
Citation : Pas de titre
Récemment, des langages "mainstream" (c'est à dire moins utilisés (parce qu'ils sont moches) par les chercheurs en info, et plus par les ingénieurs informaticiens (idem)) ont commencé à intégrer cette fonctionnalité : c'est le cas de Java et C#.

:-P

Le cours en lui-même est abordable (de mon point de vue), et il ne manque pas d'exemples. Le fait de montrer plusieurs langages dans le cours le rend encore plus attractif.

19 (La perfection existe pas...)

It's awesom.
 
Hors ligne casper # Posté le 27/09/2007 à 10:31:14

Après avoir lu ce tutoriel, je me dis qu'un peu plus de théorie sur l'informatique en général ne peut faire que du bien pour bien comprendre certains détails auxquels on ne pense pas. Tu montres bien l'évolution, ce qui donne presqu'envie de faire de la recherche dans l'informatique :p (enfin moi pas besoin de me convaincre si j'en ai les moyens, je fonce).

Sinon question plus perso, tu as vu ça dans tes études ou c'est plus une passion qui t'as poussé à le développer ?

Merci beaucoup pour ce cours.

@+

casper
Hors ligne Bogoris # Posté le 21/02/2008 à 17:13:18

Études : Université de Bretagne Sud

Bonjour,

Petite question : dans le prototype suivant (partie "Le typage, c'est sémantique"), il ne manquerait pas le nom d'une variable après char ? Code : C - Afficher / masquer les numéros de ligne
  1. char tolower(char )


Autre question : tu définies une fonction nommée "type" :
Code : Python - Afficher / masquer les numéros de ligne
  1. def type(test):
  2.     if test:
  3.        return (1 + 2)
  4.     else:
  5.        return (1 + "type")
Or une fonction nommée type existe déjà en Python. Ça ne semble pas poser de problèmes de redéfinir une fonction en Python, mais tu crois pas qu'il serait mieux de nommer ta fonction différemment pour ne pas perturber ceux qui connaissent un peu de Python ?

Sinon, concernant le démonstrateur automatique de preuves LCF, il ne vérifie que les théorèmes prouvés par récurrence, n'est-ce pas ? J'ai cru comprendre ça, parce que Computability se traduit par Calculabilité, et la calculabilité semble avoir quelque chose à voir avec la récursivité...

Sinon, bon travail, pour ce que j'en ai lu du moins (jusqu'à "Polymorphisme paramétrique" exclu), mais je ne doute pas que le reste sera de la même nature ;)

Amicalement,

Bogoris
Hors ligne bluestorm # Posté le 21/02/2008 à 18:41:05
dont ask to ask
Avatar
Groupe : Anciens
Flux RSS

Citation
il ne manquerait pas le nom d'une variable après char ?

Non, dans les prototypes on n'est pas obligé de mettre les noms de variable. Et dans ce cas, c'est fait exprès, puisque c'est pour montrer que seulement le typage permet de comprendre ce que fait la fonction. Le nom de l'argument est une information supplémentaire, qui peut dans certains cas être très utile et aider beaucoup, mais justement je voulais montrer qu'on peut souvent s'en passer, et se contenter du nom de la fonction et de son type.

Citation
Or une fonction nommée type existe déjà en Python. Ça ne semble pas poser de problèmes de redéfinir une fonction en Python, mais tu crois pas qu'il serait mieux de nommer ta fonction différemment pour ne pas perturber ceux qui connaissent un peu de Python ?

Bonne remarque. Je vais faire les modifications nécessaires.

Citation
Sinon, concernant le démonstrateur automatique de preuves LCF, il ne vérifie que les théorèmes prouvés par récurrence, n'est-ce pas ? J'ai cru comprendre ça, parce que Computability se traduit par Calculabilité, et la calculabilité semble avoir quelque chose à voir avec la récursivité...

C'est un peu plus compliqué que ça. Il y a un lien entre la calculabilité (une définition de "ce qu'un ordinateur peut théoriquement calculer", en quelque sorte) et la récursivité, effectivement (une des formulations des fonctions calculables utilise la récursivité), mais c'est dans un cadre beaucoup plus général que la récurrence sur les entiers.
Je ne connais pas du tout LCF, mais j'ai un peu regardé le système Coq, qui est un des assistant de preuves modernes les plus utilisés, et il restreint en effet la portée des objets que tu peux définir : le langage de Coq te force à formuler des algorithmes qui ne peuvent pas "boucler à l'infini" (en particulier, il n'est pas Turing Complet, et c'est une propriété recherchée parce que les langages turing complets ne peuvent garantir qu'un programme va se terminer en un temps fini, c'est le problème de l'arrêt). En particulier, toutes les fonctions récursives ne sont pas formulables (puisqu'il existe des fonctions récursives qui ne s'arrêtent pas) : on est limité à des récursions "bien formées", c'est à dire dont on peut prouver qu'elles terminent en un temps fini.
 
Hors ligne Bogoris # Posté le 22/02/2008 à 15:15:19

Études : Université de Bretagne Sud

D'accord, merci bien pour toutes ces précisions :)

EDIT 17:26 : je viens de finir de lire. J'ai trouvé le dernier code d'Ocaml un peu obscure (ne connaissant pas l'Ocaml...), mais sinon, globalement c'est un très très bon tutoriel qui, je pense, m'aidera dans l'approche de nouveaux langages.

Merci encore,

Bogoris
Hors ligne geenux # Posté le 25/02/2008 à 11:42:53
Vive Qt
Avatar

Ville : Brest
Pays : France métropolitaine

Vive bluestorm (j'y peut rien t'es mon idole) et ses tutos!
Vraiment bien faite cette petite dissertation.
Ca mérite un
Secret (cliquez pour afficher)
19/20 car un peut trop abstrait pour moi
Hors ligne Le Yaude # Posté le 13/06/2008 à 23:02:36

Études : Télécom ParisTech

Vraiment très intéressant comme tuto ! Etant en première année de prépa et commençant donc tout juste un peu d'informatique théorique, je trouve ça vraiment intéressant d'apprendre des choses plus "culturelles" que l'on a pas le temps de voir en cours (pas que j'aime pas passer 3h à multiplier des polynômes, mais bon...). En plus maintenant c'est promis, j'arrêterai de crier sur Caml qui m'oblige à écrire que "pi = 4.*.atan(.1)", même si je trouve ces "points" lourds !

J'avais déjà lu le tuto sur les Kio-slaves et la récursivité avec beaucoup d'intérêt, d'où la question qui me vient à l'esprit : à quand d'autres tutos ?! lol.

Et pour la note... ben comme les autres, 19 parce que c'est vraiment super mais que rien ni personne n'est parfait !
Hors ligne felixzero # Posté le 02/08/2008 à 14:10:59
That's why
Avatar

Un très bon tuto, comme tout le reste d'ailleur. Grrr ... je vois des types partout maintenant ! :)

Ceci est une signature pas à jour. :D
 
Hors ligne raphamil # Posté le 12/08/2008 à 11:50:17
Avatar

Études : Université de Bordeaux

Très épais bluestrom, comme d'hab :)
19/20

Est-ce que les templates (et leur équivalent en Java) ont leur place dans ce tutoriel ?

Les langages fonctionnels sont un rien spéciaux, mais ils changent votre manière de voir un programme. Si vous ne connaissez que des dérivés du C (PHP, Python, etc.), changez votre manière de voir ici, et avec OCaml, Haskell, ou Scheme.
 
Connecté Navaati # Posté le 12/08/2008 à 12:23:31
C-3PO, droïde de protocole.
Avatar

Ville : Aix en provence
Pays : France métropolitaine

raphamil : Oui, les templates et les génériques (en java) correspondent exactement au polymorphisme paramétrique (mais sans l'inférence présentée dans les exemple Ocaml, bien sûr).
Hors ligne Thunderseb # Posté le 24/02/2009 à 01:16:35
Responsable de la validation
Avatar
Validateurs

Ville : Liège
Pays : Belgique

Suite à plusieurs alertes, j'ai édité le tuto pour faire apparaître la licence dans le bloc d'informations (parce que la licence du bloc ne correspondait pas à la CC définie dans la conclusion du tuto).
 
Hors ligne Cacophrene # Posté le 25/02/2009 à 07:56:59
Il est vraiment TeX-TuX
Avatar
Flux RSS

Ville : Le cannet
Pays : France métropolitaine
Études : Université de Nice Sophia Antipolis

Salut !

Rondement mené et d'une clarté sans faille. 20 !

Cordialement,
Cacophrène
 
Hors ligne Alp # Posté le 25/02/2009 à 13:31:29

"raphamil : Oui, les templates et les génériques (en java) correspondent exactement au polymorphisme paramétrique (mais sans l'inférence présentée dans les exemple Ocaml, bien sûr)."
=> un petit bémol. Les templates du C++ sont plus puissants et moins restreints que les Generics de Java et C#. Les templates du C++ constituent un sous-langage Turing-complet, pas les generics de Java et C#.
 
Hors ligne formatC:13 # Posté le 25/02/2009 à 19:10:59
experimental-ac.skyblog.com
Avatar

Ville : Martigues
Pays : France métropolitaine

super tuto ! clair, interesant...
bravo !
 
Hors ligne Swing # Posté le 14/03/2009 à 15:01:43
(-:

Vraiment très instructif pour qui s'intéresse à ce genre de choses. Bravo.

Seulement, ça aurait été pas mal d'en dire plus sur le typage dynamique : tu montres par l'exemple un désavantage, et un peu plus loin tu parles des problèmes de performance. Mais qu'en est-il des avantages et des raisons qui poussent les gens à mettre en œuvre ce genre de mécanisme ?

Il y a comme un déséquilibre au niveau des pour et des contre. Non pas que je me pose en fervent défenseur du typage dynamique, mais quelques explications supplémentaires sur le sujet permettraient de rencontrer l'objectif du tuto : couvrir l'aspect historique, ça implique d'expliquer pourquoi les choses ont parfois été conçues de telle manière et pas d'une autre.

one two three four five six seven, all good children go to heaven
 
Hors ligne jevrod # Posté le 20/05/2010 à 22:04:59
IterativesStructures.com
Avatar

tu parle de la necessité de rendre le code plus lisible et d'éviter certains bugs

je voulais savoir si le typage n'avait pas aussi été créer pour des problèmes de mémoire et d'allocation ? (nombre d'octets différents suivant les types)

voila, c'est ce que je pensais avant de lire ce tutos alors je me demande ce qu'il en est.
Hors ligne Kail-Ra # Posté le 04/12/2010 à 08:29:36

Super car même un pur zéro comme moi en ressort éclairé.
Pour ce qui est de la note, pas le temps... y'a i lascar qui doit causer de récursivité et d' algorithme!^^
arf au diable l'avarice même si le temps c'est de l'argent ...20!
Hors ligne psykie # Posté le 03/06/2011 à 12:01:15
/*Je suis une ZérO */
Avatar

Ville : Toulouse
Pays : France métropolitaine
Études : AFPA Balma

Merci pour ce tuto, Bluestorm. Ce n'est pas le 1er que je lis dont tu es l'auteur, et la qualité de tes écrits est toujours au rendez-vous !

J'ai pris beaucoup de plaisir à le lire, et à découvrir des langages dont je ne connaissais pas l'existence (BF :D ).

Quelques notions m'ont malheureusement échappées, de par le niveau d'abstraction qu'elles requièrent, et ma culture informatique relativement récente.

Cependant, je suis avide d'apprendre, et je lirai sans aucun doute d'autres tutos de ce genre que tu écriras peut-être par la suite.

Merci encore :)

C : 100% | XHTML/CSS : 100% | PHP/MySQL : 100% | Java : 100% | C++ : in progress
Image utilisateur I LOVE C
 
Pour accéder à cette section
Connectez-vous !
connexion_rpx