Passer au contenu principal
Tangente
ArithmétiqueNotion · Glossaire
Lire en : Français

Liskov Barbara

Barbara Liskov est une informaticienne pionnière de la conception des langages de programmation et des systèmes distribués. Le principe de substitution qu'elle a formalisé avec Jeannette Wing exige qu'une instance d'un sous-type puisse remplacer une instance du type parent sans altérer le comportement attendu du programme ; il permet ainsi de vérifier qu'une relation de sous-typage est valide.
Chronologie de Barbara Liskov Trois repères datés : naissance en 1939, médaille John von Neumann en 2004 et prix Turing en 2008. 1939 Naissance, née Huberman 2004 Médaille John von Neumann 2008 Prix Turing
Trois dates attestées séparent la naissance de Barbara Liskov et ses distinctions de 2004 et 2008.
Sommaire

Ce que vous allez apprendre

  • Identifier Barbara Jane Liskov et les domaines dans lesquels elle a dirigé des projets fondateurs.
  • Distinguer les apports associés à CLU, Argus et Thor sans les intervertir.
  • Appliquer le principe de substitution à un cas concret de sous-typage.
  • Situer la médaille John von Neumann de 2004 et le prix Turing de 2008.

En clair

Née Huberman en 1939, Barbara Jane Liskov est une informaticienne américaine. Elle a dirigé des projets fondateurs consacrés aux langages de programmation et aux systèmes distribués, notamment CLU, Argus et Thor.
Son idée la plus célèbre fournit un test concret : si un programme attend un objet d'un type donné, un objet d'un sous-type doit pouvoir prendre sa place sans changer le comportement attendu. Ce principe de substitution relie ainsi une classification du code à son fonctionnement réel.

Définition

Barbara Jane Liskov, née Huberman en 1939, est une informaticienne américaine et une pionnière de la conception des langages de programmation et des systèmes distribués. Elle a dirigé plusieurs projets fondateurs dans ces domaines : CLU, Argus et Thor.
CLU a introduit des concepts qui ont influencé de nombreux langages modernes, notamment l'encapsulation des données et les exceptions. Argus compte parmi les premiers systèmes à traiter la cohérence des données dans des systèmes distribués tolérants aux pannes. La source rattache Thor aux projets fondateurs dirigés par Liskov, sans détailler ici son apport particulier.
Avec Jeannette Wing, Barbara Liskov a formalisé le principe de substitution de Liskov. Ce principe teste la validité d'une relation de sous-typage : toute instance du sous-type doit pouvoir remplacer une instance du type parent sans altérer le comportement du programme. Il est devenu l'un des fondements de la programmation orientée objet. Liskov a reçu la médaille John von Neumann en 2004, puis le prix Turing, présenté comme la plus haute distinction en informatique, en 2008. La chronologie permet de séparer ces récompenses des travaux que la source ne date pas.

Un exemple, pas à pas

Un programme possède un type parent nommé « Messager ». Le comportement attendu est simple : quand le programme lui demande d'envoyer un message accepté, il confirme l'envoi. On veut lui substituer une instance du sous-type « Messager journalisé », qui conserve en plus une trace de l'opération.
1. Le programme envoie le même message accepté à une instance du type parent et à une instance du sous-type.
2. Les deux instances réalisent l'envoi et donnent la confirmation attendue. Le sous-type ajoute sa trace sans perturber ce que le programme observe.
3. Dans ce cas, le remplacement préserve le comportement : l'essai est compatible avec le principe de substitution.
4. Si le sous-type refuse ce même message alors que le type parent l'accepte, le remplacement change le résultat observé. Ce contre-test invalide la relation de sous-typage envisagée. Le contrôle consiste à refaire exactement la même demande aux deux instances et à comparer le comportement attendu, pas seulement leurs noms ou leur organisation interne.

En pratique

Lorsqu'un programme remplace un objet du type parent par un objet d'un sous-type, le geste utile consiste à refaire les mêmes demandes et à observer les résultats. Si le comportement change, la relation de sous-typage ne satisfait pas le critère formulé par Liskov et Wing.
Pour suivre l'influence exercée sur les langages modernes, CLU est le projet à examiner dans cette source. Les marqueurs à rechercher sont l'encapsulation des données et les exceptions ; Argus répond à un autre problème.
Pour étudier la cohérence des données malgré des pannes dans un système distribué, Argus est le repère pertinent. CLU devient l'alternative lorsque la question porte plutôt sur les concepts de langage mentionnés par la source.

À ne pas confondre

Barbara Liskov est la personne ; le principe de substitution de Liskov est un critère qu'elle a formalisé avec Jeannette Wing. Une phrase qui parle d'une instance remplaçant celle d'un type parent vise le principe, non la biographie entière.
CLU et Argus ne désignent pas le même apport. La source associe CLU à l'encapsulation des données et aux exceptions ; elle associe Argus à la cohérence des données dans les systèmes distribués tolérants aux pannes.
La médaille John von Neumann et le prix Turing sont deux distinctions différentes. L'année tranche : Barbara Liskov reçoit la première en 2004 et le second en 2008.

Limites et pièges

Donner à un objet le nom d'un sous-type ne suffit pas. Le symptôme d'une relation invalide est un comportement du programme altéré après le remplacement ; il faut donc tester les mêmes demandes sur l'instance du type parent et sur celle du sous-type.
Le principe impose le remplacement d'une instance sans altération du comportement ; la source n'en donne pas ici une liste détaillée de règles de conception. Ajouter des conditions techniques plus précises les attribuerait sans preuve au texte fourni.
Les années 2004 et 2008 datent respectivement deux récompenses, pas CLU, Argus, Thor ni la formalisation du principe. Si une chronologie associe ces travaux à l'une de ces années, il faut retirer cette datation, que la source ne permet pas d'établir.
Thor est bien cité parmi les projets fondateurs dirigés par Liskov, mais son rôle n'est pas précisé dans la source. Il faut conserver cette limite plutôt que lui attribuer les apports explicitement associés à CLU ou à Argus.

Pour aller plus loin

Pour prolonger ce portrait, on peut suivre séparément trois fils déjà présents dans la fiche : l'influence de CLU sur les langages modernes, la cohérence des données avec Argus et la vérification comportementale d'une relation de sous-typage. Cette séparation évite d'attribuer à un projet les résultats d'un autre.
Continuez avec Tangente

Explorez les mathématiques autrement

Retrouvez nos magazines, podcasts et jeux pour explorer les mathématiques autrement.

Découvrir les offres