Paradigme (programmation)

Page d’aide sur l’homonymie

Pour les articles homonymes, voir Paradigme (homonymie).

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources ().

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?

Schéma FBP (en) simple à 3 blocs, avec des connexions étiquetées

Le paradigme de programmation est la façon (parmi d'autres) d'approcher la programmation informatique et de formuler les solutions aux problèmes et leur formalisation dans un langage de programmation approprié[1]. Ce n'est pas de la méthodologie contenant une méthode ; cette dernière organise le traitement des problèmes reconnus dans l'écosystème concerné pour aboutir à la solution conceptuelle et programme exécutable.

Utilisation

Un paradigme de programmation fournit (et détermine) la vue qu’a le développeur de l’exécution de son programme en situation d'exploitation. Par exemple, en programmation orientée objet, les développeurs peuvent considérer le programme comme une collection d’objets en interaction, tandis qu’en programmation fonctionnelle un programme peut être vu comme une suite d'évaluations de fonctions sans états. Lors de la programmation d’ordinateurs ou de systèmes multi-processeurs, la programmation orientée processus permet aux développeurs de voir les applications comme des ensembles de processus agissant sur des structures de données localement partagées.

De la même manière que des courants différents du génie logiciel préconisent des méthodes différentes, des langages de programmation différents plaident pour des « paradigmes de programmation » différents. Certains langages sont conçus pour supporter un paradigme (en particulier Smalltalk et Java, qui supportent la programmation orientée objet, tandis que Haskell supporte la programmation fonctionnelle), alors que d’autres supportent des paradigmes multiples (à l’image de C++, Common Lisp, OCaml, Oz, Python, Ruby, Scala ou Scheme).

De nombreux paradigmes de programmation sont aussi célèbres pour les techniques qu’ils prohibent que pour celles qu’ils permettent. La programmation fonctionnelle pure, par exemple, interdit l’usage d’effets de bord ; la programmation structurée interdit l’usage du goto. En partie pour cette raison, les nouveaux paradigmes sont souvent considérés comme doctrinaires ou abusivement rigides par les développeurs habitués aux styles déjà existants. Cependant, le fait d’éviter certaines techniques peut permettre de rendre plus aisée la démonstration de théorèmes sur la correction d’un programme — ou simplement la compréhension de son fonctionnement — sans limiter la généralité du langage de programmation. De plus, il est possible d'écrire un programme en adoptant la programmation orientée objet même si le langage, par exemple le langage C, ne supporte pas ce paradigme.

La relation entre les paradigmes de programmation et les langages de programmation peut être complexe, car un langage de programmation peut supporter des paradigmes multiples. Pour citer un exemple, C++ est conçu pour supporter des éléments de programmation procédurale, de programmation orientée objet et de programmation générique. Cependant, concepteurs et développeurs décident de la méthode d’élaboration d’un programme en utilisant ces éléments de paradigmes. Il est possible d’écrire un programme purement procédural en C++, comme il est possible d’en écrire un purement orienté objet, ou encore qui relève des deux paradigmes.

Liste de paradigmes

Les paradigmes de la liste sont regroupés par grandes familles.

Types de programmation impérative (et dérivés)

Types de programmation orientée objet (et dérivés)

Types de programmation déclarative (et dérivés)

Autres types

Voir aussi

Articles connexes

Liens externes

  • Notices d'autoritéVoir et modifier les données sur Wikidata :
    • GND

Notes et références

  • (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Programming paradigm » (voir la liste des auteurs).
  1. Informations lexicographiques et étymologiques de « formaliser » dans le Trésor de la langue française informatisé, sur le site du Centre national de ressources textuelles et lexicales ;
    Informations lexicographiques et étymologiques de « formuler » dans le Trésor de la langue française informatisé, sur le site du Centre national de ressources textuelles et lexicales ;
    Informations lexicographiques et étymologiques de « formalisation » dans le Trésor de la langue française informatisé, sur le site du Centre national de ressources textuelles et lexicales.
v · m
Paradigmes de programmation
Impérative
Structurée
Déclarative
Métaprogrammation
Autres
v · m
Domaines de l'informatique
Remarque : cette liste s'inspire du système de classification informatique de l'ACM édité en 2012
Matériel
Appareil et organisation
d'un système
Réseau
Organisation du logiciel
Théorie et outil (en)
de programmation
Développement de logiciel
Théorie du calcul (en)
Algorithmique
Mathématiques
de l'informatique
Système d'information
Sécurité
Interactions humain-machine
Concurrence (en)
Intelligence artificielle
Apprentissage automatique
Infographie
Audio informatique
Informatique appliquée
  • icône décorative Portail de la programmation informatique