Présentation

Article

1 - UNE NOUVELLE MANIÈRE DE PROGRAMMER

  • 1.1 - Styles de programmation
  • 1.2 - Objets et outils
  • 1.3 - Les trois mécanismes fondamentaux
  • 1.4 - Bref historique

2 - MÉCANISMES DE BASE

3 - LANGAGES

  • 3.1 - SMALLTALK
  • 3.2 - EIFFEL
  • 3.3 - SIMULA
  • 3.4 - C++

4 - MISE EN ŒUVRE

  • 4.1 - Limitations du modèle
  • 4.2 - Nouvelles demandes

Article de référence | Réf : H2510 v1

Mécanismes de base
Langages à objets

Auteur(s) : Jean-François PERROT

Date de publication : 10 mars 1995

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

Version en anglais En anglais

Auteur(s)

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

Lire l’article

INTRODUCTION

Dix ans après son apparition en force, la technologie à objets se porte bien. Son succès s’affirme dans presque tous les domaines de l’informatique. Plusieurs congrès internationaux lui sont consacrés chaque année en Europe, aux États-Unis et dans le Pacifique, les revues se multiplient ainsi que les réunions plus ou moins tapageuses à caractère commercial. On y entend souvent parler des technologies à objets, au pluriel. C’est que ce succès s’accompagne d’une confusion notable, les spécialistes des différents domaines ne donnant pas le même sens technique au mot objet, mot magique déjà lourdement chargé de sens dans la langue courante. Le barbarisme orienté objets, traduction directe de l’anglais object-oriented, n’aide pas à clarifier les choses. Nous lui substituons une terminologie plus conforme à la grammaire française : programmation par objets, langages à objets.

Pour éviter les malentendus, il convient de distinguer les domaines. Comme toute technique de programmation, la programmation par objets proprement dite peut se pratiquer en principe dans n’importe quel langage, mais de préférence à travers les langages à objets. Elle s’utilise à peu près partout, mais avec un éclat particulier lorsqu’il s’agit d’écrire des systèmes complexes. Elle rencontre alors les préoccupations du génie logiciel et donne naissance à l’analyse et conception par objets qui, à travers les multiples méthodes proposées sur le marché (comme OOA, OODLA, HOOD, OMT, etc.), pose des problèmes profonds d’acquisition des connaissances et rejoint une branche de l’intelligence artificielle en développement rapide. Comme le point de vue des objets est aux antipodes du modèle relationnel, les bases de données à objets ont fait leur apparition sur le marché . Les systèmes d’exploitation à objets vont entrer en service d’un jour à l’autre, et on va voir se multiplier les applications distribuées fondées sur des objets concurrents. Les objets qui ont cours dans ces derniers domaines doivent affronter des conditions de vie difficiles (persistance, distribution), et ils ne sont plus exactement ceux des langages à objets classiques (cf. le standard CORBA promu par l’organisation OMG). Du côté de l’intelligence artificielle, la représentation de connaissances utilise elle aussi des objets, qui sont en fait dérivés des frames et se différencient de ceux qui nous occupent ici dans leur intention (par exemple la classification) comme dans leur structure (absence de la composante procédurale).

Nous nous limitons dans le présent article aux langages (de programmation) à objets dans la perspective de leur utilisation en production de logiciel (et non, par exemple, du point de vue de l’intelligence artificielle). Nous n’aborderons pas l’analyse et la conception par objets, qui demanderaient un développement à part dont celui-ci est un préliminaire indispensable. De même, nous n’examinerons pas les problèmes liés à la permanence, à la concurrence et à la distribution des objets, ni les perspectives de systèmes d’exploitation ou de bases de données.

Notre présentation sera guidée par le principe d’implémentation qui sous‐tend la programmation par objets, plutôt que par une analyse a priori des besoins qu’elle devrait satisfaire et des moyens qu’elle propose. C’est à notre avis la seule façon d’évaluer sainement les possibilités de la technique, les constantes et les variations entre les différentes réalisations, et surtout, pour l’utilisateur, de ne pas prendre ses désirs pour des réalités. Cette dernière tentation est particulièrement forte en programmation par objets, en raison d’une ambiguïté fondamentale que nous analyserons longuement. En fin de compte, c’est sans doute cette ambiguïté qui est la source de la fécondité et de la richesse de la programmation par objets, mais il faut en être bien conscient pour ne pas se faire prendre aux pièges du vocabulaire et pour ne pas se laisser désorienter par les débats interminables sur le sens des mots qui surgissent dès que l’on pose la question : « qu’est-ce qu’un objet ? ».

