INF 321
Programmation fonctionnelle, typage,
isomorphisme de Curry-Howard
Eric Goubault
Cours 9
16 juin 2014
1
Dans le dernier ´
episode...
On a vu:
Validation
Syst`emes de preuve en logique
On va voir:
Retour sur la programmation fonctionnelle (Caml, Haskell...)!
Strat´egies d’´evaluation (eager/lazy)
Typage et isomorphisme de Curry-Howard
En fait c’est un cours sur la r´ecursivit´e, les r´ef´erences, et la preuve
de programmes, revisit´ees dans les langages fonctionnels! C’est
aussi l’occasion de voir une nouvelle s´emantique, op´erationnelle,
des langages de programmation
2
Dans le dernier ´
episode...
On a vu:
Validation
Syst`emes de preuve en logique
On va voir:
Retour sur la programmation fonctionnelle (Caml, Haskell...)!
Strat´egies d’´evaluation (eager/lazy)
Typage et isomorphisme de Curry-Howard
En fait c’est un cours sur la r´ecursivit´e, les r´ef´erences, et la preuve
de programmes, revisit´ees dans les langages fonctionnels! C’est
aussi l’occasion de voir une nouvelle s´emantique, op´erationnelle,
des langages de programmation
3
PCF
“Programming Computable Functions” (Gordon Plotkin 1977)
Substantifique mo¨
elle des langages fonctionnels
Les fonctions sont des objets“de premi`ere classe”
Construction de fonction fun x-> tcorrespondant au Caml
(au nommage pr`es):
let f x = t
Application d’une fonction `a un argument t t (on peut
appliquer une fonction `a une fonction - et mˆeme `a soi-mˆeme!
(“Sucre syntaxique” au dessus du λ-calcul)
4
Grammaire de PCF
t::= x
|fun x>t
|t t |t×t
|n
|t+t|tt|tt|t/t
|ifz tthen telse t
|fix x t
|let x=tin t
Remarques
On pourrait rajouter une construction somme...
Le langage PCF est complet au sens de Turing! (permet de
calculer toutes les fonctions r´ecursives partielles, cf. cours 5)
5
1 / 69 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 !