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 les représentations intermédiaires dans les compilateurs, en se concentrant sur CPS / L3 IR fonctionnel avec des continuations locales et des constructions de contrôle.
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.
Explique la traduction de for-expressions en Scala à l'aide de fonctions map, flatmap et filter, avec des exemples et une discussion sur sa généralisation à différents types.
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.
Offre un cours de crash en MATLAB, couvrant la représentation des données, l'indexation des tableaux, les opérations mathématiques, et les pièges communs.
Explore l'amélioration de la traduction, des traductions basées sur le contexte source et des techniques de représentation de la valeur telles que le marquage et la boxe.
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 fondamentaux de l'ingénierie logicielle, couvrant le traitement de l'instruction, les algorithmes, les langages de programmation, les abstractions, les tests, la sécurité et l'open source.
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.
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.
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.