Domov vývoj Čo je to referenčná transparentnosť? - definícia z technológie

Čo je to referenčná transparentnosť? - definícia z technológie

Obsah:

Anonim

Definícia - Čo znamená referenčná transparentnosť?

Referenčná transparentnosť je vlastnosť konkrétnej časti programu alebo programovacieho jazyka, najmä funkčných programovacích jazykov ako Haskell a R. Výraz v programe sa považuje za referenčne transparentný, ak ho možno nahradiť jeho hodnotou a výsledné správanie je rovnako ako pred zmenou. To znamená, že správanie programu sa nezmení bez ohľadu na to, či je použitý vstup referenciou alebo skutočnou hodnotou, na ktorú odkaz odkazuje.

Techopedia vysvetľuje referenčnú transparentnosť

Referenčná transparentnosť má korene v analytickej filozofii, ktorá je odvetvím filozofie, ktorá študuje konštrukty, argumenty a výroky prirodzeného jazyka založené na metódach matematiky a logiky a má málo spoločného s programovaním, hoci bola prijatá počítačovými vedcami.

Koncept je jednoduchý, „referent“, vec, na ktorú sa výraz vzťahuje, sa môže použiť na nahradenie „referrera“ bez zmeny významu výrazu. Napríklad vyhlásenie „Lukášov otec je zlý muž“, „Lukášov otec“ odkazuje v povesti Star Wars na „Darth Vader“. Toto tvrdenie je preto transparentné, pretože „Lukeov otec“ je možné kedykoľvek nahradiť „Darth Vaderom“ a jeho význam by sa nezmenil. Avšak vo výroke „publikum nevedelo, až kým sa„ Ríša nezasiahne “, že Lukášov otec je vlastne Darth Vader, nie je referenčne transparentným výrazom, pretože ak je„ Lukášov otec “nahradený výrazom„ Darth Vader “, výraz sa stáva„ publikum nevedelo až do „The Empire Strikes Back“, že Darth Vader je vlastne Darth Vader, „ktorý má úplne iný význam.

Pokiaľ ide o programovanie, tento koncept je na prvý pohľad rovnaký, ale mnohí filozofi nesúhlasia s tým, aby sa tento koncept v programovacích jazykoch implementoval alebo preniesol dobre. Vo všeobecnosti to však znamená, že výraz možno nahradiť jeho výslednou hodnotou bez toho, aby to malo vplyv na správanie programu. Napríklad funkcia plusOne (x) jednoducho pridá jednu k akejkoľvek hodnote x, takže ak vieme, že x = 5, môžeme bezpečne nahradiť funkciu hodnotou 6 vo výraze, ktorý pri použití plusOne poskytne rovnaké správanie. (X). Ak je však vo výraze, ktorý je externe regulovaný, externá premenná, povedzme vo funkcii plusY (x), kde Y v rámci funkcie je externe riadené, výsledné správanie nemusí byť rovnaké - v tomto prípade to nie je referenčne transparentný výrazom.

Čo je to referenčná transparentnosť? - definícia z technológie