Évaluation partielle

En informatique, l'évaluation partielle consiste à remplacer un programme (ou une fonction ou procédure) généraliste par un programme (ou fonction ou procédure) plus précis, qui sera plus rapide ou plus lisible.

Un exemple en Ocaml serait la fonction d'ordre supérieure suivante aff qui à deux entiers x et y associe la fonction à un argument entier (ici z) transformant l'entier z en x*y + z:

let aff x y = fun z -> x*y + z

Alors aff 0 0 est la fonction identité sur les entiers, et aff 2 0 est la fonction qui double son argument entier.

Evaluer partiellement aff 0 0 consiste à construire le code machine de la fonction identité (plus efficace qu'une fermeture, car on n'y ferait aucune multiplication ou addition)

Usage

Ce remplacement peut concerner par exemple les routines de multiplication de matrices numériques : une fonction générale de multiplication de matrice est plus lente et plus complexe que la fonction particularisée, quand on sait que la matrice de gauche est constante et triangulaire.

Les compilateurs optimisants (notamment GCC ou SBCL) utilisent l'évaluation partielle.

Références