Thèse soutenue

Techniques de débogage statique et dynamique pour le langage HipHop.js

FR  |  
EN
Auteur / Autrice : Jayanth Krishnamurthy
Direction : Manuel Serrano
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 21/04/2023
Etablissement(s) : Université Côte d'Azur
Ecole(s) doctorale(s) : École doctorale Sciences et technologies de l'information et de la communication
Partenaire(s) de recherche : Laboratoire : Institut national de recherche en informatique et en automatique (France). Unité de recherche (Sophia Antipolis, Alpes-Maritimes)
Jury : Président / Présidente : Julien Deantoni
Examinateurs / Examinatrices : Manuel Serrano, Julien Deantoni, Elisa Gonzalez Boix, Alan Schmitt, Timothy Bourke, Gérard Berry
Rapporteurs / Rapporteuses : Elisa Gonzalez Boix, Alan Schmitt

Résumé

FR  |  
EN

Un grand nombre d’applications informatiques modernes sont interactives, réagissant au stimulus fourni par l’environnement global. HipHop.js est un DSL réactif synchrone inspiré d’Esterel pour JavaScript construit sur Hop.js dédié à la programmation de telles applications. HipHop.js peut être utilisé pour développer des applications telles que les contrôleurs IoT, des interfaces graphiques réactives, etc.Traditionnellement les systèmes réactifs ont été utilisés dans des systèmes critiques car ils apportent des garanties de sécurités au delà de ce que peuvent fournir des langages généralistes. Néanmoins, comme pour les langages classique, un usage systématique et rigoureux de procédures de tests augmentent la confiance qu’un utilisateur peut apporter dans un système réactif. Le débogage est aussi une étape nécessaire si un dysfonctionnement est détecté. Cette thèse se concentre sur le développement d’un environnement dédié pour les programmeurs HipHop.js, facilitant,l’analyse et la mise au point de programmes. Il y a deux principales contributions dans cette thèse. Le premier est le support pour le débogage d’un classe d’erreurs typiques des systèmes réactifs appelées « erreurs de causalité » dans HipHop.js et le second est de fournir une infrastructure aux programmeurs HipHop.js pour étudier et comprendre le comportement de leurs programmes réactifs, identifier ainsi toute subtilité bogues et affiner leur source.HipHop.js suit le modèle de synchronie parfaite introduit dans le langage de programmation Esterel. Ce mémoire de thèse commence par une brève introduction à la programmation réactive à l’aide de HipHop.js afin de rendre accessible la suite du document aux lecteurs peu familiers avec le modèle de la programmation réactive. Ce modèle peut conduire à ce que cette communauté nomme des « cycles d’erreurs de causalité ». Ceux-ci sont généralement difficiles à isoler et à réparer.Dans cette thèse, nous discutons en détail la prise en charge du débogage des erreurs de causalité qui peuvent être détectées à la compilation ainsi que lors de l’exécution. Nous commençons par fournir des exemples expliquant l’origine et la formation des erreurs de causalité et les difficultés rencontrées pour les déboguer. Ensuite, nous présentons les techniques basées sur des algorithmes de graphes permettant de signaliser les erreurs avec des messages précis dirigeant les programmeurs directement vers la source des erreurs. Nous illustrons l’efficacité des méthodes proposées sur un exemple concret.Dans une seconde partie, nous proposons un ensemble d’utilitaires destinés à faciliter la compréhension des comportements « temporels » des programmes HipHop.js et cela, dès les premiers stades du développement. Ces analyseurs de programmes fournissent aux programmeurs HipHop.js des interfaces faciles à utiliser qui permettent de simplifier et d’automatiser l’identification et la localisation des erreurs. Ce manuscrit commence par présenter les analyseurs de programme. Ensuite,des exemples illustratifs expliquant les utilisations des utilitaires et leurs intérêts sont présentés. Les détails des implémentations, y compris les outils et la théorie pertinente, constituent la dernière partie de la thèse sur l’analyseur de programmes.