next up previous
Next: Polymorphisme dans les langages Up: Typage des objets en Previous: Typage des objets en

Pourquoi faire du typage?

Le typage est une analyse qui cherche à detecter les incohérences de types dans les programmes, par exemple: un opérateur qui est appliqué à des objets pour lesquels il n'est pas défini, l'utilisation d'un entier comme un pointeur, etc. Des telles incohérences peuvent occasionner une erreur fatale (avec l'arrêt du programme), ou un résultat incorrect.

Pour réaliser le typage, les objets manipulés par les programmes sont regroupés en catégories distinctes: les types. On simule ensuite l'exécution du programme, mais en tenant compte uniquement des types obtenus à chaque étape de la simulation. Cette simulation est faite en suivant un ensemble de règles appelées règles de typage.

Le typage est divisé en deux catégories selon qu'il est réalisé pendant l'exécution ou avant celle-ci. Dans le premier cas, on parle de typage dynamique. Les tests sur les types sont insérés dans le code compilé et sont ainsi réalisés pendant l'execution du programme, ce qui diminue considérablement l'éfficacité du code compilé. Si une erreur de typage est detectée, celle-ci est signalée et l'execution du programme est arretée.

Le typage dit statique est fait entiérement pendant la compilation, et le code compilé ne contient plus aucun test sur les types, leur cohérence ayant ete vérifiée avant la traduction en code machine.

Cette séparation entre typage et éxecution est possible grâce à une propriété très importante du typage statique: les programmes acceptés par le typeur sont garantis libres d'erreurs de types. Une conséquence est que le typage statique donne lieu à du code compilé plus efficace que celui produit par le typage dynamique.

L'enjeu du typage est donc celui de détecter les incohérences de types le plus tôt possible avant l'éxecution: idéalement, au moment de la compilation.

Pour le programmeur, le typage est une aide mais aussi une contrainte, car les règles de typage restreignent la classe des programmes qui sont acceptés par le compilateur. Donc, la reussite dans la programmation dépend en particulier de la bonne compréhension des règles de typage associées au langage de son choix.


next up previous
Next: Polymorphisme dans les langages Up: Typage des objets en Previous: Typage des objets en
Maria-Viginia Aponte
2001-04-10