Explore l'analyse automatisée de terminaison à l'aide de paires de dépendances, couvrant les techniques classiques et modernes, les concours annuels et des outils comme AProVE.
Couvre le calcul lambda simplement typé, en se concentrant sur sa syntaxe, sa sémantique et ses propriétés de système de type telles que le progrès et la préservation.
Couvre la sémantique des langages de programmation, en se concentrant sur le langage Add et le rôle des règles de réécriture et des machines CK dans la compréhension du sens.
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.
Couvre la définition d'un langage de programmation simple et sa sémantique à grande échelle, y compris les expressions arithmétiques et les commandes impératives.
Couvre les bases de la programmation C, y compris les variables, les opérateurs et la programmation orientée système, en mettant l'accent sur les différences avec Java.
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 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.
Explique le processus de résolution des contraintes de type en utilisant l'algorithme d'unification et la généralisation de l'inférence de type flexible.
Explore l'application pratique de la théorie du langage, y compris le tri rapide, le typage progressif et la gestion efficace de la mémoire, ainsi que les défis de la synthèse des programmes de réduction.
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.
Introduit les bases des variables et des types dans la programmation C, couvrant la déclaration, l'initialisation et les différences par rapport à Java.
Introduit des enregistrements, des variantes, des règles d'évaluation, des règles de dactylographie, des défis d'aliasing et des avantages dans les langages de programmation.
Couvre la pensée algorithmique, la programmation Python, les méthodes numériques et les concepts informatiques essentiels pour l'informatique scientifique.