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'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.
Explore la représentation et la transformation des valeurs, en se concentrant sur la conversion de fermeture et les défis de la représentation des fonctions dans les langages fonctionnels.
Explore les inefficacités de traduction, les optimisations, les fonctions de levage, la conversion de fermeture et les concepts d'analyse de flux de données tels que les expressions disponibles et les variables en direct.
Explore les techniques pour accélérer les analyses de flux de données et discute de l'importance de l'ordonnancement des nœuds et de la traversée post-commande.
Explore l'analyse de flux de données pour l'optimisation, y compris la résolution d'équations, les variables en direct, l'atteinte de définitions et les expressions très occupées.
Couvre les sujets de construction avancés du compilateur sur les techniques d'optimisation telles que l'élimination du code mort, le pliage constant et l'allocation des registres.
Couvre les techniques d'allocation des registres, y compris les exemples de graphiques d'interférence, la coloration, le déversement et la coalescence.
Couvre les concepts de gestion de la mémoire tels que les en-têtes de bloc, la fragmentation externe, le comptage des références et la collecte des déchets de marquage et de balayage.
Couvre la gestion de la mémoire, en se concentrant sur l'allocation et la désallocation des blocs de mémoire, y compris les techniques de collecte des ordures et les problèmes de fragmentation.
Explore les techniques de collecte des ordures dans des langages orientés objet, en se concentrant principalement sur la copie et la génération GC, l'organisation des tas, les politiques de promotion et les défis de répartition des méthodes.
Couvre les défis de mise en page d'objets dans les scénarios d'héritage unique, en se concentrant sur les langages de type Java et la répartition des méthodes à l'aide de tables de méthodes virtuelles.
Explore l'optimisation de la répartition des méthodes dans les langages orientés objet, en se concentrant sur la mise en cache en ligne et les tests d'adhésion.