Przejrzystość referencyjna

Przezroczystość referencyjna jest cechą części programów komputerowych. Część programu nazywana jest "przeźroczystością referencyjną", jeśli można ją zastąpić wartością, którą oddaje bez zmiany zachowania programu. Funkcja przezroczystości referencyjnej musi być czysta - musi zawsze dawać to samo wyjście, jeśli pobiera to samo wejście, i nie może mieć żadnych skutków ubocznych - części programu, które wykonują akcję inną niż zwrócenie wartości. Przeciwieństwem przezroczystości referencyjnej jest nieprzezroczystość referencyjna.

W matematyce wszystkie funkcje są referencyjnie przejrzyste, ponieważ funkcja matematyczna może tylko przyjmować wartości i wypluwać wartość. W programowaniu nie zawsze jest to prawdą - funkcja może również dowiedzieć się, jaki jest dzień w roku, lub wydrukować wiadomość na ekranie. Z powodu tej różnicy, niektórzy używają innych nazw dla funkcji w programowaniu, np. procedur.

Przejrzystość referencyjna pozwala programistom i kompilatorom myśleć o kodzie jako o systemie przepisywania - o czymś, co bierze wyrażenie i zastępuje je czymś innym. Może to pomóc w kilku zadaniach, takich jak:

  • Udowodnienie, że program lub kod jest poprawny - że robi dokładnie to, co powinien, bez względu na wszystko.
  • Uproszczenie algorytmu.
  • Ułatwiając zmianę kodu, a jednocześnie będąc pewnym, że robi to, co do niego należy.
  • Sprawia, że kod działa szybciej lub w sposób, który zużywa mniej pamięci.

Ostatnie zadanie można wykonać na kilka sposobów - najbardziej znane to zapamiętywanie (zapisywanie odpowiedzi za pierwszym razem), wspólne eliminowanie podwyrażenia (ustalenie, czy warto łączyć dwie części kodu, które są takie same), leniwa ocena (nie znalezienie odpowiedzi, dopóki kod nie będzie jej naprawdę potrzebował), oraz paralelizacja (praca nad wieloma problemami jednocześnie).

Pytania i odpowiedzi

P: Co to jest przezroczystość referencyjna?


O: Przezroczystość referencyjna to cecha części programów komputerowych, w których część programu może być zastąpiona wartością, którą oddaje, bez zmiany zachowania programu.

P: Co jest przeciwieństwem przezroczystości referencyjnej?


O: Przeciwieństwem referencjalnej przejrzystości jest referencjalna nieprzezroczystość.

P: Czy wszystkie funkcje w matematyce są referencyjnie przezroczyste?


O: Tak, wszystkie funkcje w matematyce są referencyjnie przejrzyste, ponieważ funkcja matematyczna może tylko przyjmować wartości i wyrzucać wartości.

P: Jak przejrzystość referencyjna pomaga programistom i kompilatorom?


O: Przezroczystość referencyjna pozwala programistom i kompilatorom myśleć o kodzie jako o systemie przepisywania - czymś, co bierze wyrażenie i zastępuje je czymś innym. Pomaga to w takich zadaniach, jak udowodnienie, że program lub kod jest poprawny, uproszczenie algorytmu, ułatwienie zmiany kodu przy zachowaniu pewności, że robi on to, co powinien, oraz przyspieszenie działania kodu lub zmniejszenie zużycia pamięci.

P: Jakie są niektóre techniki stosowane w celu przyspieszenia działania kodu lub zmniejszenia zużycia pamięci?


O: Niektóre techniki stosowane w celu przyspieszenia działania kodu lub zmniejszenia zużycia pamięci to memoizacja (zapisywanie odpowiedzi po pierwszym razie), eliminacja wspólnych podwyrażeń (sprawdzanie, czy warto połączyć dwie części kodu, które są takie same), leniwa ewaluacja (nie znajdowanie odpowiedzi, dopóki kod naprawdę jej nie potrzebuje) i paralelizacja (praca nad wieloma problemami w tym samym czasie).

P: Czy istnieje jakaś różnica między funkcjami w programowaniu w porównaniu z funkcjami w matematyce?


O: Tak, istnieje różnica między funkcjami w programowaniu a funkcjami w matematyce - W programowaniu funkcja może również dowiedzieć się, jaki jest dzień roku lub wydrukować wiadomość na ekranie, podczas gdy nie jest to możliwe w przypadku funkcji matematycznych.

AlegsaOnline.com - 2020 / 2023 - License CC3