Vous êtes sur la page 1sur 36

Chapitre 1:

Les paradigmes
de Programmation

POO : Les paradigmes de programmation 1


Qu’est-ce qu’un paradigme ?

« Un paradigme est – en épistémologie et dans les sciences humaines et sociales


– une représentation du monde, une manière de voir les choses, un modèle
cohérent du monde qui repose sur un fondement défini (matrice disciplinaire,
modèle théorique, courant de pensée). »

POO : Les paradigmes de programmation 2


Qu’est-ce qu’un paradigme ?
Un paradigme de programmation est donc une manière ou une
façon de programmer basé sur un ensemble de principes ou une
théorie.

Ce qui m’amène à cette phrase de Abraham Marslow : « Si le seul


outil que vous avez est un marteau, vous verrez tout problème comme
un clou. ».

Que l’on pourrait traduire par : si un développeur ne comprend


qu’un seul paradigme de programmation, il abordera toujours les
problèmes de la même façon quitte à écrire un code inadapté ou
inefficace.

POO : Les paradigmes de programmation 3


Qu’est-ce qu’un paradigme ?
En informatique il existe deux (02) grandes familles de paradigmes :

2 principaux paradigmes

Impératif Déclaratif

Impératif : le programme décrit Déclaratif : le programme ne fait


étape par étape la construction de qu'énoncer les propriétés de la
la solution. solution de manière à la contraindre,
sans décrire comment la calculer.

POO : Les paradigmes de programmation 4


Paradigme
Impératif

POO : Les paradigmes de programmation 5


Impératif : les langages
L’impératif est le paradigme originel et le plus utilisé.

Modulaire Objet Événementielle

Structuré
Procédurale

Limites Paradigme Impératif

1. Sémantique complexe ( langages difficiles ),


2. Principe de base intrinsèquement séquentiel,
3. Exécution mentale requise pour déduire l'effet d'un programme.

POO : Les paradigmes de programmation 6


Impératif : Procédurale
Le paradigme de programmation procédurale étend l’approche impérative à
la possibilité de subdiviser des algorithmes en plusieurs parties plus
facilement maîtrisables. Celles-ci sont alors désignées par les termes
procédures ou, selon le langage de programmation, sous-programmes,
routines ou fonctions.

L’objectif de cette subdivision est de faciliter la compréhension du code de


programmation et d’éviter les répétitions de code inutiles. De par
l’abstraction des algorithmes, le paradigme logiciel procédural s’impose
comme une avancée déterminante entre les langages d’assemblage simples et
les langages standard plus complexes.

POO : Les paradigmes de programmation 7


Impératif : Procédurale
Programmation procédurale
Structures
Procédures de données

Programme

dirigée par les traitements

POO : Les paradigmes de programmation 8


Impératif : Structuré
L’approche de programmation structurée est une forme simplifiée de
programmation impérative. La différence déterminante par rapport au principe
de base : au lieu d’instructions de saut absolu (instructions entraînant le
traitement, non pas avec l’ordre suivant, mais à un autre endroit), ce
paradigme de programmation prévoit l’utilisation de boucles et structures
de contrôle.
Un exemple en est l’utilisation de « do...while » pour l’exécution automatique
d’une instruction dès lors qu’une certaine condition est remplie (au moins une
fois).

Exemple de langages : FORTRAN, ALGOL, COBOL,…

POO : Les paradigmes de programmation 9


Impératif : Structuré

 Organiser l’interaction entre les procédures

Données

SP1 SP2 SP3 ... SPn

Sous
Programmes

POO : Les paradigmes de programmation 10


Impératif : Structuré

 Suite Enchaînement de traitements

 Alternative Choix entre deux ou plusieurs traitements

Exécuter un traitement tant qu'une condition


 Itération est satisfaite

POO : Les paradigmes de programmation 11


Impératif : Modulaire
La programmation modulaire est fondamentalement très similaire à l’approche
procédurale et applique ce style de programmation aux exigences de projets
logiciels plus volumineux et plus complets.

Le code source est ici subdivisé de manière ciblée en blocs logiques


indépendants les uns des autres pour plus de clarté et pour faciliter
le processus de débogage (dépannage). Les différents blocs, encore
appelés modules, peuvent être testés séparément avant d’être liés au sein d’une
application commune.

POO : Les paradigmes de programmation 12


Impératif : Modulaire

d o n n é e s

SP1 SP2 SP3 SPn

Module 1 Module 2 … Module i

POO : Les paradigmes de programmation 13


Impératif : Modulaire

Problèmes lors de l’évolution


des données

Protection non assurée des données

POO : Les paradigmes de programmation 14


Impératif : Objet
Le paradigme orienté objet s’intéresse aux données plutôt qu’aux
traitements. Il considère que tout entité du monde est un objet, un objet
contient des données (ses attributs) ainsi que les fonctions qui peuvent
s’appliques sur ces données (ses méthodes).

La POO consiste donc à créer une représentation informatique des éléments


du monde réel auxquels on s'intéresse, sans se préoccuper du langage
d’implémentation. Il s'agit donc de déterminer les objets présents et d'isoler
leurs données et les fonctions qui les utilisent.

