Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1728 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  intéret du typage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

intéret du typage

n°2019612
dav-42
Posté le 28-08-2010 à 17:44:12  profilanswer
 

Bonjour,
 
 
Quel est l'intérêt d'un typage fort comme on le trouve dans les langages comme java,c ... par rapport aux langages non typés comme le php
 
Je suis convaincu que le typage c'est bien mais je n'arrive pas à l'expliquer clairement.
 
Merci

mood
Publicité
Posté le 28-08-2010 à 17:44:12  profilanswer
 

n°2019622
Un Program​meur
Posté le 28-08-2010 à 18:42:56  profilanswer
 

- typage statique: le type est porté par les variables
- typage dynamique: le type est porté par les valeurs
- non typé (ex. assembleurs, BCPL): le type est porté par les opérateurs
 
Typage fort ou pas: est-ce qu'il y a la possibilité de tromper le système de type.  Ca ne s'applique pas aux langages non typés.  Le C est moins fortement typé que le PHP (à ma connaissance, en PHP il n'y a pas moyen d'appliquer une opérateur sur des valeurs du mauvais type, en C, entre les casts et les fonctions variadiques, c'est aisé).
 
L'avantage du typage statique par rapport au typage dynamique, c'est qu'un certain nombre d'erreurs sont détectées statiquement, à la compilation (en prime, c'est plus facile de générer du code efficace).  L'inconvéniant, c'est qu'on perd un peu de souplesse.  En passant, on peut considérer que la POO dans les langages typés statiquement réintroduit un peu de typage dynamique, mais d'une manière qui est vérifiable statiquement.


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°2019623
Profil sup​primé
Posté le 28-08-2010 à 18:56:45  answer
 

Typage_fort, par Wikipedia.
 

n°2019624
Taz
bisounours-codeur
Posté le 28-08-2010 à 19:04:48  profilanswer
 

Tu mélanges typage statique/dynamique et typage fort/faible.
 
Tout est relatif, mais on pourrait dire que par exemple:
- Java: typage statique & fort
- python: typage dynamique & fort
- perl: typage dynamique & faible (polymorphisme ad hoc, etc)
- C: typage statique & faible.
 
 
Un typage fort, même dynamique, te garantit que tu ne peux appliquer que des opérations légale à tes données. Le contre-exemple, c'est le C: t'as un pointeur, pour peut que tu le casts, tu peux en faire ce que tu veux, même si ça fait n'importe quoi. Alors qu'en ruby, si tu as un Fixnum, tu ne pourras jamais lui appliquer des opérations d'Array. Tu te prendras une exception (typage dynamique) mais tu ne passeras pas.

n°2019631
masklinn
í dag viðrar vel til loftárása
Posté le 28-08-2010 à 21:52:57  profilanswer
 

Taz a écrit :

Tout est relatif, mais on pourrait dire que par exemple:.


On pourrait surtout dire que "typage fort" n'a strictement aucune signification formelle, qu'il y a des dizaines de définitions différentes pour la différence faible/fort et qu'il ne faut jamais utiliser ces termes dans une discussion de types, c'est la marque d'un charlot.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2019632
masklinn
í dag viðrar vel til loftárása
Posté le 28-08-2010 à 21:57:00  profilanswer
 

dav-42 a écrit :

Quel est l'intérêt d'un typage fort comme on le trouve dans les langages comme java,c ... par rapport aux langages non typés comme le php
 
Je suis convaincu que le typage c'est bien mais je n'arrive pas à l'expliquer clairement.


Là tu parles surtout de l'axe typage statique vs typage dynamique.
 
Le typage statique n'est pas intrinsèquement supérieur au dynamique (surtout avec des systèmes de types pourris et pleins de trous genre C ou Java). Il limite habituellement la flexibilité du langage (à quel point dépend du système de types choisi et de la manière dont il est implémenté), mais elle transforme certaines classes d'erreur (là encore en nombre variable selon le système de types) en erreurs statiques de compilation, offrant certaines sécurités (car évitant de pouvoir trouver ces erreurs dans le programme).


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2019643
Joel F
Real men use unique_ptr
Posté le 29-08-2010 à 08:51:26  profilanswer
 

masklinn a écrit :


 mais elle transforme certaines classes d'erreur (là encore en nombre variable selon le système de types) en erreurs statiques de compilation, offrant certaines sécurités (car évitant de pouvoir trouver ces erreurs dans le programme).


 
C'ets leur intérêt principal non ? Enfin, moi j'aime bien quand ca compile pas plutot que quand ca fait des UB sans raison.

n°2019645
masklinn
í dag viðrar vel til loftárása
Posté le 29-08-2010 à 09:04:21  profilanswer
 

UB?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2019647
Un Program​meur
Posté le 29-08-2010 à 09:53:04  profilanswer
 


 
Undefined Behavior.
 
En parlant du typage du C, ne pas oublier que c'est l'évolution d'un langage non typé auquel on a ajouté un typage statique.
 
En passant: http://lucacardelli.name/Papers/TypeSystems.pdf


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°2019648
masklinn
í dag viðrar vel til loftárása
Posté le 29-08-2010 à 10:15:55  profilanswer
 

Un Programmeur a écrit :

Undefined Behavior.


C'est pas parce qu'une erreur n'est pas choppée statiquement que ça mène à une UB, tout le monde ne code pas en C [:petrus75]

Un Programmeur a écrit :

En parlant du typage du C, ne pas oublier que c'est l'évolution d'un langage non typé auquel on a ajouté un typage statique.


Pas mon problème [:spamafote]

Message cité 1 fois
Message édité par masklinn le 29-08-2010 à 10:17:15

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
mood
Publicité
Posté le 29-08-2010 à 10:15:55  profilanswer
 

n°2019651
Joel F
Real men use unique_ptr
Posté le 29-08-2010 à 11:36:37  profilanswer
 

masklinn a écrit :


C'est pas parce qu'une erreur n'est pas choppée statiquement que ça mène à une UB, tout le monde ne code pas en C [:petrus75]


 
Excuse moi d'avoir à travailler pour de vrai :o

n°2019656
masklinn
í dag viðrar vel til loftárása
Posté le 29-08-2010 à 12:19:47  profilanswer
 

Joel F a écrit :

Excuse moi d'avoir à travailler pour de vrai :o

C'est pas parce-que tout le monde n'est pas éboueur que tu dois être frustré comme ça.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2019661
Joel F
Real men use unique_ptr
Posté le 29-08-2010 à 12:40:19  profilanswer
 

masklinn a écrit :

C'est pas parce-que tout le monde n'est pas éboueur que tu dois être frustré comme ça.


pardon, vendredi c'etait y a deux jour  :o  
 
Plus sérieusement, on est bien d'accord, le terme UB est un peu fort. Mais le message est là. Je préfére attraper les erreurs à la compil qu'en prod  :jap:

n°2019662
masklinn
í dag viðrar vel til loftárása
Posté le 29-08-2010 à 12:47:25  profilanswer
 

Joel F a écrit :

Plus sérieusement, on est bien d'accord, le terme UB est un peu fort. Mais le message est là. Je préfére attraper les erreurs à la compil qu'en prod  :jap:


Comme je l'ai originellement expliqué, c'est un choix perso [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2019663
Joel F
Real men use unique_ptr
Posté le 29-08-2010 à 12:49:28  profilanswer
 

d'où mon "je préfére"

n°2020089
skeye
Posté le 31-08-2010 à 14:39:22  profilanswer
 

Un Programmeur a écrit :

Le C est moins fortement typé que le PHP (à ma connaissance, en PHP il n'y a pas moyen d'appliquer une opérateur sur des valeurs du mauvais type, en C, entre les casts et les fonctions variadiques, c'est aisé).


 
Faut le dire vite...:D
 

Code :
  1. $i = "3 pommes";
  2.  
  3. function add($a, $b){
  4.  
  5. return $a + $b;
  6.  
  7. }
  8.  
  9. echo add($i, $i);


 

Citation :


6


 
[:doc petrus]


---------------
Can't buy what I want because it's free -
n°2020228
lorill
Posté le 31-08-2010 à 19:19:37  profilanswer
 

skeye a écrit :


 
Faut le dire vite...:D
 

Code :
  1. $i = "3 pommes";
  2.  
  3. function add($a, $b){
  4.  
  5. return $a + $b;
  6.  
  7. }
  8.  
  9. echo add($i, $i);


 

Citation :


6


 
[:doc petrus]


c'est nul, ca renvoie même pas "6 pommes" :fou:

n°2020241
skeye
Posté le 31-08-2010 à 20:03:47  profilanswer
 

lorill a écrit :


c'est nul, ca renvoie même pas "6 pommes" :fou:


 
[:chrisbk]


---------------
Can't buy what I want because it's free -

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  intéret du typage

 

Sujets relatifs
typage dynamique & compilateurClustering et load balancing : c'est quoi l'intérêt ?
Detecter les régions d'interetformule taux interet
interet fonction voidquel intérêt de relancer une exception dans un catch ?
Interet de XML/XSL FO2 index dans site interet?
typage fort ?Pb typage étrange....
Plus de sujets relatifs à : intéret du typage


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR