Thèse soutenue

Modèles de programmation de haut niveau pour microcontrôleurs à faibles ressources
FR  |  
EN
Accès à la thèse
Auteur / Autrice : Steven Varoumas
Direction : Tristan Crolard
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 05/11/2019
Etablissement(s) : Sorbonne université
Ecole(s) doctorale(s) : École doctorale Informatique, télécommunications et électronique de Paris
Partenaire(s) de recherche : Laboratoire : LIP6 (1997-....)
Jury : Président / Présidente : Carlos Agón
Examinateurs / Examinatrices : Mihaela Sighireanu, Timothy Bourke, Emmanuel Chailloux, Philippe Trébuchet
Rapporteurs / Rapporteuses : Claire Pagetti, Alan Schmitt

Résumé

FR  |  
EN

Les microcontrôleurs sont des circuits imprimés programmables nichés dans de nombreux objets de notre quotidien. En raison de leurs ressources limitées, ils sont souvent programmés dans des langages de bas niveau comme le C, ou en langage assembleur. Ces derniers n'offrent pas les mêmes abstractions et les mêmes garanties que des langages de haut niveau, comme OCaml. Cette thèse propose alors un ensemble de solutions destinées à enrichir la programmation de microcontrôleurs avec des paradigmes de programmation de plus haut niveau. Ces solutions apportent une montée en abstraction progressive, permettant notamment de réaliser des programmes indépendants du matériel utilisé. Nous présentons ainsi une première abstraction du matériel prenant la forme d’une machine virtuelle OCaml, qui permet de profiter des nombreux avantages du langage tout conservant une faible empreinte mémoire. Nous étendons par la suite OCaml avec un modèle de programmation synchrone inspiré du langage Lustre et permettant d'abstraire les aspects concurrents d’un programme. Une spécification formelle du langage est donnée, et plusieurs propriétés de typage sont par la suite vérifiées. Les abstractions offertes par nos travaux induisent par ailleurs la portabilité de certaines analyses statiques pouvant être réalisées sur le bytecode des programmes. Une telle analyse, servant à estimer le temps d’exécution pire-cas d’un programme synchrone, est alors proposée. L'ensemble des propositions de cette thèse constitue une chaîne complète de développement, et plusieurs exemples d’applications concrètes illustrant l'intérêt des solutions offertes sont alors présentées.