Thèse soutenue

Surcharge, sous-typage et liaison tardive : fondements fonctionnels de la programmation orientee objets

FR  |  
EN
Auteur / Autrice : Giuseppe Castagna
Direction : Giuseppe Longo
Type : Thèse de doctorat
Discipline(s) : Sciences appliquées
Date : Soutenance en 1994
Etablissement(s) : Paris 7

Résumé

FR

L'objectif de cette these est de donner de nouveaux fondements fonctionnels a la programmation orientee objets, dans un cadre completement type. Les elements fondamentaux consideres sont la surcharge, le sous-typage et la liaison tardive. Un cadre formel est developpe afin de pouvoir etudier les langages objets fortement et statiquement types. Ainsi nous degageons un modele pour ces langages totalement orthogonal aux modeles par enregistrements. Dans ce modele il est possible d'interpreter, entre autres, le mecanisme de dispatch multiple et de changement de classe, l'extension et la redefinition des methodes d'une classe (sans modifier le type des objets), les messages en tant que valeurs de premiere classe et les classes partiellement abstraites. En outre ce modele explique les roles de la covariance et de la contravariance dans le sous-typage. Tout ceci est introduit de maniere formelle: nous commencons par definir une extension du lambda-calcul simplement type afin de modeliser la surcharge, le sous-typage et la liaison tardive ; nous en etudions les proprietes syntaxiques et la semantique. Certaines variantes sont definies afin de modeliser d'autres constructions des langages objets et afin d'etudier l'optimisation de ces langages a la compilation. Nous utilisons ces variantes pour interpreter un langage objet simple et montrer la correction de son systeme de types. Nous passons ensuite a l'etude des formalismes de second ordre: nous montrons comment rendre decidable fsub et comment l'etendre par la surcharge avec liaison tardive, tout en conservant la decidabilite ; nous utilisons cette derniere extension pour resoudre les problemes de perte d'information dans le typage des langages objets et pour suggerer de nouvelles extensions. Cette recherche se situe dans un cadre plus general d'etude de formalismes ou le calcul depend directement des types