Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
formations:masters:ue:m2:transfo10 [2023/04/21 09:17] – supprimée - modification externe (Unknown date) 127.0.0.1 | formations:masters:ue:m2:transfo10 [2025/01/29 10:46] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ~~NOTOC~~ | ||
+ | |||
+ | ====== Transformation de Programmes ====== | ||
+ | |||
+ | ===== Description ===== | ||
+ | |||
+ | Ce module s' | ||
+ | de code qui ont typiquement lieu au coeur d'un compilateur. | ||
+ | Ce cours s'est d' | ||
+ | quelques années. On ne se concentre pas ici sur l' | ||
+ | (le " | ||
+ | plutôt sur les étapes intermédiaires ayant lieu sur l'AST (Abstract Syntax Tree, | ||
+ | alias Arbre de Syntaxe). | ||
+ | |||
+ | |||
+ | ===== Syllabus ===== | ||
+ | ==== Sujets centraux ==== | ||
+ | |||
+ | - Représentations intermédiaires, | ||
+ | - Machine à pile, JVM (Java Virtual Machine), Bytecode | ||
+ | - Récursivité terminale | ||
+ | - Notion de continuations, | ||
+ | - Forme normale " | ||
+ | |||
+ | ==== Sujets potentiellement traités ==== | ||
+ | |||
+ | - Notion de trampoline | ||
+ | - call-cc (call-with-current-continuation) et les opérateurs de contrôle | ||
+ | |||
+ | ===== Pré-requis ===== | ||
+ | |||
+ | - Avoir suivi au préalable un premier cours de compilation est fortement recommandé (par exemple [[..: | ||
+ | - Avoir déjà une bonne pratique de la programmation fonctionnelle (voir par exemple [[..: | ||