Sommario:
- Definizione - Cosa significa trasparenza referenziale?
- Techopedia spiega la trasparenza referenziale
Definizione - Cosa significa trasparenza referenziale?
La trasparenza referenziale è una proprietà di una parte specifica di un programma o di un linguaggio di programmazione, in particolare linguaggi di programmazione funzionali come Haskell e R. Un'espressione in un programma si dice che sia referenzialmente trasparente se può essere sostituita con il suo valore e il comportamento risultante è lo stesso di prima del cambiamento. Ciò significa che il comportamento del programma non viene modificato indipendentemente dal fatto che l'input utilizzato sia un riferimento o un valore effettivo a cui punta il riferimento.
Techopedia spiega la trasparenza referenziale
La trasparenza referenziale ha le sue radici nella filosofia analitica, che è un ramo della filosofia che studia costrutti del linguaggio naturale, argomenti e affermazioni basati sui metodi della matematica e della logica e ha poco a che fare con la programmazione, sebbene sia stata adottata dagli informatici.
Il concetto è semplice, il "referente", la cosa a cui si riferisce un'espressione, può essere usato per sostituire il "referrer" senza cambiare il significato dell'espressione. Ad esempio, l'affermazione "Il padre di Luke è un uomo malvagio", "Il padre di Luke" fa riferimento a "Darth Vader" nella tradizione di Star Wars. Quindi l'affermazione è referenzialmente trasparente poiché "Il padre di Luke" può essere sostituito in qualsiasi momento con "Darth Vader" e l'affermazione non cambierebbe di significato. Tuttavia, nell'affermazione "il pubblico non sapeva fino a quando" The Empire Strikes Back "che il padre di Luke è in realtà Darth Vader" non è un'espressione referenzialmente trasparente poiché se "il padre di Luke" viene sostituito con "Darth Vader" l'espressione diventa "il il pubblico non sapeva fino a "The Empire Strikes Back" che Darth Vader è in realtà Darth Vader ", che ha un significato completamente diverso.
Per quanto riguarda la programmazione, il concetto è a prima vista lo stesso, ma molti filosofi non sono d'accordo sul fatto che il concetto sia implementato o ripreso bene nei linguaggi di programmazione. Ma nella programmazione generale, ciò significa semplicemente che un'espressione può essere sostituita dal valore risultante senza influire sul comportamento del programma. Ad esempio, la funzione plusOne (x) aggiunge semplicemente una a qualunque sia il valore di x, quindi se sappiamo che x = 5 possiamo tranquillamente sostituire la funzione con il valore 6 in un'espressione che produce lo stesso comportamento quando si utilizza plusOne (X). Ma se all'interno dell'espressione è presente una variabile esterna controllata esternamente, ad esempio nella funzione plusY (x) dove Y all'interno della funzione è controllata esternamente, il comportamento risultante potrebbe non essere lo stesso - in questo caso non è un riferimento referenziale espressione.
