Représentations bas niveau de structures de données haut niveau // Low Level Memory Representations of High Level Datastructures
ABG-132187
ADUM-66272 |
Sujet de Thèse | |
24/05/2025 |
Université Grenoble Alpes
VALENCE CEDEX 9 - Auvergne-Rhône-Alpes - France
Représentations bas niveau de structures de données haut niveau // Low Level Memory Representations of High Level Datastructures
- Informatique
types algébriques, compilation, représentation mémoire
algebraic data types, compilation, memory layout
algebraic data types, compilation, memory layout
Description du sujet
Introduits à l'origine dans les années 80, les types de données algébriques (ADT) sont apparus au cours de la dernière décennie comme un outil incroyablement
efficace pour modéliser et manipuler les données dans le cadre de la programmation. Les types de données algébriques sont la combinaison de « Product types », qui correspondent à des enregistrements, et de « Sum types », qui correspondent à des unions étiquetées, une extension de
énum.
Les types de données algébriques sont également dotés du « pattern matching », une extension de switch qui permet de déconstruire des valeurs complexes de manière pratique et sûre.Dans le cadre du projet Ribbit [3], nous avons développé un langage de spécification pour exprimer une représentation mémoire précise en bits des types de données algébriques [4, 5]. Notre langage de spécification prend en charge une grande variété d'astuces habituellement réalisées
manuellement par les programmeurs, telles que le vol de bits, l'inlining, le unpacking ou même l'unrolling de structures récursives. Ribbit compile ensuite le code de haut niveau écrit par les utilisateurs en une manipulation de la mémoire de bas niveau qui respecte les représentations optimisées de la mémoire.
Jusqu'à présent, Ribbit ne prend en compte que les structures de données composées de types de données algébriques et les manipule de manière pure,
sans effets secondaires. En utilisant notre travail sur Ribbit comme tremplin, l'objectif de ce doctorat sera d'étudier une sémantique plus complexe, qui se rapporte à des structures de données riches et de haut niveau construites avec des types de données algébriques en combinaison avec
d'autres constructions. Cela nous amènera à envisager des schémas d'accès et des algorithmes plus complexes et à les adapter à
représentations de la mémoire spécifiées par l'utilisateur. Par exemple, nous envisagerons les directions suivantes :
- Structures de données mutables et concurrentes
- Types de données algébriques et collections
- Structures de données récursives sans indirection
Traduit avec DeepL.com (version gratuite)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Originally introduced in the 80s, Algebraic Data Types (ADT) have emerged in the last decade as an incredibly effective tool to model and manipulate data for programming. Algebraic Data Types are the combination of “Prod-uct types”, which correspond to records, and “Sum types”, which correspond to tagged unions, an extension oftraditional enumerations. Algebraic Data Types are also provided with “pattern matching”, an extension of switch
which allow to deconstruct complex values conveniently and safely.In the Ribbit [3] project, we have developed a specification language to express bit-precise memory represen-
tation of Algebraic Data Types [4, 5]. Our specification language supports a wide variety of tricks usually done
manually by programmers, such as bit stealing, inlining, unpacking, or even unrolling of recursive structures. Ribbit
then compiles the high-level code written by users to low-level memory manipulation which respects the optimised
memory representations.
So far, Ribbit only considers data-structures composed of algebraic data types and manipulate in a pure fashion,
without side-effects. Using our work on Ribbit as a stepping stone, the goal of this PhD will be to investigate more complex semantics, that pertain to rich, high level datastructure built with Algebraic Data Types in combination with
other constructs. This will lead us to consider more complex access patterns and algorithms and adapt them to user-specified memory representations. For instance, we will consider the following directions:
- Mutable and concurrent data-structures
- Algebraic Data Types and Collections
- Recursive data-structures with no indirection
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Début de la thèse : 01/10/2025
efficace pour modéliser et manipuler les données dans le cadre de la programmation. Les types de données algébriques sont la combinaison de « Product types », qui correspondent à des enregistrements, et de « Sum types », qui correspondent à des unions étiquetées, une extension de
énum.
Les types de données algébriques sont également dotés du « pattern matching », une extension de switch qui permet de déconstruire des valeurs complexes de manière pratique et sûre.Dans le cadre du projet Ribbit [3], nous avons développé un langage de spécification pour exprimer une représentation mémoire précise en bits des types de données algébriques [4, 5]. Notre langage de spécification prend en charge une grande variété d'astuces habituellement réalisées
manuellement par les programmeurs, telles que le vol de bits, l'inlining, le unpacking ou même l'unrolling de structures récursives. Ribbit compile ensuite le code de haut niveau écrit par les utilisateurs en une manipulation de la mémoire de bas niveau qui respecte les représentations optimisées de la mémoire.
Jusqu'à présent, Ribbit ne prend en compte que les structures de données composées de types de données algébriques et les manipule de manière pure,
sans effets secondaires. En utilisant notre travail sur Ribbit comme tremplin, l'objectif de ce doctorat sera d'étudier une sémantique plus complexe, qui se rapporte à des structures de données riches et de haut niveau construites avec des types de données algébriques en combinaison avec
d'autres constructions. Cela nous amènera à envisager des schémas d'accès et des algorithmes plus complexes et à les adapter à
représentations de la mémoire spécifiées par l'utilisateur. Par exemple, nous envisagerons les directions suivantes :
- Structures de données mutables et concurrentes
- Types de données algébriques et collections
- Structures de données récursives sans indirection
Traduit avec DeepL.com (version gratuite)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Originally introduced in the 80s, Algebraic Data Types (ADT) have emerged in the last decade as an incredibly effective tool to model and manipulate data for programming. Algebraic Data Types are the combination of “Prod-uct types”, which correspond to records, and “Sum types”, which correspond to tagged unions, an extension oftraditional enumerations. Algebraic Data Types are also provided with “pattern matching”, an extension of switch
which allow to deconstruct complex values conveniently and safely.In the Ribbit [3] project, we have developed a specification language to express bit-precise memory represen-
tation of Algebraic Data Types [4, 5]. Our specification language supports a wide variety of tricks usually done
manually by programmers, such as bit stealing, inlining, unpacking, or even unrolling of recursive structures. Ribbit
then compiles the high-level code written by users to low-level memory manipulation which respects the optimised
memory representations.
So far, Ribbit only considers data-structures composed of algebraic data types and manipulate in a pure fashion,
without side-effects. Using our work on Ribbit as a stepping stone, the goal of this PhD will be to investigate more complex semantics, that pertain to rich, high level datastructure built with Algebraic Data Types in combination with
other constructs. This will lead us to consider more complex access patterns and algorithms and adapt them to user-specified memory representations. For instance, we will consider the following directions:
- Mutable and concurrent data-structures
- Algebraic Data Types and Collections
- Recursive data-structures with no indirection
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Début de la thèse : 01/10/2025
Nature du financement
Précisions sur le financement
Concours allocations
Présentation établissement et labo d'accueil
Université Grenoble Alpes
Etablissement délivrant le doctorat
Université Grenoble Alpes
Ecole doctorale
217 MSTII - Mathématiques, Sciences et technologies de l'information, Informatique
Profil du candidat
Appétence en méthodes formelles (typage, sémantique)
expérience en langages fonctionnels
Appetence for formal methods st typing ans semantics experience in functional languages (theory and practise)
Appetence for formal methods st typing ans semantics experience in functional languages (theory and practise)
09/06/2025
Postuler
Fermer
Vous avez déjà un compte ?
Nouvel utilisateur ?
Besoin d'informations sur l'ABG ?
Vous souhaitez recevoir nos infolettres ?
Découvrez nos adhérents
SUEZ
ADEME
Institut Sup'biotech de Paris
MabDesign
MabDesign
CESI
Laboratoire National de Métrologie et d'Essais - LNE
Nokia Bell Labs France
CASDEN
Groupe AFNOR - Association française de normalisation
Ifremer
TotalEnergies
ONERA - The French Aerospace Lab
Aérocentre, Pôle d'excellence régional
Tecknowmetrix
ANRT
Généthon
ASNR - Autorité de sûreté nucléaire et de radioprotection - Siège
PhDOOC