Thèse soutenue

Programmation Web Réactive dans un cadre typé statiquement pour l'orchestration de contenus multimédia riches

FR  |  
EN
Auteur / Autrice : Rémy El Sibaïe Besognet
Direction : Emmanuel Chailloux
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 12/07/2018
Etablissement(s) : Sorbonne université
Ecole(s) doctorale(s) : École doctorale Informatique, télécommunications et électronique de Paris (1992-...)
Partenaire(s) de recherche : Laboratoire : LIP6 (1997-....)
Jury : Président / Présidente : Emmanuelle Encrenaz
Examinateurs / Examinatrices : Jean-Ferdinand Susini, Benjamin Canou
Rapporteurs / Rapporteuses : Manuel Serrano, Peter Van Roy

Résumé

FR  |  
EN

Le but de cette thèse est d'apporter de nouvelles possibilités au domaine de la programmation Web, dont les technologies répandues ne capturent pas toutes les problématiques engendrées par les interactions dans une application. Notre solution est un langage, Pendulum, inspiré de la programmation synchrone réactive en Esterel et se présentant comme une extension à OCaml. Il permet de gagner en sûreté et en expressivité en particulier dans la gestion d'interaction multiples. Dans une première partie, nous présentons notre perception de la programmation Web d'aujourd'hui en partant du standard pour aller vers les technologies plus modernes qui tentent de subvenir aux besoins des programmes par d'autres approches, notamment la programmation multitier et les modèles de concurrence en flot de données. Dans une seconde partie, nous introduisons le langage Pendulum et ses constructions, ce qu'il propose comme interopérabilité avec le client Web le différenciant d'autres langages synchrones, et l'interface de programmation qui le connecte avec le langage hôte. Dans les parties trois et quatre, nous présentons la méthode de compilation utilisée, GRC, pour GraphCode, qui produit un graphe de flot de contrôle à partir du programme synchrone source. On revient sur la structure du GRC, les règles permettant de le construire, ainsi que notre méthode d'ordonnancement statique. Nous décrivons ensuite la génération de l'environnement d'exécution d'un programme synchrone dans le programme hôte. Dans une cinquième partie, nous montrons l'intérêt de la programmation synchrone dans le client et en quoi son modèle d'exécution s'adapte naturellement à celui du navigateur Web. Nous montrons qu'il est possible de profiter de cet avantage pour réagir aux évènements plus efficacement sans efforts d'optimisation. Avant de conclure, nous présentons de multiples exemples implémentés en Pendulum pour mettre en avant les qualités d'expressivité et de sûreté de la programmation synchrone sur différentes problématiques impliquant du multimédia et des interactions.