PRATIQUE ALGO/METHODES 
Expliquez-moi… Le lambda calcul
 
L'une des fondations des langages de programmation, ce modèle mathématique de la calculabilité n'est pas pour autant connu de tous. Éclaircissements sur son importance dans la paysage informatique. (13/02/2006)
  Forum

Réagissez dans les forums de JDN Développeurs

Lambda-calcul, lambda-calculus, λ-calcul : nous touchons ici aux fondements théoriques même de l'informatique, où la programmation se mélange le plus intimement avec les mathématiques.

Créé par Alonzo Church dans les années 30 afin de parvenir à un formalisme universel pour les fonctions mathématiques, le lambda calcul a depuis été utilisé avec plus de succès pour explorer la théorie de calculabilité.

Le lambda-calcul, au même titre que les machines de Turing [lire notre article du 19/10/06], est un modèle théorique de calculabilité.

Par extension, le lambda-calcul est un aspect fondamental de la création d'un langage de programmation - au point que l'un des plus anciens, Lisp, est conçu sur le même esprit que le lambda-calcul.

Le lambda-calcul est composé de fonctions anonymes, marquées par le symbole grec λ. Ces fonctions peuvent contenir des variables (sous la forme de lettres miniatures), d'abstractions et d'applications.

La lettre lambda.
Parce qu'il s'agit d'une approche purement basée sur les fonctions, le lambda-calcul est cité comme l'origine des langages fonctionnels, comme Haskell, Miranda ou ML.

Toute expression de lambda est donc une fonction, ou peut être définie comme une fonction. Chaque fonction renvoie également une fonction, et les arguments de chaque fonction sont des fonctions. La récursivité est un aspect inhérent de ce langage.

Le lambda-calcul est un langage très simple, décrit même comme le plus petit des langages de programmation. Parce qu'il repose sur un jeu très réduit de règles pour traiter les expressions (réduction α, réduction β, et conversion η), il est en mesure d'évaluer toute fonction calculable.

En ce sens, il peut être considéré comme équivalent de la machine de Turing : lambda-calcul pour l'aspect logiciel sans se soucier du matériel, Turing pour l'aspect matériel sans chercher à implémenter un langage.
 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page