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 l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!