Accueil Développement Qu'est-ce que la transparence référentielle? - définition de techopedia

Qu'est-ce que la transparence référentielle? - définition de techopedia

Table des matières:

Anonim

Définition - Que signifie la transparence référentielle?

La transparence référentielle est la propriété d'une partie spécifique d'un programme ou d'un langage de programmation, en particulier les langages de programmation fonctionnels comme Haskell et R. Une expression dans un programme est dite référentiellement transparente si elle peut être remplacée par sa valeur et le comportement résultant est comme avant le changement. Cela signifie que le comportement du programme n'est pas modifié, que l'entrée utilisée soit une référence ou une valeur réelle vers laquelle la référence pointe.

Techopedia explique la transparence référentielle

La transparence référentielle a ses racines dans la philosophie analytique, qui est une branche de la philosophie qui étudie les constructions, les arguments et les énoncés du langage naturel basés sur les méthodes des mathématiques et de la logique et a peu à voir avec la programmation, bien qu'elle ait été adoptée par les informaticiens.

Le concept est simple, le «référent», la chose à laquelle une expression fait référence, peut être utilisé pour remplacer le «référent» sans changer le sens de l'expression. Par exemple, la déclaration «Le père de Luke est un homme mauvais», «Le père de Luke» fait référence à «Dark Vador» dans la tradition de Star Wars. La déclaration est donc référentiellement transparente puisque "le père de Luke" peut être remplacé à tout moment par "Dark Vador" et la déclaration ne changera pas de sens. Cependant, dans la déclaration "le public ne savait pas jusqu'à ce que" L'Empire contre-attaque "que le père de Luke soit en réalité Dark Vador" n'est pas une expression référentiellement transparente car si "le père de Luke" est remplacé par "Dark Vador" l'expression devient "le le public ne savait pas avant "L'Empire contre-attaque" que Dark Vador est en fait Dark Vador ", qui a une signification entièrement différente.

En ce qui concerne la programmation, le concept est à première vue le même, mais de nombreux philosophes ne sont pas d'accord pour dire que le concept est mis en œuvre ou bien appliqué dans les langages de programmation. Mais en programmation générale, cela signifie simplement qu'une expression peut être remplacée par sa valeur résultante sans avoir d'effet sur le comportement du programme. Par exemple, la fonction plusOne (x) ajoute simplement un à quelle que soit la valeur de x, donc si nous savons que x = 5, nous pouvons remplacer en toute sécurité la fonction par la valeur 6 dans une expression qui donne le même comportement lors de l'utilisation de plusOne (X). Mais s'il y a une variable externe dans l'expression qui est contrôlée de manière externe, disons dans la fonction plusY (x) où Y dans la fonction est contrôlée de manière externe, le comportement résultant peut ne pas être le même - dans ce cas, ce n'est pas un référentiel transparent expression.

Qu'est-ce que la transparence référentielle? - définition de techopedia