Trasparenza referenziale

La trasparenza referenziale è una caratteristica di parti di programmi per computer. Una parte di un programma è chiamata "trasparente referenziale" se può essere sostituita con il valore che restituisce senza modificare il comportamento del programma. Una funzione di trasparenza referenziale deve essere pura - deve sempre dare lo stesso output se prende lo stesso input, e non deve avere effetti collaterali - parti del programma che eseguono un'azione diversa da quella di restituire un valore. L'opposto della trasparenza referenziale è l'opacità referenziale.

In matematica, tutte le funzioni sono referenzialmente trasparenti, perché una funzione matematica può solo prendere valori e sputarne uno. Nella programmazione, questo non è sempre vero - una funzione potrebbe anche scoprire che giorno dell'anno è, o stampare un messaggio sullo schermo. A causa di questa differenza, alcune persone usano altri nomi per le funzioni in programmazione, come le procedure.

La trasparenza referenziale permette ai programmatori e ai compilatori di pensare al codice come a un sistema di riscrittura - qualcosa che prende un'espressione e la sostituisce con qualcos'altro. Questo può aiutare in diversi compiti, come ad esempio:

  • Dimostrare che il programma o il codice è corretto - che fa esattamente quello che dovrebbe fare, non importa cosa.
  • Rendere un algoritmo più semplice.
  • Rendere più facile cambiare il codice pur essendo sicuri che faccia quello che deve fare.
  • Far girare il codice più velocemente o in modo da consumare meno memoria.

Ci sono diversi modi di fare l'ultimo compito - i più noti sono la memorizzazione (salvare le risposte dopo la prima volta), la comune eliminazione delle sottoespressioni (capire se vale la pena combinare due parti del codice che sono uguali), la valutazione pigra (non trovare la risposta fino a quando il codice non ne ha veramente bisogno), e la parallelizzazione (lavorare su più problemi allo stesso tempo).

Domande e risposte

D: Che cos'è la trasparenza referenziale?


R: La trasparenza referenziale è una caratteristica delle parti dei programmi informatici in cui una parte del programma può essere sostituita con il valore che restituisce senza modificare il comportamento del programma.

D: Qual è il contrario della trasparenza referenziale?


R: Il contrario della trasparenza referenziale è l'opacità referenziale.

D: Tutte le funzioni in matematica sono referenzialmente trasparenti?


R: Sì, tutte le funzioni in matematica sono trasparenti dal punto di vista referenziale, perché una funzione matematica può solo ricevere valori in entrata e sputare un valore in uscita.

D: In che modo la trasparenza referenziale aiuta i programmatori e i compilatori?


R: La trasparenza referenziale consente ai programmatori e ai compilatori di pensare al codice come a un sistema di riscrittura, qualcosa che prende un'espressione e la sostituisce con qualcos'altro. Questo aiuta a svolgere compiti come dimostrare che il programma o il codice è corretto, rendere un algoritmo più semplice, facilitare la modifica del codice pur essendo sicuri che faccia ciò che deve fare, e rendere il codice più veloce o utilizzare meno memoria.

D: Quali sono alcune tecniche utilizzate per rendere il codice più veloce o per utilizzare meno memoria?


R: Alcune tecniche utilizzate per rendere il codice più veloce o per utilizzare meno memoria includono la memorizzazione (salvare le risposte dopo la prima volta), l'eliminazione delle sottoespressioni comuni (capire se vale la pena combinare due parti del codice che sono uguali), la valutazione pigra (non trovare la risposta fino a quando il codice non ne ha veramente bisogno) e la parallelizzazione (lavorare su più problemi allo stesso tempo).

D: C'è qualche differenza tra le funzioni nella programmazione rispetto a quelle della matematica?


R:Sì, c'è una differenza tra le funzioni nella programmazione rispetto a quelle nella matematica - Nella programmazione, una funzione può anche scoprire che giorno dell'anno è o stampare un messaggio sullo schermo, mentre questo non è possibile con le funzioni matematiche.

AlegsaOnline.com - 2020 / 2023 - License CC3