Thèse en cours

Fondements mathématiques des sémantiques squelettiques

FR  |  
EN
Auteur / Autrice : Robin Jourde
Direction : Tom Hirschowitz
Type : Projet de thèse
Discipline(s) : Informatique
Date : Inscription en doctorat le 01/09/2025
Etablissement(s) : Chambéry
Ecole(s) doctorale(s) : École doctorale mathématiques, sciences et technologies de l'information, informatique
Partenaire(s) de recherche : Laboratoire : Laboratoire de mathématiques

Résumé

FR  |  
EN

Ce projet de thèse se situe à l'interface de deux approches de spécification des langages de programmation : une approche pratique, représentée par le langage Skel, et une approche théorique, fondée sur la théorie des catégories. L'objectif principal est de combler le fossé entre ces deux mondes, en apportant un fondement mathématique rigoureux à Skel, tout en explorant les possibilités de certification formelle de ses outils. 1. Approche squelettique (Skel) Skel est un langage de méta-programmation pour spécifier des langages objets. Il permet, à partir de déclarations de types (syntaxiques) et de valeurs (sémantiques), de générer automatiquement un évaluateur certifié, un interpréteur abstrait, ainsi qu'une formalisation Coq/Rocq. Skel a été utilisé pour modéliser des sous-ensembles de JavaScript et Python. Cependant, cette approche reste dénuée de fondement mathématique solide. 2. Approche catégorique Cette approche, plus abstraite, décrit les langages objets via des structures catégoriques complexes : un distributeur 𝜕 : C₁ → C₀ définit les relations entre catégories syntaxiques ; des 𝜕-graphes (généralisation des graphes) sont formés à partir de préfaisceaux sur ces catégories ; la syntaxe est donnée par un endofoncteur F₀ sur une catégorie de préfaisceaux, la sémantique par un endofoncteur F₁ sur une catégorie d'algèbres associée. Le langage est modélisé comme l'algèbre initiale de F₁. Cette approche offre une rigueur théorique mais manque d'outils logiciels concrets. 3. Objectif de la thèse L'ambition est double : Formaliser Skel en l'interprétant via les outils de la théorie des catégories ; Certifier Skel dans l'assistant de preuve Rocq, en produisant une version mathématiquement fondée, même si potentiellement moins expressive. 4. Méthodologie 3.1 Esquisse de l'approche catégorique Elle distingue syntaxe (via F₀) et sémantique (via F₁) sur les 𝜕-graphes. La structure syntaxique est enrichie pour permettre la définition opérationnelle. 3.2 Interprétation catégorique de Skel Les types de Skel sont vus comme des préfaisceaux, les déclarations de valeurs comme des endofoncteurs sur des catégories algébriques. Un défi majeur est la non-compositionalité de cette interprétation. Une solution proposée est de représenter Skel comme une monade T_Skel, où les déclarations de valeurs deviennent un système d'équations récursives. Il s'agira ensuite de relier ces équations aux endofoncteurs et à leurs algèbres initiales. 3.3 Interprétation abstraite On souhaite aussi intégrer la génération d'interpréteurs abstraits dans ce cadre théorique. Cela pose des défis liés à la finitude des modèles abstraits. La théorie des domaines synthétiques pourrait fournir un cadre pertinent. L'idée est de montrer que les interpréteurs abstraits sont des F₁-algèbres, donc spécifiables par universalité. Reste à élucider le rôle des fonctions de « concrétisation » utilisées dans Skel. 3.4 Vers une version certifiée de Skel Une fois l'interprétation catégorique stabilisée, l'enjeu est de transposer Skel dans Rocq, un assistant de preuve non Turing-complet. Cela suppose de simplifier certaines constructions catégoriques (par ex. via les foncteurs polynomiaux), compatibles avec le calcul des constructions inductives de Rocq. Deux écueils majeurs sont identifiés : la traduction des structures catégoriques complexes (fondées sur des théories ensemblistes) dans Rocq ; l'efficacité des évaluateurs produits, nécessitant un soin particulier au contenu calculatoire. Le projet s'inspirera de travaux comme CompCert. Conclusion Ce projet vise à renforcer la cohérence mathématique et la fiabilité de Skel tout en rapprochant les pratiques de spécification des langages de leur fondement théorique. Il se veut à la fois contribution méthodologique, théorique et logicielle.