´
Ecole Normale Sup´erieure
Langages de programmation
et compilation
Jean-Christophe Filliˆatre
Cours 9 / 2 d´ecembre 2016
Jean-Christophe Filliˆatre Langages de programmation et compilation 2016–2017 / cours 9 1
objectif
dans le cours d’aujourd’hui, on se focalise sur
la compilation des langages fonctionnels
on va notamment expliquer
la compilation des fonctions comme valeurs de premi`ere classe
l’optimisation des appels terminaux
le filtrage
Jean-Christophe Filliˆatre Langages de programmation et compilation 2016–2017 / cours 9 2
fonctions comme valeurs de premi`ere classe
Jean-Christophe Filliˆatre Langages de programmation et compilation 2016–2017 / cours 9 3
fragment d’OCaml
consid´erons un mini-fragment d’OCaml
e::= c
|x
|fun xe
|e e
|let [rec]x=ein e
|if ethen eelse e
d::= let [rec]x=e
p::= d. . . d
Jean-Christophe Filliˆatre Langages de programmation et compilation 2016–2017 / cours 9 4
fonctions imbriqu´ees
comme dans mini-Pascal, les fonctions peuvent ˆetre imbriqu´ees
let somme n =
let fx=x*xin
let rec boucle i =
if i=nthen 0else f i + boucle (i+1)
in
boucle 0
et la port´ee statique est la mˆeme
Jean-Christophe Filliˆatre Langages de programmation et compilation 2016–2017 / cours 9 5
1 / 76 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !