Transparence référentielle

La transparence référentielle est une caractéristique de certaines parties des programmes informatiques. Une partie d'un programme est dite "transparente par référence" si elle peut être remplacée par la valeur qu'elle redonne sans modifier le comportement du programme. Une fonction référentiellement transparente doit être pure - elle doit toujours donner la même sortie si elle prend la même entrée, et elle ne doit pas avoir d'effets secondaires - les parties du programme qui effectuent une action autre que de redonner une valeur. L'opposé de la transparence référentielle est l'opacité référentielle.

En mathématiques, toutes les fonctions sont transparentes par référence, car une fonction mathématique ne peut que prendre des valeurs et en recracher une. En programmation, cela n'est pas toujours vrai - une fonction peut aussi découvrir quel jour de l'année on est, ou imprimer un message à l'écran. En raison de cette différence, certaines personnes utilisent d'autres noms pour les fonctions en programmation, comme les procédures.

La transparence référentielle permet aux programmeurs et aux compilateurs de considérer le code comme un système de réécriture - quelque chose qui prend une expression et la remplace par autre chose. Cela peut aider dans plusieurs tâches, comme par exemple

  • Prouver que le programme ou le code est correct - qu'il fait exactement ce qu'il est censé faire, quoi qu'il arrive.
  • Rendre un algorithme plus simple.
  • Il est plus facile de modifier le code tout en étant sûr qu'il fait ce qu'il est censé faire.
  • Faire fonctionner le code plus rapidement ou d'une manière qui utilise moins de mémoire.

Il existe plusieurs façons de réaliser cette dernière tâche, les plus connues étant la mémorisation (sauvegarder les réponses après la première fois), l'élimination des sous-expressions communes (déterminer s'il vaut la peine de combiner deux parties du code qui sont identiques), l'évaluation paresseuse (ne pas trouver la réponse avant que le code n'en ait vraiment besoin) et la parallélisation (travailler sur plusieurs problèmes en même temps).

Questions et réponses

Q : Qu'est-ce que la transparence référentielle ?


R : La transparence référentielle est une caractéristique des programmes informatiques qui permet de remplacer une partie du programme par la valeur qu'elle restitue sans modifier le comportement du programme.

Q : Quel est le contraire de la transparence référentielle ?


R : Le contraire de la transparence référentielle est l'opacité référentielle.

Q : Toutes les fonctions en mathématiques sont-elles référentiellement transparentes ?


R : Oui, toutes les fonctions mathématiques sont référentiellement transparentes parce qu'une fonction mathématique ne peut que prendre des valeurs en entrée et recracher une valeur en sortie.

Q : Comment la transparence référentielle aide-t-elle les programmeurs et les compilateurs ?


R : La transparence référentielle permet aux programmeurs et aux compilateurs de considérer le code comme un système de réécriture - quelque chose qui prend une expression et la remplace par quelque chose d'autre. Cela permet notamment de prouver que le programme ou le code est correct, de simplifier un algorithme, de faciliter la modification du code tout en étant sûr qu'il fait ce qu'il est censé faire, et d'accélérer l'exécution du code ou d'utiliser moins de mémoire.

Q : Quelles sont les techniques utilisées pour accélérer l'exécution d'un code ou utiliser moins de mémoire ?


R : Parmi les techniques utilisées pour accélérer l'exécution du code ou utiliser moins de mémoire, on peut citer la mémorisation (enregistrer les réponses après la première fois), l'élimination des sous-expressions communes (déterminer s'il vaut la peine de combiner deux parties du code qui sont identiques), l'évaluation paresseuse (ne pas trouver la réponse tant que le code n'en a pas vraiment besoin) et la parallélisation (travailler sur plusieurs problèmes en même temps).

Q : Y a-t-il une différence entre les fonctions en programmation et celles en mathématiques ?


R:Oui, il y a une différence entre les fonctions en programmation et celles en mathématiques - En programmation, une fonction peut aussi trouver le jour de l'année ou imprimer un message à l'écran, alors que ce n'est pas possible avec les fonctions mathématiques.

AlegsaOnline.com - 2020 / 2023 - License CC3