Accueil Méthodes d'analyse Systeme d' information Cycles de vie Bases de données Paradigmes Intelligence d'affaire Langages programmation Lexique TI Rechercher

Paradigmes
Accueil Méthodes d'analyse Systeme d' information Cycles de vie Bases de données Paradigmes Intelligence d'affaire Langages programmation Lexique TI Rechercher

 

Structurée
Orientée prototype
Procédurale
Par contrat
Par contraintes
Orientée objet
Orientée composant
Orientée aspect
Logique
Impérative
Fonctionnelle
Événementielle
Déclarative
Concurrente

 

Paradigme en programmation

Un paradigme de programmation est un style fondamental de programmation informatique qui traite de la manière dont les solutions aux problèmes doivent être formulées dans un langage de programmation (à comparer à la méthodologie, qui est une manière de résoudre des problèmes spécifiques de génie logiciel).

 

Utilisation

Un paradigme de programmation fournit (et détermine) la vue qu’a le développeur de l’exécution de son programme. 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éthodologies » 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 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 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é 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.

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.

Les paradigmes les plus populaires:

bullet Programmation impérative, paradigme originel et le plus courant
bullet Programmation structurée, visant à structurer les programmes impératifs pour en supprimer les instructions goto
bullet Programmation orientée objet, consistant en la définition et l’assemblage de briques logicielles appelées objets (comme en Smalltalk)
bullet Programmation fonctionnelle, avec laquelle un programme est une fonction au sens mathématique du terme
bullet Programmation procédurale, à comparer à la programmation fonctionnelle
bullet Programmation déclarative, consistant à déclarer les données du problème, puis à demander au programme de le résoudre
bullet Programmation événementielle, consistant à répondre à des événements
bullet Programmation logique, consistant à exprimer les problèmes et les algorithmes sous forme de prédicats (comme en Prolog)
bullet Programmation par contraintes, à comparer à la programmation logique
bullet Programmation concurrente, où l’on tient compte de l’exécution en parallèle de plusieurs piles sémantiques
bullet Programmation orientée prototype, qui simplifie et rend plus flexible la programmation orientée objet
bullet Programmation orientée composant (comme en OLE)
bullet Programmation orientée aspect (comme en AspectJ)
bullet Programmation par contrat, dans lequel le déroulement des traitements est régi par des règles (comme en Eiffel)

Autres Paradigmes que nous n'allons pas aborder dans ce chapitre:

bulletProgrammation orientée agent, souvent basée sur la programmation orientée objet, qui simplifie le développement d’agents logiciels
bulletProgrammation orientée concept
bulletProgrammation orientée pile (comme en Forth)
bulletProgrammation orientée principes
bulletProgrammation orientée flux de données (comme dans un Tableur)
bulletProgrammation non-déterministe
bulletProgrammation orientée sujet
bulletProgrammation orientée classe, à comparer à la Programmation orientée prototype (dans le contexte de la programmation orientée objet)
bulletProgrammation par annotations (comme en langage Flare )
bulletProgrammation par attributs (comme avec les annotations Java, pré-traitées par la classe XDoclet, ou avec les attributs C#)
bulletProgrammation sur flux, à comparer à la Programmation sur événement
bulletProgrammation par messages, à comparer à la programmation impérative
bulletProgrammation orientée processus, pour la programmation parallèle
bulletProgrammation récursive, à comparer à la programmation itérative
bulletProgrammation réflexive
bulletProgrammation scalaire, à comparer à la programmation par tableaux
bulletProgrammation au niveau valeur, à comparer à la programmation au niveau fonction

 

Article de Wikipédia

 

Accueil ] Structurée ] Orientée prototype ] Procédurale ] Par contrat ] Par contraintes ] Orientée objet ] Orientée composant ] Orientée aspect ] Logique ] Impérative ] Fonctionnelle ] Événementielle ] Déclarative ] Concurrente ]

Envoyez un courrier électronique à webmaster@tetouan.wspour toute question ou remarque concernant ce site Web.
Copyright © 2008 Développement Inc
Dernière modification : 28 août 2009