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.
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.
Couvre la génération de code pour un compilateur, traduisant un programme Amy à WebAssembly, y compris la gestion de la mémoire et la compilation de correspondance de motifs.
Couvre les bases de la sécurité logicielle, en se concentrant sur la sécurité de la mémoire et les stratégies d'atténuation contre les attaques d'exécution de code.
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.
Introduit Iris, un cadre logique pour raisonner sur la sécurité et l'exactitude des programmes impératifs d'ordre supérieur simultanés, en mettant l'accent sur ses caractéristiques et applications uniques.
Fournit une vue d'ensemble de l'architecture informatique, en se concentrant sur l'architecture de von Neumann et ses composants, y compris les unités de gestion du processeur et de la mémoire.
Explore le langage d'assemblage MIPS, couvrant les appels de fonctions, la gestion de la mémoire et les structures de données, y compris les fonctions récursives, les constructions de programmation, les tableaux et les listes liées.
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.
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.