
Bonjour,
Récemment je me suis posé la question avec un collègue pour introduire un séminaire interne sur les langages fonctionnels, et on n’a pas réussi à trouver une réponse satisfaisante, on s’est heurté aux différents types de langage fonctionnel (Lisp, ML famille, Haskell, etc.), qui peuvent inclure des éléments de langages impératifs, des objets, des types algébriques ou uniquement des types simples et qui ont des stratégies d’évaluation différentes.
Personnellement, je dirais que dans un langage de fonctionnel l’exécution d’un programme se fait uniquement par substitution d’expression sans modification de l’état d’une machine alors que dans un langage impératif l’exécution se fait par évaluation d’expression et modification de l’état de la machine.
On peut aussi dire que les langages fonctionnels sont basés sur le lambda-calcul de Church, alors que les langages impératifs sont basés sur la machine de Turing, mais il faut expliquer ce qu’est le lambda-calcul.
Laurent Pierron
Le 20 mars 2014 à 11:26, Gautier DI FOLCO