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 l'étude mathématique des comportements de programme, l'analyse, les langages spécifiques à un domaine et les outils puissants de conception de langage.
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.
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.
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.
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.
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.
Couvre la définition et les applications des pointeurs dans la programmation C, en mettant l'accent sur leur rôle dans la gestion de la mémoire et la programmation générique.
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.
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.
Explore l'allocation dynamique de la mémoire en C, couvrant les fonctions malloc, calloc et realloc, en mettant l'accent sur la gestion appropriée de la mémoire et les tableaux dynamiques.
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.
Explique les différences entre les pointeurs et les références en programmation, en se concentrant sur leurs définitions, leurs utilisations et leurs limites en C et C ++.