UN IA PRIME EN INFORMATIQUE FONDAMENTALE
Chaque année, l’Association européenne d’informatique fondamentale (European Association for Theoretical Computer Science, EATCS) organise deux des principales conférences internationales en informatique fondamentale (ICALP et MFCS). Pour ces deux événements, les meilleures contributions scientifiques de doctorants sont récompensées. Cette été, j’ai eu le plaisir d’être lauréat des deux prix.
Comment conjuguer à la fois l’envie de réaliser un doctorat, et celle de participer à la gestion des programmes d’armement par la DGA ? La solution paraît « simple » : en faisant les deux en même temps ! C’est le projet que j’ai formé en 2020, pendant ma formation administrative et militaire, et qui a abouti à la création d’un poste double : je suis à la fois architecte cyber à DGA IP (principalement au profit de l’UM C2ER), et doctorant en informatique à l’Université Paris Cité.
Depuis septembre 2020, j’ai donc deux bureaux : l’un à Balard, et l’autre à l’Institut de recherche en informatique fondamentale (IRIF), à deux pas de la BNF. Actuellement, je commence ma troisième et dernière année de thèse, qui s’intéresse des questions d’optimisation de programmes.
Optimiser des programmes pour gagner en efficacité
Mes travaux de recherche visent à développer des techniques pour optimiser automatiquement des programmes. En d’autres termes, je construis des algorithmes qui prennent en entrée le code d’un programme, et construisent en sortie (sans intervention humaine) un code qui a le même comportement, mais qui s’exécute plus rapidement ou en utilisant moins de mémoire.
Bien que l’augmentation des capacités de calcul (et notamment la loi de Moore) ait longtemps masqué la problématique de l’efficacité des logiciels, ce sujet tend à devenir prégnant dès lors qu’il est question de « sobriété ». En outre, dans certains systèmes embarqués, l’énergie ou la mémoire sont des ressources critiques et particulièrement limitées : il est donc essentiel de minimiser leur consommation par les composants logiciels.
Une classe de programmes « simples »
Certaines optimisations de code sont déjà intégrées dans les compilateurs. Néanmoins, lorsque les programmes en entrée sont très complexes, les compilateurs doivent se contenter d’une heuristique (c’est-àdire qu’ils ne produisent pas systématiquement le code « le plus efficace possible ») : il pourrait y avoir un autre code qui soit meilleur que leur résultat.
Afin de pallier cette limitation, je m’intéresse à des programmes récursifs dont la syntaxe est restreinte, et qui manipulent exclusivement des chaînes de caractères. Ces programmes, appelés transducteurs, sont notamment utilisés pour le traitement de flux de données (« streaming »). Pour cette classe de programmes, je montre comment construire systématiquement le code « le plus efficace possible » à partir d’un code donné. Les deux prix que j’ai obtenus cet été récompensent des publications sur cette thématique.
La théorie de automates finis
En informatique fondamentale, l’étude des transducteurs s’inscrit plus généralement au sein de la théorie des « automates finis ». Ces modèles de calcul sont utilisés pour décrire des programmes à « mémoire bornée », qui sont par exemple employés dans le traitement du langage naturel (natural language processing), l’analyse syntaxique, ou la recherche de motifs dans des textes.
Cette thématique est particulièrement active en Europe depuis les travaux du français Marcel-Paul Schützenberger (d’ailleurs ami de Boris Vian, auquel il inspirera le personnage du « docteur Schütz » dans Et on tuera tous les affreux) dans les années 1960. Si une grande partie des IA recherche, lorsqu’ils souhaitent faire une thèse en informatique, s’orientent plutôt vers la cybersécurité ou l’intelligence artificielle, j’ai néanmoins un prédécesseur en théorie des automates finis : l’ICA Laura Chaubard, qui a réalisé sa thèse dans le même laboratoire.
Aucun commentaire
Vous devez être connecté pour laisser un commentaire. Connectez-vous.