Outils pour utilisateurs

Outils du site


Panneau latéral



Contacts

Scolarité M1

Mickael Ferreira
télephone 01 57 27 68 96
bureau Sophie Germain - Bur. 3004
En télétravail les mardis et vendredis
(permanences Zoom : 10h30-12h00 ; 14h00-15h30)

connexion à la permanence de Mickaël Ferreira (code: 141280)

Scolarité M2

Sylvia Crochet
téléphone 01 57 27 68 98
bureau Sophie Germain - Bur. 3002
En télétravail les mardis et vendredis. Ne travaille pas les mercredis
(permanences Zoom : 10h00-11h30 ; 14h30-16h00)

connexion à la permanence de Sylvia Crochet (code: 242581)

formations:masters:ue:m2:transfo10

Transformation de Programmes

Description

Ce module s'intéresse à diverses phases de remaniement automatique de code qui ont typiquement lieu au coeur d'un compilateur. Ce cours s'est d'ailleurs intitulé “compilation avancée” pendant quelques années. On ne se concentre pas ici sur l'étape amont d'un compilateur (le “parsing”) ni sur l'étape finale (la production d'assembleur) mais plutôt sur les étapes intermédiaires ayant lieu sur l'AST (Abstract Syntax Tree, alias Arbre de Syntaxe).

Syllabus

Sujets centraux

  1. Représentations intermédiaires, manipulations d'AST
  2. Machine à pile, JVM (Java Virtual Machine), Bytecode
  3. Récursivité terminale
  4. Notion de continuations, style par continuation (CPS, Continuation-Passing-Style)
  5. Forme normale “administrative” (ANF)

Sujets potentiellement traités

  1. Notion de trampoline
  2. call-cc (call-with-current-continuation) et les opérateurs de contrôle

Pré-requis

  1. Avoir suivi au préalable un premier cours de compilation est fortement recommandé (par exemple celui de M1 ici-même)
  2. Avoir déjà une bonne pratique de la programmation fonctionnelle (voir par exemple Programmation Fonctionnelle en L3 ou Programmation Fonctionnelle Avancée en M1).
formations/masters/ue/m2/transfo10.txt · Dernière modification : 2023/05/22 18:07 de treinen