1
1.2. Programmation procédurale
Les instructions répétitives sont rassemblées dans ce qu’il est convenu d’appeler des
procédures et utilisées sans que le code ne soit réécrit plusieurs fois. Lorsqu’une procédure est
appelée, les instructions qu’elle contient sont exécutées, puis le programme retourne à
l’endroit suivant l’appel de la procédure.
L’introduction de paramètres et l’imbrication des procédures permet d’améliorer la
structuration des programmes. Par ailleurs, la proportion d’erreurs est plus réduite.
L’utilisation séparée des procédures conduit à subdiviser à priori les tâches à résoudre en
sous-tâches et à regrouper en modules les procédures requises, d’où la programmation
modulaire
2
1.4. Programmation orientée objet (POO)
La POO est une nouvelle méthode de programmation qui se distingue fondamentalement des
méthodes précédentes. Elle tend à se rapprocher de notre manière naturelle d’appréhender le
monde. Les langages Orientés Objet (LOO) se sont surtout posés la question « sur quoi porte
le programme ? ». En effet, un programme informatique comporte toujours des traitements
mais aussi, et surtout des données. Si la programmation structurée s’intéresse aux traitements
puis aux données, la POO s’intéresse d’abord aux données, auxquelles elle associe ensuite des
traitements : l’expérience a montré que les données sont ce qu’il y a de plus stable dans la vie
d’un programme, il est donc intéressant d’architecturer le programme autour de ses données.
Ainsi, la technique de POO repose sur le postulat suivant : la meilleure façon de décrire les
systèmes informatiques est de se fonder, non pas sur ce qu’ils font, mais sur les objets qu’ils
manipulent.
Exemples :
Si vous écrivez un compilateur, vous oublierez donc (pour quelques temps) sa tâche
apparente (traduire un programme d’un langage vers un autre) pour vous concentrer sur
les structures de données qu’il manipule (texte source, code objet, arbre syntaxique, ...)
Un programme de comptabilité sera bâti, non pas autour de sa fonction principale, mais
autour des objets qu’il traite : comptes, états, écritures, …
La résolution d’un problème consiste ainsi en une interaction entre différents objets dont la
dynamique interne devient secondaire. La subdivision classique d’un programme en données
et instructions de traitement est radicalement modifiée avec la POO. Elle est supplantée par la
constitution d’objets synthétisant les données et les traitements effectués sur elles. La
résolution d’un problème fait exclusivement appel à des messages échangés entre ces objets.
3
2. Programmation structurée vs Programmation orientée objet
Le tableau suivant permet de comparer entre les deux approches de programmation :
Structurée d’une part et par objet d’autre part.
Approche par Traitements Approche par Objets
« Que doit faire le programme ? » « Sur quoi porte le programme ? »
Principe : Analyse fonctionnelle Principe : Pour écrire un programme, on se
descendante qui consiste à diviser la tâche à fonde non pas sur ce qu’il fait, mais sur les
accomplir en sous-tâches moins complexes objets qu’ils manipulent auxquels on associe
Avantages : facile à apprendre et à des traitements.
programmer car elle fait appel à un Avantages : la POO privilégie :
raisonnement logique que chacun sait faire La réutilisabilité : un composant logiciel
naturellement. vraiment général doit être organisé
Problèmes : Ne favorise pas les critères de : autour d’une structure de données
Réutilisabilité : les modules ne sont pas complète et non pas seulement assurer
généraux, mais adaptés aux sous une fonction unique, aussi importante
problèmes pour lesquels ils ont été soit-elle. En d’autres termes ce ne sont
conçus. pas des programmes qu’il faut pouvoir
Extensibilité : l’architecture du logiciel réutiliser, mais bien plutôt des structures
est fondée sur les traitements, or ces de données complètes.
derniers sont moins stables que les L’extensibilité : L’intérêt des méthodes à
données. D’où cette approche est objet découle ici d’une remarque
inadaptée à la conception de gros empirique : si l’on observe l’évolution
logiciels. d’un logiciel d’une certaine taille, on
constate que les fonctions demandées au
système changent tout au long de sa vie
active; les objets auxquels s’appliquent
ces fonctions, en revanche restent plus
stables. Pour préserver la souplesse et
l’extensibilité du système, mieux vaut
bâtir sa structure sur ses caractéristiques
les plus durables.
4
Apple a développé Object Pascal. De nombreuses extensions « à objets » de Lisp ont été
également proposées, telles que Loops (de Xérox), Flavors (du MIT) et Ceyx (de
l’INRIA).
Les langages Modula-2 et Ada ont également subi l’influence de Simula
Le développement de Java a commencé en 1990 chez SUN Micro-systems sous la
direction de James Gosling. Il est dérivé du C++ et permet de pallier à ses inconvénients
(pointeurs, surcharge d'opérateurs, héritage multiple, gestion de la mémoire, etc.). Il est
indépendant de la plate-forme. Il s’exécute sous n’importe quelle plate-forme pour autant
que celle-ci possède un interpréteur Java (programme comportant le langage; le
navigateur Web peut en être un).
C# (prononcez « C sharp ») est un langage simple, élégant, de type sécurisé et orienté
objet développé par Microsoft pour permettre la création d'une large gamme
d'applications. Ce langage est conçu pour offrir un développement rapide au
programmeur C++ sans sacrifier les qualités de puissance et de contrôle qui sont la
marque du C et du C++. En raison de cet héritage, C# est très fidèle au C et au C++. C#
simplifie et modernise certains des aspects les plus complexes de C et de C++, en
particulier les espaces de noms, les classes, les énumérations, la surcharge et la gestion
structurée des exceptions. C# supprime également certaines fonctionnalités C et C++
telles que les macros, l'héritage multiple et les classes de base virtuelles.
Exercices
Répondez aux questions en cochant la réponse.
1. Quel est le type de programmation le plus ancien ?
A Programmation orientée objet
B Programmation modulaire
C Programmation procédurale
5
5. Un module est un ensemble de :
A procédures
B sous-programmes
C programmes
Solution
N° Question A B C
1. X
2. X
3. X
4. X
5. X
6. X
7. X
8. X
9. X
10. X