Pour répondre à votre première question, les fonctions mathématiques ont souvent été décrites comme "pures" en termes de certaines variables spécifiées, par exemple :
le premier terme est une fonction pure de x et le second terme est une fonction pure de y
Pour cette raison, je ne pense pas que vous trouverez une véritable "première" occurrence.
Pour les langages de programmation, une petite recherche montre que Ada 95 ( pragma Pure
), Fortran haute performance (1993) ( PURE
) et VHDL-93 ( pure
) contiennent toutes des notions formelles de "fonctions pures".
Haskell (1990) est assez évident, mais la pureté n'est pas explicite. Le C de GCC a divers attributs de fonction pour différents niveaux de "pureté".
Quelques livres : Raison d'être du langage de programmation C (1990) utilise ce terme, tout comme Les langages de programmation et leurs définitions (1984). Cependant, tous deux ne l'utilisent apparemment qu'une seule fois ! Programmation de l'ordinateur personnel IBM, Pascal (également 1984) utilise ce terme, mais la vue restreinte de Google ne permet pas de savoir si le compilateur Pascal le prenait en charge ou non. (Je soupçonne que non.)
Une note intéressante est que Green, le prédécesseur d'Ada, avait en fait une définition assez stricte de la "fonction". - même l'allocation de mémoire n'était pas autorisée. Cependant, ceci a été abandonné avant de devenir Ada, où les fonctions peuvent avoir des effets secondaires (E/S ou variables globales), mais ne peuvent pas modifier leurs arguments.
C28-6571-3 (le premier manuel de référence PL/I, écrit avant le compilateur) montre que le PL/I avait un support pour les fonctions pures, sous la forme de la fonction REDUCIBLE
(= pur), dès 1966, date de la première version du compilateur. (Cela répond également à votre troisième question).
Ce dernier document indique spécifiquement qu'il comprend REDUCIBLE
comme une nouvelle modification depuis le document C28-6571-2. Donc REDUCIBLE
qui est probablement la première incarnation des fonctions pures formelles dans les langages de programmation, est apparu quelque part entre janvier et juillet 1966.
Mise à jour : la première occurrence de "fonction pure" sur Google Groups dans ce sens. est de 1988 ce qui est facilement postérieur aux références du livre.