Génération de code et optimisations pour une machine virtuelle à pile
Aperçu
En quoi consiste ce défi.
Construisez une représentation intermédiaire, optimisez-la par pliage et code mort, puis générez le bytecode. Obtenez un certificat vérifiable.
Le brief
Ce que vous ferez, et ce que vous démontrerez.
Comment transformer un programme vérifié en un bytecode compact et correct pour une machine à pile, en réduisant le travail inutile par des optimisations sûres ?
Earning criteria — what you'll demonstrate
- Concevoir une représentation intermédiaire à trois adresses à partir d'un AST
- Implémenter le pliage de constantes et l'élimination de code mort en préservant la sémantique
- Engendrer du bytecode correct pour une machine à pile à partir d'une représentation intermédiaire
- Mesurer l'effet des optimisations sur la taille du code généré
- Relier chaque étape du dos du compilateur dans un schéma clair
Adéquation au programme
Où cela s'inscrit dans votre cursus.
Renforce les mêmes compétences que celles attendues par votre diplôme.
Cursus associés bientôt disponibles.
Compétences
Les compétences que vous démontrerez.
Chacune apparaît sur votre certificat vérifié.
Débouchés
Les métiers auxquels ce défi vous prépare.
De vrais intitulés. De vraies passerelles de compétences. Choisissez celui qui se rapproche le plus de votre trajectoire.
Les parcours de carrière que ce défi construit
Métiers de référenceEmbedded Software Engineer
Compiler des scripts vers un bytecode compact exécuté par une machine à pile reflète les contraintes du logiciel embarqué, où code court et rapide comptent. Vous apprenez à produire du code cible correct et efficace à partir d'une représentation intermédiaire.
Ce défi renforce
- code-generation
- intermediate-representation
- compiler-optimization
Systems Engineer
Assembler le dos d'un compilateur, de l'IR au bytecode, en reliant plusieurs étapes cohérentes, développe la vision système : comprendre comment des composants se transmettent des données et préserver une propriété de bout en bout, ici la correction sémantique.
Ce défi renforce
- intermediate-representation
- code-reading
- architecture-diagrams
Static Analysis Engineer
L'élimination de code mort et le pliage de constantes reposent sur l'analyse du flux de données, cœur des outils d'analyse statique. Vous acquérez le raisonnement sur les variables réellement utilisées et les valeurs connues à la compilation.
Ce défi renforce
- compiler-optimization
- code-reading
- code-generation