Couvre l'étude mathématique des comportements de programme, l'analyse, les langages spécifiques à un domaine et les outils puissants de conception de langage.
Explore les défis des références nulles dans les langages de programmation et propose des solutions pour atténuer leurs inconvénients tout en assurant la compatibilité avec les bases de code existantes.
Introduit les bases de Python comme les types, les fonctions, les conditions, les boucles et les listes, avec des exemples de manipulation de chaîne et d'opérations de liste.
Explore la sécurité du langage de programmation, couvrant la sécurité de type, la sécurité de la mémoire, la sécurité des menaces, le modèle de propriété de Rust, le sandboxing et la compartimentation.
Introduit Stainless, un outil open-source pour vérifier les programmes Scala, couvrant le langage, la modélisation, les conseils de vérification et les travaux intérieurs.
Explore l'inférence de type dans les langages typés statiquement, en utilisant des algorithmes pour attribuer des types aux expressions de programme avec précision.
Explore les défis liés au sous-typage, aux génériques, aux limites de type, à la variance, à la covariance et à la saisie matricielle en Java et Scala.
Explore les fondements de la vérification modulaire en utilisant la logique de séparation pour des programmes concomitants réalistes et discute des défis de l'état mutable partagé dans la concorde.