Compilation Formellement Vérifiée d'un Langage de Programmation Orienté Interaction // Formally Verified Compilation of an Interaction-Oriented Programming Language
|
ABG-135084
ADUM-69063 |
Thesis topic | |
| 2026-01-13 |
Ecole Nationale de l'Aviation Civile
TOULOUSE - Occitanie - France
Compilation Formellement Vérifiée d'un Langage de Programmation Orienté Interaction // Formally Verified Compilation of an Interaction-Oriented Programming Language
- Computer science
Informatique, Compilation, Méthode Formelle, Interaction, Langage de Programmation
Computer Science, Compilation, Formal Method, Interaction, Programming Language
Computer Science, Compilation, Formal Method, Interaction, Programming Language
Topic description
Avec la démocratisation des appareils interactifs, les utilisateurs s'attendent désormais à interagir avec leurs systèmes par le biais d'interactions tactiles et avancées. Pour faciliter la mise en œuvre de ces systèmes, des langages de programmation dédiés « orientés interaction » ont été proposés. Ces langages permettent de décrire efficacement à la fois l'apparence du système et son comportement interactif. Ils sont de plus en plus populaires, y compris pour le développement de systèmes critiques. Cependant, peu d'efforts ont été consacrés à la formalisation de ces langages, de leur sémantique ou de leur modèle d'exécution.
L'objectif de ce projet de recherche est de formaliser Smala, un langage orienté interaction développé à l'ENAC.
Smala est un langage réactif, dans lequel le programmeur spécifie la façon dont les événements extérieurs sont propagés et dont le programme réagit, en mettant à jour son état interne et en déclenchant des comportements observables. Ce programme déclaratif de haut niveau peut ensuite être compilé en code impératif qui implémente ces réactions.
Au cours de ce projet, le candidat formalisera le langage et sa sémantique, et implémentera sa compilation vers le langage de bas niveau C. Une partie importante du travail sera consacrée à la vérification de bout en bout du schéma de compilation : le candidat développera une preuve mécanisée que le programme C généré implémente bien le comportement spécifié par le programme source Smala.
Pour ce faire, le candidat utilisera principalement l'assistant de preuves interactif Rocq. En effet, celui-ci comprend des fonctionnalités pour la spécification (de la sémantique de Smala), l'écriture de programmes (le schéma de compilation en tant que programme purement fonctionnel) et les preuves vérifiées automatiquement (relant cette sémantique, la fonction de compilation et la sémantique du C telle que spécifiée dans le projet CompCert).
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
With the democratization of interactive devices, users now expect to interact with their systems through tactile and advanced interactions. To facilitate the implementation of these systems, dedicated ”interaction-oriented” programming languages have been proposed. These languages can efficiently describe both the appearance of the system and the interactive behavior. They are becoming more popular, including for the development of critical systems. However, there has not yet been a lot of effort in formalizing these languages, their semantics or their execution model.
The goal of this research project is to formalize Smala, an interaction-oriented language developped at ENAC. Smala is, at its core, a reactive language, where bindings written by the programmer specify how outside events are propagated, and how the program reacts
by updating its internal state and trigger observable behaviors. This high-level, declarative program can then be compiled into imperative code
that implements these reactions.
During this project, the candidate will formalize the language and its semantics, and implement its compilation into the low-level language C. A significant amount of work will be dedicated to the end-to-end verification of the compilation scheme: the candidate will develop a mechanized proof that the generated C program does implement the behavior specified by the source Smala program. To do so, the candidate will use the Rocq prover as a primary tool. Indeed, it includes facilities for specification (of Smala's semantics), writing programs (the compilation scheme as a purely functional program), and automatically-checked proofs (relating these semantics, the compilation function, and the semantics of C as specified in the CompCert project).
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Début de la thèse : 01/10/2026
L'objectif de ce projet de recherche est de formaliser Smala, un langage orienté interaction développé à l'ENAC.
Smala est un langage réactif, dans lequel le programmeur spécifie la façon dont les événements extérieurs sont propagés et dont le programme réagit, en mettant à jour son état interne et en déclenchant des comportements observables. Ce programme déclaratif de haut niveau peut ensuite être compilé en code impératif qui implémente ces réactions.
Au cours de ce projet, le candidat formalisera le langage et sa sémantique, et implémentera sa compilation vers le langage de bas niveau C. Une partie importante du travail sera consacrée à la vérification de bout en bout du schéma de compilation : le candidat développera une preuve mécanisée que le programme C généré implémente bien le comportement spécifié par le programme source Smala.
Pour ce faire, le candidat utilisera principalement l'assistant de preuves interactif Rocq. En effet, celui-ci comprend des fonctionnalités pour la spécification (de la sémantique de Smala), l'écriture de programmes (le schéma de compilation en tant que programme purement fonctionnel) et les preuves vérifiées automatiquement (relant cette sémantique, la fonction de compilation et la sémantique du C telle que spécifiée dans le projet CompCert).
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
With the democratization of interactive devices, users now expect to interact with their systems through tactile and advanced interactions. To facilitate the implementation of these systems, dedicated ”interaction-oriented” programming languages have been proposed. These languages can efficiently describe both the appearance of the system and the interactive behavior. They are becoming more popular, including for the development of critical systems. However, there has not yet been a lot of effort in formalizing these languages, their semantics or their execution model.
The goal of this research project is to formalize Smala, an interaction-oriented language developped at ENAC. Smala is, at its core, a reactive language, where bindings written by the programmer specify how outside events are propagated, and how the program reacts
by updating its internal state and trigger observable behaviors. This high-level, declarative program can then be compiled into imperative code
that implements these reactions.
During this project, the candidate will formalize the language and its semantics, and implement its compilation into the low-level language C. A significant amount of work will be dedicated to the end-to-end verification of the compilation scheme: the candidate will develop a mechanized proof that the generated C program does implement the behavior specified by the source Smala program. To do so, the candidate will use the Rocq prover as a primary tool. Indeed, it includes facilities for specification (of Smala's semantics), writing programs (the compilation scheme as a purely functional program), and automatically-checked proofs (relating these semantics, the compilation function, and the semantics of C as specified in the CompCert project).
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Début de la thèse : 01/10/2026
Funding category
Funding further details
Concours de l'École Doctorale
Presentation of host institution and host laboratory
Ecole Nationale de l'Aviation Civile
Institution awarding doctoral degree
Ecole Nationale de l'Aviation Civile
Graduate school
309 SYSTEMES
Candidate's profile
Le candidat doit être titulaire d'un master (ou équivalent) en informatique. Le candidat
doit être familiarisé avec
• les méthodes formelles
• le prouveur Rocq
• la programmation OCaml
• la compilation
De plus, une connaissance de la programmation IHM et/ou des systèmes de gestion du trafic aérien sera appréciée.
The candidate should hold a master's degree (or equivalent) in computer science. The candidate should be familiar with • formal methods • the Rocq prover • OCaml programming • compilation In addition, knowledge of HMI programming and/or air traffic management systems will be appre- ciated.
The candidate should hold a master's degree (or equivalent) in computer science. The candidate should be familiar with • formal methods • the Rocq prover • OCaml programming • compilation In addition, knowledge of HMI programming and/or air traffic management systems will be appre- ciated.
2026-06-30
Apply
Close
Vous avez déjà un compte ?
Nouvel utilisateur ?
More information about ABG?
Get ABG’s monthly newsletters including news, job offers, grants & fellowships and a selection of relevant events…
Discover our members
Groupe AFNOR - Association française de normalisation
Généthon
Nokia Bell Labs France
ADEME
TotalEnergies
ONERA - The French Aerospace Lab
Servier
Ifremer
Institut Sup'biotech de Paris
Medicen Paris Region
Laboratoire National de Métrologie et d'Essais - LNE
ASNR - Autorité de sûreté nucléaire et de radioprotection - Siège
Nantes Université
ANRT
SUEZ
Tecknowmetrix
Aérocentre, Pôle d'excellence régional
