Précédent Index Suivant

Introduction

Le premier langage fonctionnel, Lisp, est apparu à la fin des années 1950. C'est-à-dire au même moment que Fortran, premier représentant des langages impératifs. Ces deux langages existent toujours, bien qu'ayant fortement évolués. Ils couvrent respectivement le domaine de la programmation d'applications numériques pour Fortran et d'applications symboliques pour Lisp. L'intérêt de la programmation fonctionnelle provient d'une grande facilité d'écriture des programmes et des valeurs qu'ils manipulent. Un programme est une fonction appliquée à ses arguments. Il calcule un résultat qui est retourné (quand le calcul termine) comme sortie du programme. Il devient alors facile de composer des programmes : la sortie d'un programme devient l'argument d'entrée d'un autre, au sens de la composition de fonctions.

La programmation fonctionnelle repose sur un modèle de calcul simple possédant trois constructions : les variables, la définition d'une fonction et son application à un argument. Ce modèle s'appelle le l-calcul et il a été introduit par Alonzo Church en 1932, donc avant le premier ordinateur. Il a été conçu pour offrir un modèle théorique général de la notion de calculabilité. En l-calcul, toutes les fonctions sont des valeurs manipulables. Elles peuvent être utilisées comme paramètres d'autres fonctions ou être retournées comme résultat de l'appel d'une autre fonction. La théorie du l-calcul affirme que tout ce qui est calculable (entendez programmable) peut être écrit dans ce formalisme. Cependant sa syntaxe est trop limitée pour être utilisable comme langage de programmation. En conséquence, il lui a été ajouté des valeurs de base (tels que les entiers ou les chaînes de caractères), des opérateurs sur ces valeurs de base, des structures de contrôle et les déclarations qui permettent de nommer des valeurs ou des fonctions et, en particulier, des fonctions récursives.

Il existe plusieurs classifications des langages fonctionnels. Pour notre part, nous les distinguons suivant deux caractéristiques qui nous paraissent prépondérantes  :
Précédent Index Suivant