Sciences du logiciel - Xavier Leroy

By Collège de France

Listen to a podcast, please open Podcast Republic app. Available on Google Play Store and Apple App Store.


Category: Courses

Open in Apple Podcasts


Open RSS feed


Open Website


Rate for this podcast

Subscribers: 5
Reviews: 0
Episodes: 73

Description

Écrire un petit programme informatique est facile. Concevoir et réaliser un logiciel complet qui soit fiable, pérenne et résistant aux attaques reste extraordinairement difficile. C'est le but des sciences du logiciel que de concevoir et développer les principes, les formalismes mathématiques, les techniques empiriques et les outils informatiques nécessaires pour concevoir, programmer et vérifier des logiciels fiables et sécurisés.

L'enseignement de la chaire Sciences du logiciel vise à explorer cette problématique et à présenter la recherche contemporaine dans ce domaine. Le cours privilégie les approches dites « formelles », par opposition à l'empirisme souvent de mise en génie logiciel. Ces approches s'appuient sur des fondements mathématiquement rigoureux, connus ou en émergence : sémantiques formelles, logiques de programmes, systèmes déductifs, équivalences de programmes, calculs de processus… Historiquement, ces concepts ont émergé de considérations de programmation très terre-à-terre avant de se parer de rigueur mathématique. Le cours s'efforce de retracer ce cheminement des idées en partant de l'intuition du programmeur et en allant jusqu'à la mécanisation de ces approches formelles.

Les premières années de cet enseignement auraient pu s'intituler « Programmer, démontrer », car ils ont exploré plusieurs modes d'interaction entre la programmation de logiciels et la démonstration d'énoncés mathématiques : programmer puis démontrer, comme dans les logiques de programmes pour la vérification déductive ; programmer pour démontrer, comme dans les logiques constructives et l'assistant à la démonstration Coq ; enfin, programmer égale démontrer, comme dans la féconde correspondance de Curry-Howard, objet de la première année du cours.

La recherche de la chaire Sciences du logiciel s'effectue dans le cadre de l'équipe-projet Cambium, commune avec l'Inria. Les travaux de l'équipe visent à améliorer la fiabilité, la sûreté et la sécurité du logiciel en faisant progresser les langages de programmation et les méthodes de vérification formelle de programmes. Les principaux thèmes de recherche sont les systèmes de types et les algorithmes d'inférence de types, la vérification déductive de programmes, le parallélisme à mémoire partagée, et les modèles mémoires faiblement cohérents. L'équipe conçoit et développe deux grands logiciels de recherche qui intègrent et font passer dans la pratique bon nombre de ses résultats : OCaml, un langage de programmation fonctionnel statiquement typé et son implémentation, et CompCert, un compilateur formellement vérifié pour logiciels embarqués critiques.


