Peter, the Language that does not Exist...

Luigi Liquori 1, 2
1 MASCOTTE - Algorithms, simulation, combinatorics and optimization for telecommunications
CRISAM - Inria Sophia Antipolis - Méditerranée , COMRED - COMmunications, Réseaux, systèmes Embarqués et Distribués
Résumé : C’est mon privilege et plaisir d’introduire Peter, le langage qui n’existe pas...
Le langage Peter contient quasiment tous les aspects linguistiques que j’ai introduits et étudiés dans le domaine de la programmation fonctionnelle et objets, ainsi que quelques idées qui n’ont pas encore été publiées. Dans l’habilitation de Peter, la démarche que je suivrai consiste à essayer de limiter les détails concernant les aspects théoriques et techniques (c-à-d. les ensembles complets des règles de typage, suites de théorèmes abscons, etc.). Mon mémoire d’habilitation ne sera pas une traduction brutale des différents articles publiés (1), ni un curriculum vitæ commenté, ni un panorama de tous les articles dans un domaine scientifique (2), pour ne citer que quelques styles classiques de thèses d’habilitation. Tout d’abord elle sera courte car l’expérience enseigne que très peu de thèses d’habilitation sont réellement téléchargées, citées et lues. Très souvent, les thèses d’habilitation ne sont même pas accessibles sur le Web.
L’Habilitation de Peter sera fondée sur les trois « dogmes » suivants:
• (Modularité) Je commencerai par le plus petit fragment complet (au sens de Turing) de Peter, appelée Baby Peter et je continuerai de façon modulaire, d’extension en extension, jusqu’à l’extension finale appelée Sage Peter. Baby Peter est un langage fonctionnel avec des constructions linguistiques orientées objet et un système de types correct. Peter partage quelques similitudes avec Featherweight Java de Atsushi, Benjamin et Phil [IPW01] et le lambda calcul typé de Alonso (Church) [Chu41]. La différence principale entre Featherweight Java et Peter, est un mécanisme d’exceptions ad hoc, qui permet au programmeur de décider quel système de types sera le plus adapté à l’egard de ses nécessités et objectifs. En plus, ce mécanisme permet au programmeur d'écrire son système de types (voir point Type-programmable). Certains chapitres seront focalisés sur un nouveau système de types, tandis que, dans d’autres chapitres, l’extension sera associée à une extension de la syntaxe et du système de types. Tous les arguments seront traités d’une façon accessible au plus grand nombre de lecteurs. Comme exemples d’extensions, je citerai une forme nouvelle d'héritage multiple, une extension de Peter qui permettra à un objet de « s'échapper de sa classe », une extension de Peter avec filtrage évolué et enfin une extension de Peter qui permettra de mélanger algorithmes et preuves de correction d’algorithmes.
• (Verbatim-like) Plutôt que d'asséner à mes lecteurs une traduction française mot-à-mot de mes articles scientifiques (5), j’ai privilegié une présentation simple de chaque extension, utilisant uniquement quelques règles clés de la sémantique opérationnelle ou du système de types (il y a toujours une règle clé...), en ajoutant immédiatement des exemples pour motiver et comprendre son utilisation correcte. Je ne prouverai pas la propriété de complétude de chaque système de types qui étend Peter : la complétude de Sage Peter est proposée en défi au prochain assistant à la preuve convivial.
• (Type-programmable) Les systèmes de types pour les langages de programmation et pour la preuve sont fixés a priori par leurs concepteurs et ne sont pas des objets de première classe pouvant être modifiés ou simplement utilisés par le programmeur qui en subit les qualités et les faiblesses. À ma connaissance, aucun langage ne permet au programmeur de « programmer » sa discipline de types personnelle. L’idée de modifier la discipline de typage à la compilation n’est pas très nouvelle ; un article « visionnaire » de 6 pages, qui m'a eclairé, a été Pluggable Type System de Gilad [Bra04] sorti en 2004. La possibilité de permettre au programmeur d'écrire sa propre discipline de typage et de l’utiliser à la volée est par elle-même une contribution originale dans l’habilitation de Peter.
Avec l’envie de diffuser la connaissance scientifique de façon simple, claire et pédagogique, inspiré par les ouvrages de Kim [Bru99,TKB01, BDKT03, RBC+ 05, Bru02] et Gilles [Dow03, Dow07], il ne me reste plus qu'à vous souhaiter une bonne lecture de l’habilitation de Peter.
1. Bien que certaines parties soient tirées de mes articles.
2. La convention typographique est que les référence à mes articles soit en style « numérique » tandis que les références à d’autres articles soit en « alphanumérique ».
5 Un CD et un site web contiendront tous mes articles.
Type de document :
HDR
Computation and Language [cs.CL]. INPL - INP de LORRAINE, 2007


https://hal.inria.fr/tel-01148503
Contributeur : Luigi Liquori <>
Soumis le : lundi 4 mai 2015 - 17:07:41
Dernière modification le : mercredi 9 septembre 2015 - 01:04:42

Identifiants

  • HAL Id : tel-01148503, version 1

Collections

Citation

Luigi Liquori. Peter, the Language that does not Exist.... Computation and Language [cs.CL]. INPL - INP de LORRAINE, 2007. <tel-01148503>

Partager

Métriques

Consultations de
la notice

98

Téléchargements du document

44