POO : Les paradigmes de programmation 15


Impératif : Objet

 Transition : Monde réel / Objets informatiques

Monde
réel

Représentation Modélisation Exécution


des concepts des concepts d'objets
Informatiques

POO : Les paradigmes de programmation 16


Impératif : Objet

Données 1 Données 2 Données i

SP1 SP2 SP3 SPn

Module 1 Module 2 … Module i

 Protection des données …


POO : Les paradigmes de programmation 17
Impératif : Objet

Données 1
SP1

Composant 1
(Objet 1)

 … Communications entre composants


POO : Les paradigmes de programmation 18
Impératif : Objet

 Messagerie entre objets

Message
reçu
Données et Messages
Méthodes émis

Interface

POO : Les paradigmes de programmation 19


Impératif : Objet
Basé sur des concepts essentiels :

 Classes et Objets Composants


de la POO

 Méthodes et Messages
Communication

 Héritage Spécialisation

Héritage : définir de nouvelles classes : partage efficace d'infos : avoir un code compact et
une représentation plus fine du problème à résoudre

POO : Les paradigmes de programmation 20


Impératif : Objet

 Exemple : Spécialisation de la classe Personne

Objet

Personne

Employé Étudiant

Étudiant_salarié

POO : Les paradigmes de programmation 21


Impératif : Événementielle
Action utilisateur Exécution procédure
déclenche

 Attente des événements

 Réception des événements


Exemples d'événements

✓ Système : sauvegarde automatique, lecteur vide, …


✓ Fenêtre (Interface Graphique) : les différents boutons, …

POO : Les paradigmes de programmation 22


Impératif : Événementielle
Action sur un objet
Clic sur la souris
dessiné sur un écran
ou une touche
de tabulation

Exécution
Événements

 L'enchaînement n'est pas prédéfini


POO : Les paradigmes de programmation 23
Impératif : Événementielle
 Nouveau style de programmation
Windows
Application Program Interface

Evénements API Objets

Langages visuels puissants

Visual C++ ou Visual Basic

POO : Les paradigmes de programmation 24


Paradigme
Déclaratif
POO : Les paradigmes de programmation 25
Déclaratif : les langages

Fonctionnel Logique Par Contraintes

Avantages Paradigme Déclaratif

1. Modèle sémantique simple ( langages simples )


2. Parallélisme inhérent ( temps d'exécution minimum )
3. Style déclaratif ( plus souple )

POO : Les paradigmes de programmation 26


Déclaratif : Fonctionnel

 Basé sur l'application de fonctions enchaînées

Programme informatique

Fonctions

Un programme informatique est représenté par un ensemble


de fonctions à évaluer

POO : Les paradigmes de programmation 27


Déclaratif : Fonctionnel

 Langages fonctionnels : Lisp, Perl, …

Exemple en Lisp

(defun absolate_fonction(x)
(cond ((< x 0)(-x))
((>= x 0)x))).

Fonction évaluée

POO : Les paradigmes de programmation 28


Déclaratif : Logique

 Identifier un programme à une théorie mathématique

 Son exécution à une recherche de preuves dans cette théorie

Programme informatique

Théories

Un programme informatique est représenté par un


ensemble de théories mathématiques

POO : Les paradigmes de programmation 29


Déclaratif : Logique

 Processus de résolution en logique

Utilisation Démonstrateur
d’un langage automatique
formel

Recherche
Théories de
Traduction preuves
Exécution

POO : Les paradigmes de programmation 30


Déclaratif : Logique

 Exemple : Arbre généalogique en PROLOG

Père(paul, eric). /* ensemble de faits


Père(eric, jasmine).
Enfant(X, Y) :- Père(Y, X). /* ensemble de règles
Grand_père(X, Y) :- Père(X, Z), Père(Z, Y).
Grand_père(X, jasmine). /* but à satisfaire

Réponse de PROLOG : X = paul

POO : Les paradigmes de programmation 31


Déclaratif : Logique par Contraintes

Problème
Logique Contraintes

Logique par contraintes

 Intelligence Artificielle ?
Exemple : langage Python, R, JAVA, Prolog, LISP…

POO : Les paradigmes de programmation 32


Récapitulatif :

POO : Les paradigmes de programmation 33


Récapitulatif :

Aujourd’hui la plupart des langages sont multiparadigmes.


C++, Python, Ruby, C#... supportent le paradigme impératif structuré,
fonctionnel et objet, par exemple. En fonction du problème à résoudre, il sera plus
intéressant de travailler avec un paradigme plutôt qu’un autre :
• En effet, un calcul matriciel se gère plus facilement avec de l’impératif
structuré
• De plus, un parcours d’arbre ne peut s’effectuer simplement qu’avec de la
programmation fonctionnelle
• Enfin, les interfaces graphiques évoluées font un usage de la POO.

POO : Les paradigmes de programmation 34


Récapitulatif :
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.

POO : Les paradigmes de programmation 35


Fin…

POO : Les paradigmes de programmation 36

Vous aimerez peut-être aussi