Saisir un mot clé:
 
 

typage_dynamique

Ce site est un miroir du site http://fr.wikipedia.org/wiki/Accueil

google_ad_height = 15; google_ad_format = "728x15_0ads_al"; google_ad_channel =""; google_color_border = "f9f9f9"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //-->

Un article de Wikipedia.y-project.com.

lt:Duomen? strukt?ra
Image:Langage progr.png
Cet article fait partie de la série
Langages de programmation
Langages à objets
Ada 95 - C++ - C#
Common Lisp
Delphi - Eiffel - Java
Nice - Python
Ruby - Scriptol - Simula
Smalltalk - Visual Basic
Langages impératifs
APL - ASP - Assembleur
BASIC - C - Cobol
Forth - Fortran - Logo
Pascal - Perl - PHP
Langages fonctionnels
Haskell | ML/OCaml
Lisp/Common Lisp
Scheme
Langages déclaratifs
Clips - Prolog
Langages concurrents
Ada 95 - Erlang
Java
Langages balisés
HTML - SGML - XML
Dialectes XML
S-expressions
Voir aussi
Conception - Codage
Tests - Optimisations

Tous les langages de programmation permettent, directement ou indirectement, de manipuler des valeurs. Généralement, c'est par l'entremise de variables, qui sont une association (on dit aussi une liaison) entre un symbole et une valeur.

Par exemple, en langage C++, l'extrait de programme suivant :

 ...
 int a;
 a = 5;
 ...

déclare une variable dénotée 'a', de type entier, et y affecte la valeur 5. C++ est un langage à typage statique.

En Common Lisp, on écrira :

 (let ((a 5)) ...)

Ici, la création d'une variable lexicale se fait sans spécifier le type. C'est la caractérique d'un langage à typage dynamique : le type de la donnée n'est pas associé au symbole qui dénote la variable mais est encodé dans la donnée elle-même. Ainsi, dans la portée du 'let', on peut interroger le type de la variable a (c'est une application de la réflexivité):

   (let ((a 5))
        (when (numberp a)
              (print "a est un nombre")) ...)

De plus, en cours d'exécution, 'a' pourrait recevoir un objet de type différent, si le programme l'autorise :

    (let ((a 5)
          (setf a "je suis une chaîne") ...)

En résumé, le typage dynamique est une solution très commode pour le développement rapide de programmes, où le type des objets manipulés n'est pas forcément connu à l'avance. Il est nécessaire au développement d'un Protocole à Méta-Objets, ou MOP, car le typage statique l'interdit.

[] Implications du typage dynamique

La grande flexibilité que permet le typage dynamique se paye généralement par une surconsommation de mémoire correspondant à l'encodage du type dans la valeur, ainsi que par une perte de performance due aux indirections supplémentaires. Ce surcoût à l'exécution est toutefois contrebalancé par l'accroissement de la puissance des ordinateurs actuels, et permet le développement rapide d'applications.

Pour les opérations algorithmiques coûteuses, les langages de script à typage dynamique, comme Python ou Ruby peuvent s'interfacer à des bibliothèques écrites en langage de bas niveau comme le langage C. De plus, certains langages de programmation généralistes (en particulier Common Lisp) permettent une déclaration statique facultative du type, afin de prouver la consistance du typage à la compilation et de supprimer les indirections.

Lorsqu'une fonction reçoit une donnée d'un type incorrect (erreur de type à l'exécution), une exception est levée.


Exemples de langages à typage dynamique :

[] Voir aussi

Image:Crystal mycomputer.png Portail de l'informatique ? Accédez aux articles de Wikipédia concernant l?informatique.
 
Le Texte ci-dessus est disponible sous GNU Free Documentation License.
La source est wikipedia http://fr.wikipedia.org/wiki/typage dynamique
Home

Données
A la une
Articles
Formatons en lignes
Téléchargement
Licence GNU
Encyclopedie
Portail logiciels libres

Partenaires

beyrouthsurseine.com
Sonnerie & Logos
Photos-Video
Ringtones-Sonnerie
Actualite.org
Terrain tennis

  
Octobre 2008
L
M
M
J
V
S
D
12345
6789101112
13141516171819
20212223242526
2728293031
     
Tous les Logos et Marques sont déposés, les commentaires sont sous la responsabilité de ceux qui les ont publiés, le reste © technicmania.com