Episode Date
Séminaire - David Pointcheval : Le chiffrement fonctionnel : agréger des données sensibles
Dec 18, 2025
07 - Le calcul sécurisé : calculer sur des données chiffrées ou privées : Sécuriser le calcul : nouvelles directions et conclusions
Dec 18, 2025
Séminaire - Michele Orrù : Des preuves zero-knowledge à l'anonymat en ligne
Dec 11, 2025
06 - Le calcul sécurisé : calculer sur des données chiffrées ou privées : Calcul vérifiable et preuves zero-knowledge
Dec 11, 2025
Séminaire - Geoffroy Couteau : Calcul sécurisé et aléa corrélé, de la théorie à la pratique
Dec 04, 2025
05 - Le calcul sécurisé : calculer sur des données chiffrées ou privées : Calcul multipartite sécurisé : circuits brouillés et transfert inconscient
Dec 04, 2025
Séminaire - Ilaria Chillotti : Chiffrement totalement homomorphe : panorama, applications et nouvelles directions
Nov 27, 2025
04 - Le calcul sécurisé : calculer sur des données chiffrées ou privées : Calcul multipartite sécurisé : partager des secrets
Nov 27, 2025
Séminaire - Damien Stehlé : Chiffrement totalement homomorphe CKKS
Nov 20, 2025
03 - Le calcul sécurisé : calculer sur des données chiffrées ou privées : Chiffrement totalement homomorphe : calculer sur des données chiffrées (2)
Nov 20, 2025
Séminaire - Pierrick Gaudry : Outils cryptographiques pour le vote électronique
Nov 13, 2025
02 - Le calcul sécurisé : calculer sur des données chiffrées ou privées : Chiffrement totalement homomorphe : calculer sur des données chiffrées (1)
Nov 13, 2025
01- Le calcul sécurisé : calculer sur des données chiffrées ou privées : Sécuriser le calcul : introduction et étude de cas
Nov 06, 2025
Séminaire - Daan Leijen : Design and Compilation of Efficient Effect Handlers in the Koka Language
Mar 14, 2024
08 - Structures de contrôle : de « goto » aux effets algébriques : 08 - Structures de contrôle : de « goto » aux effets algébriques : Logiques de programmes pour le contrôle et les effets
Mar 14, 2024
Séminaire - Matija Pretnar : Effect handlers and mathematically inspired language constructs
Mar 07, 2024
07 - Structures de contrôle : de « goto » aux effets algébriques : Typage et analyse statique des effets
Mar 07, 2024
Séminaire - Olivier Danvy : Les continuations : cinq minutes pour les apprendre, toute une vie pour les comprendre
Feb 29, 2024
06 - Structures de contrôle : de « goto » aux effets algébriques : Théorie des effets : des monades aux effets algébriques
Feb 29, 2024
Séminaire - Andrew Kennedy : Compiling with Continuations
Feb 22, 2024
05 - Structures de contrôle : de « goto » aux effets algébriques : Pratique des effets : des exceptions aux gestionnaires d'effets
Feb 22, 2024
Séminaire - Delphine Demange : Représentations intermédiaires pour la compilation : s'affranchir du graphe de flot de contrôle
Feb 15, 2024
04 - Structures de contrôle : de « goto » aux effets algébriques : Programmer ses structures de contrôle : continuations et opérateurs de contrôle
Feb 15, 2024
Séminaire - Caroline Collange : Comment concilier parallélisme et contrôle ? Approches des architectures de processeurs généralistes et graphiques
Feb 08, 2024
03 - Structures de contrôle : de « goto » aux effets algébriques : Chassez le contrôle... : la programmation déclarative
Feb 08, 2024
02 - Structures de contrôle : de « goto » aux effets algébriques : Structures de contrôle avancées : des subroutines aux coroutines et au parallélisme
Feb 01, 2024
01 - Structures de contrôle : de « goto » aux effets algébriques : Naissance des structures de contrôle : du « goto » à la programmation structurée
Jan 25, 2024
Séminaire - Pierre-Etienne Meunier : Une algèbre de modifications, ou : le contrôle de versions pour tous
Apr 20, 2023
07 - Structures de données persistantes : À la recherche du vecteur perdu : limites théoriques et conclusions
Apr 20, 2023
Séminaire - Arthur Charguéraud : Comment allier persistance et performance
Apr 13, 2023
06 - Structures de données persistantes : De la dérivation formelle à la navigation dans une structure : contextes, zippers, index, etc.
Apr 13, 2023
Séminaire - KC Sivaramakrishnan : Mergeable Replicated Data Types
Apr 07, 2023
05 - Structures de données persistantes : Systèmes de numération et types non réguliers
Apr 07, 2023
Séminaire - Jean-Christophe Filliatre : Structures de données semi-persistantes
Mar 30, 2023
04 - Structures de données persistantes : Comment rendre persistante une structure impérative ?
Mar 30, 2023
Séminaire - Tobias Nipkow : Verification of functional data structures: Correctness and complexity
Mar 23, 2023
03 - Structures de données persistantes : Concilier amortissement et persistance : de l'importance de la paresse
Mar 23, 2023
02 - Structures de données persistantes : Arbres équilibrés + copie de branches = persistance
Mar 16, 2023
01 - Structures de données persistantes : Introduction aux structures persistantes et à la programmation purement fonctionnelle
Mar 09, 2023
07 - Sécurité du logiciel : quel rôle pour les langages de programmation ?
Apr 21, 2022
06 - Sécurité du logiciel : quel rôle pour les langages de programmation ?
Apr 14, 2022
05 - Sécurité du logiciel : quel rôle pour les langages de programmation ?
Apr 07, 2022
04 - Sécurité du logiciel : quel rôle pour les langages de programmation ?
Mar 31, 2022
03 - Sécurité du logiciel : quel rôle pour les langages de programmation ?
Mar 24, 2022
02 - Sécurité du logiciel : quel rôle pour les langages de programmation ?
Mar 17, 2022
01 - Sécurité du logiciel : quel rôle pour les langages de programmation ?
Mar 10, 2022
07 - Logiques de programmes : quand la machine raisonne sur ses logiciels
Apr 15, 2021
06 - Logiques de programmes : quand la machine raisonne sur ses logiciels
Apr 08, 2021
05 - Logiques de programmes : quand la machine raisonne sur ses logiciels
Apr 01, 2021
04 - Logiques de programmes : quand la machine raisonne sur ses logiciels
Mar 25, 2021
03 - Logiques de programmes : quand la machine raisonne sur ses logiciels
Mar 18, 2021
02 - Logiques de programmes : quand la machine raisonne sur ses logiciels
Mar 11, 2021
01 - Logiques de programmes : quand la machine raisonne sur ses logiciels
Mar 04, 2021
08 - Sémantiques mécanisées : quand la machine raisonne sur ses langages
Feb 13, 2020
07 - Sémantiques mécanisées : quand la machine raisonne sur ses langages
Feb 06, 2020
06 - Sémantiques mécanisées : quand la machine raisonne sur ses langages
Jan 30, 2020
05 - Sémantiques mécanisées : quand la machine raisonne sur ses langages
Jan 16, 2020
04 - Sémantiques mécanisées : quand la machine raisonne sur ses langages
Jan 09, 2020
03 - Sémantiques mécanisées : quand la machine raisonne sur ses langages
Dec 19, 2019
02 - Sémantiques mécanisées : quand la machine raisonne sur ses langages
Dec 12, 2019
01 - Sémantiques mécanisées : quand la machine raisonne sur ses langages
Nov 28, 2019
11 - Programmer = démontrer ? La correspondance de Curry-Howard aujourd'hui
Jan 30, 2019
10 - Programmer = démontrer ? La correspondance de Curry-Howard aujourd'hui
Jan 23, 2019
09 - Programmer = démontrer ? La correspondance de Curry-Howard aujourd'hui
Jan 16, 2019
08 - Programmer = démontrer ? La correspondance de Curry-Howard aujourd'hui
Jan 09, 2019
07 - Programmer = démontrer ? La correspondance de Curry-Howard aujourd'hui
Jan 09, 2019
06 - Programmer = démontrer ? La correspondance de Curry-Howard aujourd'hui
Dec 19, 2018
05 - Programmer = démontrer ? La correspondance de Curry-Howard aujourd'hui
Dec 12, 2018
04 - Programmer = démontrer ? La correspondance de Curry-Howard aujourd'hui
Dec 05, 2018
03 - Programmer = démontrer ? La correspondance de Curry-Howard aujourd'hui
Nov 28, 2018
02 - Programmer = démontrer ? La correspondance de Curry-Howard aujourd'hui
Nov 21, 2018
01 - Programmer = démontrer ? La correspondance de Curry-Howard aujourd'hui
Nov 21, 2018
Leçon inaugurale - Xavier Leroy : Le logiciel, entre l'esprit et la matière
Nov 15, 2018