Thèse soutenue

Un langage synchrone fonctionnel avec horloges entières

FR  |  
EN
Auteur / Autrice : Adrien Guatto
Direction : Albert Henri CohenMarc Pouzet
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 07/01/2016
Etablissement(s) : Paris Sciences et Lettres (ComUE)
Ecole(s) doctorale(s) : École doctorale Sciences mathématiques de Paris centre (Paris ; 2000-....)
Partenaire(s) de recherche : Etablissement de préparation de la thèse : École normale supérieure (Paris ; 1985-....)
Laboratoire : École normale supérieure (Paris ; 1985-....). Département d'informatique
Jury : Président / Présidente : Gérard Berry
Examinateurs / Examinatrices : Albert Henri Cohen, Marc Pouzet, Gérard Berry, Mary Sheeran, Robert de Simone, Stephen A. Edwards, Dan Ghica, Marc Duranton, Louis Mandel
Rapporteurs / Rapporteuses : Mary Sheeran, Robert de Simone

Résumé

FR  |  
EN

Cette thèse traite de la conception et implémentationd’un langage de programmation pour les systèmes detraitement de flux en temps réel, comme l’encodagevidéo. Le modèle des réseaux de Kahn est bien adaptéà ce domaine et y est couramment utilisé. Dans cemodèle, un programme consiste en un ensemble deprocessus parallèles communicant à travers des filesmono-producteur, mono-consommateur. La force dumodèle réside en son déterminisme.Les langages synchrones fonctionnels comme Lustresont dédiés aux systèmes embarqués critiques. Un programmeLustre définit un réseau de Kahn synchronequi peut être exécuté avec des files bornées et sans blocage.Cette propriété est garantie par un système detypes dédié, le calcul d’horloge, qui établit une échellede temps globale à un programme. Cette échelle detemps globale est utilisée pour définir les horloges, sé-quences booléennes indiquant pour chaque file, et àchaque pas de temps, si un processus produit ou consommeune donnée. Cette information sert non seulementà assurer la synchronie mais également à générerdu logiciel ou matériel à état fini.Nous proposons et étudions les horloges entières, unegénéralisation des horloges booléennes autorisant desentiers naturels arbitrairement grands. Les horlogesentières décrivent la production ou consommation deplusieurs valeurs depuis une même file au cours d’uninstant. Nous les utilisons pour définir la constructiond’échelle de temps locale, qui peut masquer despas de temps cachés par un sous-programme au contexteenglobant.Ces principes sont intégrés à un calcul d’horloge pourun langage fonctionnel d’ordre supérieur. Nous étudionsses propriétés et prouvons en particulier que lesprogrammes bien typés ne bloquent pas. Nous compilonsles programmes typés vers des circuits numériquessynchrones en adaptant le schéma de générationde code dirigé par les horloges de Lustre. L’informationde typage contrôle certains compromis entre temps etespace dans les circuits générés.