IFT359 Programmation fonctionnelle
Thème #2
Introduction au langage fonctionnel choisi
1
QUELQUES CONCEPTS DE BASE SUR LES
LANGAGES DE PROGRAMMATION ET SUR
DR-RACKET
2
DrRacket
un langage dérivé du λ-calcul
Scheme est un dialecte de Lisp
Lisp a été conçu en 1958
Scheme a été conçu en 1975
DrRacket a été conçu en 2009
DrRacket est un dialecte de Scheme
Les différences sont pour le cours minimes
Lisp est basé sur le λ-calcul
La syntaxe et la sémantique de DrRacket a beaucoup de similarité
avec le λ-calcul
abstractions, applications, portée lexicale, typage statique, lambda …
DrRacket ajoute au λ-calcul quelques formes syntaxiques (spéciales),
plusieurs librairies et l’évaluation par environnement.
Apprendre à utiliser la syntaxe de DrRacket se fait en quelques
heures, c’est la programmation fonctionnelle qui s’acquiert plus
lentement parce que c’est une nouvelle façon de penser.
3
DrRacket
un langage dérivé du λ-calcul
Langage multi-paradigme mettant l’emphase sur la programmation
fonctionnelle
L’évaluation se fait par environnement
Il permet de définir l’affectation
Il facilite le traitement des définitions de fonctions mutuellement
récursives.
Pour le moment on peut considérer que l’évaluation par environnement
est identique à l’évaluation par substitution.
L’ordre d’évaluation est applicatif
Il est plus performant
En λ-calcul, l’ordre applicatif ne mène pas toujours à la forme normale.
Les construits comme le if et define qui peuvent être problématiques
ont une forme spéciale qui ne suivent pas l’ordre applicatif.
4
DrRacket
un langage dérivé du λ-calcul
Homoiconicité (code = donnée)
Portée lexicale (statique) des variables
Typage « dynamique » fort
L’interpréteur ou le compilateur infère les types
Offre une Read-Eval-Print-Loop {REPL}
Ramasse-miette {Garbage Collector}
5
1 / 48 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 !