Si l’on se borne aux logiciels qui sont effectivement utilisés de manière industrielle, par opposition aux systèmes à caractère expérimental ou d’usage restreint, la diversité apparente des langages à objets actuellement disponibles se ramène à une architecture unique, le schéma dit à classes et instances, expression où le mot classe doit être pris en un sens technique précis 2.2. Ce schéma repose en vérité sur une technique d’implémentation d’une remarquable simplicité, qui a des conséquences multiples et lointaines. Nous l’analyserons en trois temps. D’abord, la structure profonde du modèle à classes et instances, suivant ses deux aspects indissolublement liés de mécanisme intellectuel et de réalisation informatique : l’un ne va pas sans l’autre. Ensuite, nous passerons en revue, à la lumière de ces principes, les langages les plus connus. Enfin, nous ferons une analyse critique en confrontant les moyens de programmation ainsi définis avec les desiderata des utilisateurs, qui leur sont souvent fort étrangers.

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

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

DOI (Digital Object Identifier)

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


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

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

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Présentation
Version en anglais En anglais

2. Mécanismes de base

2.1 Objets informatiques

HAUT DE PAGE

2.1.1 Simulation et notion d’objet

Comme nous l’avons dit, le but visé est de faire fonctionner un programme non pas comme un algorithme, mais comme l’animation d’un modèle réduit. Ce modèle est construit à partir d’entités informatiques qui reproduisent « fidèlement » les objets du monde réel 2.1.4. On appellera désormais ces entités des objets. Comment définit-on le sens technique ainsi donné au mot « objet », là est la question ! Il nous faut expliquer d’abord comment ces objets fonctionnent (ci-après) et ensuite comment ils sont créés dans la machine (cf. § 2.2).

Plus que de fidélité dans la reproduction, il faudrait parler d’approximation suffisante pour atteindre le but assigné au programme. Bien évidemment, les objets informatiques n’épuiseront pas la complexité des objets réels, et d’ailleurs toute une tradition philosophique nous prévient que notre connaissance du réel est imparfaite. Mais s’il s’agit de l’utiliser pour des fins bien définies, l’ingénieur reprend ses droits. Dans toute la suite, nous supposerons donc que l’analyse se fait en fonction d’un projet spécifique et non sous l’aspect de l’éternité.

HAUT DE PAGE

2.1.2 Définitions

Nos objets n’ayant de sens qu’en raison de leur fonctionnement, il nous faut introduire d’un même coup plusieurs termes qui se définissent l’un par rapport à l’autre.

(a) Un objet est une entité individuelle, repérée par une adresse unique.

(b) Il est formé de plusieurs champs, connus par leurs noms (en nombre fixé), à la manière d’un...

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

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

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

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Mécanismes de base
Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - GOLDBERG (A.), ROBSON (D.) -   Smalltalk‐80, The Language  -  . Addison‐Wesley (1989).

  • (2) - MASINI (G.), NAPOLI (A.), COLNET (D.), LÉONARD (D.), TOMBRE (K.) -   Les langages à objets  -  . InterÉditions (1989).

  • (3) - MEYER (B.) -   Conception et programmation par objets, pour du logiciel de qualité  -  . Inter Éditions (1989).

  • (4) - GAMMA (E.), HELM (R.), JOHNSON (R.), VLISSIDES (J.) -   Design Patterns, Elements of Reusable Object-Oriented Software  -  . Addison‐Wesley (1994).

  • (5) - CHRISMENT (C.), PUJOLLE (G.), ZURFLUH (G.) -   Bases de données orientées objet  -  . H3840. Traité Informatique, Techniques de l’Ingénieur, juin 1992.

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

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

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

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS