Conclusion
Typage des langages de programmation
H3320 v1 Article de référence

Conclusion
Typage des langages de programmation

Auteur(s) : Emmanuel CHAILLOUX, Romain DEMANGEON, Michel MAUNY

Date de publication : 10 mai 2018 | Read in English

Logo Techniques de l'Ingenieur Cet article est réservé aux abonnés
Pour explorer cet article plus en profondeur Consulter l'extrait gratuit

Déjà abonné ?

Présentation

1 - Quelques définitions

2 - Sûreté d’exécution

  • 2.1 - Erreurs d’exécution
  • 2.2 - Types de bases
  • 2.3 - Typage statique et dynamique
  • 2.4 - Données structurées
  • 2.5 - Fonctions, procédures et méthodes

3 - Abstraction

  • 3.1 - Types abstraits
  • 3.2 - Respecter l’intégrité des données
  • 3.3 - Préserver l’abstraction
  • 3.4 - Vérifier la correction de l’implémentation vis-à-vis de la spécification

4 - Typage et polymorphisme

  • 4.1 - Classification
  • 4.2 - Polymorphisme paramétrique (ou généricité)
  • 4.3 - Polymorphisme de surcharge
  • 4.4 - Polymorphisme par sous-typage

5 - Autres systèmes de types

6 - Conclusion

Sommaire

Présentation

RÉSUMÉ

Le typage dans les langages de programmation garantit l’absence de calculs erronés qui seraient dus à des opérations manipulant des données non-conformes. Cette vérification peut s’effectuer à l’exécution (typage dynamique) ou à la compilation (typage statique) et accroît la sûreté d’exécution des programmes. Le typage permet aussi de s’abstraire de la représentation des données pour faciliter la composition des éléments d’un programme tout en apportant un bon niveau de flexibilité grâce aux différentes classes de polymorphisme (paramétrique, ad hoc, sous-typage). Chaque langage de programmation possède sa propre discipline de typage afin d’assurer sûreté, abstraction et flexibilité des programmes.

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

Auteur(s)

INTRODUCTION

En programmation, un type de données ou, plus simplement, un type, est un ensemble de données partageant des propriétés et des opérations. Par exemple, dans le langage C, le type int des entiers contient les nombres positifs ou négatifs représentables sur un nombre fixe de bits, qui peut dépendre de l’architecture du processeur (souvent 32 ou 64). Ces entiers peuvent être arguments ou résultats d’opérations arithmétiques. Le langage OCaml fournit un type bool ne contenant que les deux valeurs de vérité true et false, qui peuvent être testées (par une construction conditionnelle ifthenelse), ou être résultats de fonctions à valeurs booléennes.

Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 93 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-h3320

Lecture en cours
Présentation

Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

6. Conclusion

Cet article fournit un tour d’horizon de la notion de type et de typage des langages de programmation. Le domaine est vaste, et voit régulièrement apparaître des avancées, des concepts et des techniques nouvelles, qui peuvent être ou bien transférées depuis le monde de la recherche vers les environnements de développement utilisés industriellement, ou encore être directement développées par des ingénieurs pour répondre à des besoins nouveaux.

Chaque langage de programmation dispose de sa propre notion de type, et chaque programmeur, avec ou sans l’aide de son environnement de développement, effectue son activité d’écriture ou de lecture de programmes en ayant à l’esprit des informations et des principes qui relèvent du typage. Rappelons, en guise de conclusion, les apports du typage à la programmation.

  • Le typage détecte des erreurs de programmation, et favorise la sûreté d’exécution

    En règle générale, les compilateurs procèdent à une vérification de typage avant la production de code. Ces vérifications cherchent à détecter des erreurs de programmation, et à en informer le programmeur. Lorsque le programme aura passé avec succès l’examen du typage, le programmeur aura créé un programme à la fois plus sûr, puisque dépourvu de certaines erreurs, et plus efficace car le compilateur aura très certainement produit un code dispensé d’un certain nombre de tests.

    En l’absence d’une telle vérification statique, c’est durant l’exécution que ces vérifications auront lieu, permettant, en cas d’échec, au programme de garder le contrôle de ses calculs. En l’absence de telles vérifications dynamiques, les opérations effectuées par le programme pourraient produire des résultats erronés, voire aboutir à des erreurs fatales à l’exécution du programme.

    Qu’il soit statique ou dynamique, le typage vise à accroître la sûreté d’exécution des programmes. En fait, cette notion de sûreté d’exécution est omniprésente chez le programmeur avisé : lorsqu’il écrit ses programmes, n’a-t-il pas toujours présent à l’esprit la dynamique de son code – « ce qui va se passer à l’exécution » –, le nombre d’arguments que doit recevoir telle ou telle fonction, quelle doit être leur nature, quel résultat doit produire ce calcul, etc. ?...

Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 94 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


Lecture en cours
Conclusion

Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - MILNER (R.) -   A theory of type polymorphism in programming.  -  J. Comput. Syst. Sci (1978).

  • (2) - WRIGHT (A.K.) -   Polymorphism for imperative languages without imperative types.  -  Technical Report TR93-200, Rice University Dept. of Computer Science (1993).

  • (3) - PIERCE (B.) -   Types and Programming Languages MIT Press.  -  (2002).

Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 95 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

Ressources documentaires

Ada

L'objectif de cet article est de présenter sommairement le langage Ada dans son état actuel (2017). ...

Langage UML : développement de logiciel et modélisation visuelle

Le langage UML (pour Unified Modeling Language) est un langage graphique de modélisation des systèmes ...

Plate-forme .NET

Le .NET Framework, qui permet la création et l’exécution d’applications modernes conçues autour des ...