Referenciális átláthatóság

A hivatkozási átláthatóság a számítógépes programok részeinek jellemzője. Egy program egy részét akkor nevezzük "referenciálisan átláthatónak", ha az általa visszaadott értékkel helyettesíthető anélkül, hogy a program viselkedése megváltozna. Egy referenciálisan átlátható függvénynek tisztának kell lennie - mindig ugyanazt a kimenetet kell adnia, ha ugyanazt a bemenetet kapja, és nem lehetnek mellékhatásai - a programnak olyan részei, amelyek az érték visszaadása mellett más műveletet is végeznek. A referenciális átláthatóság ellentéte a referenciális átlátszatlanság.

A matematikában minden függvény referenciálisan átlátható, mivel egy matematikai függvény csak értékeket vehet fel és értéket adhat ki. A programozásban ez nem mindig igaz - egy függvény azt is megtudhatja, hogy az év melyik napja van, vagy kiírhat egy üzenetet a képernyőre. E különbség miatt a programozásban egyesek más neveket használnak a függvényekre, például eljárásokat.

A referenciális átláthatóság lehetővé teszi a programozók és a fordítóprogramok számára, hogy a kódra úgy gondoljanak, mint egy újraíró rendszerre - valamire, ami egy kifejezést átvesz és valami mással helyettesít. Ez számos feladatban segíthet, például:

  • Annak bizonyítása, hogy a program vagy a kód helyes - hogy pontosan azt csinálja, amit kell, bármi történjék is.
  • Egy algoritmus egyszerűbbé tétele.
  • Könnyebbé teszi a kód módosítását, miközben biztos lehet benne, hogy az azt teszi, amit tennie kell.
  • A kód gyorsabbá vagy kevesebb memóriát igénylő módon történő futtatása.

Az utóbbi feladat elvégzésére többféle módszer létezik - a legismertebbek a memoizálás (a válaszok elmentése az első alkalom után), a közös részkifejezések kiküszöbölése (annak megállapítása, hogy érdemes-e a kód két azonos részét kombinálni) , a lusta kiértékelés (a válasz megtalálása csak akkor, ha a kódnak valóban szüksége van rá) és a párhuzamosítás (egyszerre több problémán való munka).

Kérdések és válaszok

K: Mi az a referenciális átláthatóság?


V: A referenciális átláthatóság a számítógépes programok részeinek olyan tulajdonsága, amikor a program egy része kicserélhető az általa visszaadott értékkel anélkül, hogy a program viselkedése megváltozna.

K: Mi a referenciális átláthatóság ellentéte?


V: A referenciális átláthatóság ellentéte a referenciális átlátszatlanság.

K: A matematikában minden függvény referenciálisan átlátszó?


V: Igen, a matematikában minden függvény referenciálisan átlátszó, mert egy matematikai függvény csak értékeket vehet be és értéket adhat ki.

K: Hogyan segít a referenciális átláthatóság a programozóknak és a fordítóknak?


V: A referenciális átláthatóság lehetővé teszi a programozók és a fordítóprogramok számára, hogy a kódra úgy gondoljanak, mint egy újraíró rendszerre - valamire, ami egy kifejezést elvesz és valami mással helyettesíti. Ez olyan feladatokban segít, mint például a program vagy a kód helyességének bizonyítása, egy algoritmus egyszerűbbé tétele, a kód könnyebb megváltoztatása, miközben biztosak lehetünk benne, hogy az azt teszi, amit tennie kell, valamint a kód gyorsabbá tétele vagy kevesebb memória felhasználása.

K: Milyen technikákat használnak arra, hogy a kód gyorsabban fusson vagy kevesebb memóriát használjon?


V: A kód gyorsabb futtatására vagy kevesebb memória felhasználására használt technikák közé tartozik a memoizálás (a válaszok elmentése az első alkalom után), a közös részkifejezések kiküszöbölése (annak megállapítása, hogy érdemes-e a kód két azonos részét kombinálni), a lusta kiértékelés (a válasz megtalálása csak akkor, ha a kódnak valóban szüksége van rá) és a párhuzamosítás (több problémán való egyidejű munka).

K: Van-e különbség a programozásban használt függvények között a matematikában használt függvényekhez képest?


V: Igen, van különbség a programozásban használt függvények és a matematikában használt függvények között -A programozásban egy függvény azt is megtudhatja, hogy az év melyik napja van, vagy kiírhat egy üzenetet a képernyőre, míg ez a matematikai függvényeknél nem lehetséges.

AlegsaOnline.com - 2020 / 2023 - License CC3