A | B | C | D | E | F | G | H | CH | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Vyhodnocovacia stratégia (tiež redukčná stratégia – pojem sa typicky používa vo funkcionálnych jazykoch) v programovacom jazyku je množina pravidiel (väčšinou deterministických), ktorá definuje spôsob vyhodnocovania výrazov. Typicky je dôraz kladený na funkcie a operátory – vyhodnocovacia stratégia definuje kedy a v akom poradí sú vyhodnocované argumenty funkcie, kedy a akým spôsobom sú vo funkcii nahradzované.
Jazyk môže kombinovať niekoľko vyhodnocovacích stratégií. Napríklad C++ kombinuje volanie hodnotou a volanie referenciou. Väčšina jazykov, ktoré sú prevažne striktné, používajú nejakú formu nestriktného vyhodnocovania pre booleovské výrazy a podmienené príkazy.
Striktné vyhodnocovanie
V striktnom vyhodnocovaní sú argumenty funkcie vždy úplne vyhodnotené pred tým ako sú na funkciu aplikované (aplikácia argumentov na funkciu je v imperatívnych jazykoch často označovaná ako volanie funkcie s danými argumentmi).
Volanie hodnotou
Volanie hodnotou je najčastejšia vyhodnocovacia stratégia, používaná napríklad v jazyku C. Pri volaní hodnotou je argument výrazu vyhodnotený a výsledná hodnota je priradená k zodpovedajúcej premennej vo funkcii (obvykle skopírovaním hodnoty na nové miesto v pamäti). Ak je dovolené, aby funkcia, alebo procedúra mohla priradiť hodnoty svojim argumentom, táto hodnota je priradená iba lokálnej kópii. To znamená, že čokoľvek volajúci pomocou argumentov odovzdal funkcii má po vrátení z volania funkcie volajúci v svojom rozsahu platnosti nezmenené.
Volanie referenciou (odkazom)
Volanie referenciou je spôsob vyhodnocovania používaných v niektorých jazykoch (napríklad C++), kde premenné a niektoré iné hodnoty, nazývané l-hodnotou (anglicky l-value), musia vždy odkazovať na nejaké miesto v pamäti. V týchto jazykoch niektoré funkcie ako svoje argumenty akceptujú iba l-hodnoty. S l-hodnotou sa musí vždy zaobchádzať ako s referenciou a musí byť predaná funkcii pomocou hodnoty. Telo funkcie môže potom manipulovať s obsahom referencovanej bunky pamäte, zmenou hodnoty na ktorú l-hodnota ukazuje vo rozsahu platnosti volajúceho.
V jazykoch, ktoré používajú neobmedzované ukazovatele namiesto alebo spolu s referenciami, je volanie adresou variantov k volaniu referenciou, kde referencia je neobmedzený ukazovateľ.
Niektoré jazyky používajú referencie, alebo ukazovatele ako špeciálne hodnoty. Napríklad ML má „ref“ konštruktor, jazyk C intenzívne využíva ukazovatele. V týchto jazykoch je „volanie referenciou“ alebo „volanie adresou“ môže byť použité ako spôsob odovzdania hodnoty referencie, alebo hodnoty ukazovateľa ako argumentu funkcie.
Nestriktné vyhodnocovanie
V nestriktnom vyhodnocovaní nie sú argumenty funkcie vyhodnocované, kým nie sú práve použité pri vyhodnocovaní tela funkcie.
Normálne vyhodnocovanie
Normálne vyhodnocovanie je vyhodnocovacia stratégia, kde je pri aplikovaní funkcie redukovaná tá funkcia, ktorá je najviac vonku, bez toho aby boli vyhodnotené funkčné argumenty. Od volania menom sa líši tým, že sa nevyhodnocuje vnútorné telo neaplikovanej funkcie.
Volanie menom
Vyhodnocovanie volanie menom je zriedka implementované priamo, ale často je použité pri uvažovaní nad teoretickými vlastnosťami programov a programovacích jazykov. Pri vyhodnocovaní volaním menom nie sú argumenty funkcie vôbec vyhodnocované – skôr sú argumenty funkcie priamo nahradené vo funkčnom tele. Keď argument nie je vôbec použitý, tak sa nikdy nevyhodnotí. Keď je argument používaný niekoľkokrát, tak je vždy znovu vyhodnocovaný. Z tohto dôvodu sa sémantika volania menom zvyčajne implementuje volaním podľa potreby.
Volanie podľa potreby
Volanie podľa potreby je memoizovaná vyhodnocovacia verzia volania menom. Keď je prvýkrát vyhodnotený argument funkcie, tak sa jeho hodnota uloží (odtiaľ to memoizovanie). Pri ďalšom vyhodnocovaní sa použije uložená hodnota. Keď je argument používaný dva alebo viackrát, tak je volanie podľa potreby takmer vždy rýchlejšie ako volanie menom. V jazyku, ktorý má „čisté“ výrazy (bez vedľajších efektov), toto dáva rovnaké výsledky ako pri volaní menom.
Volanie podľa potreby sa dá použiť iba v jazykoch, ktoré zaručujú referenčnú transparentnosť – napríklad pri deklaratívnych, alebo funkcionálnych jazykoch. Pri imperatívnych jazykoch toto nie je zaručené na 100% (pretože vyhodnocovanie výrazu závisí na stave, v ktorom sa program nachádza – vo výraze sa môže meniť hodnota globálnej premennej a pri každom vyhodnotení môže mať tento výraz inú hodnotu).
Text je dostupný za podmienok Creative Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších podmienok. Podrobnejšie informácie nájdete na stránke Podmienky použitia.
Architektúra počítača
Bioinformatika
Dátové nosiče
Databázy
Eponymické termíny v informatike
Formálne jazyky
Formálne jazyky a automaty
Geoinformatika
Hardvér
Hypertext
Informácia
Informačné systémy
Informatici
16-bit
32-bit
4-bit
64-bit
8-bit
Adresový priestor
Adresovanie (informatika)
Autorun.inf
Contextual Query Language
Dátové centrum
Dátový záznam
Datacentrum
Dejiny počítačov
Distribuované spracovanie
Dokument (informatika)
Formalizovaný jazyk
Geocentrická súradnicová sústava
Geografický súradnicový systém GIS
Gigahertz
Heterostáza
Hoareova logika
Hospodárska informatika
Inštrukcia (informatika)
Indexovanie
Inferenčný mechanizmus
Informačné a komunikačné technológie
Informačný horizont
Informačný jav
Informačný jazyk
Informačný zdroj
Informatická výchova
Informatika
Informovanie
Internet
IP Multimedia Subsystem
Jednosmerná komunikácia
Kapacita počítačových pamätí
Katedra knižničnej a informačnej vedy Filozofickej fakulty Univerzity Komenského v Bratislave
Klasifikácia počítačových systémov
Knižnica infraštruktúry informačných technológií
Komputerizácia
Komunikačné prostriedky
Kontrolný súčet
Korešpondenčný seminár z programovania
Logging
Manažérstvo informácií
Manažment používateľov
Memoizácia
Metainformácia
Multiplexor
Náhodné číslo
N-gram
Navigácia (informatika)
Nositeľ znaku
NP-úplný problém
Objavovanie znalostí v databázach
Osi súradnicového systému
Overovanie modelov
Oznámenie počítača
Pertinentná informácia
Počítačová bezpečnosť
Počítačová gramotnosť
Polynomiálna transformovateľnosť
Portál:Informačné technológie
Premenná (informatika)
Priama väzba
Problém čitateľa-zapisovateľa
Problém fajčiarov cigariet
Problém obedujúcich filozofov
Problém spiaceho holiča
Promot
Pseudonáhodné číslo
Psychika (informatika)
Reálny čas (počítače)
Redukcia (teoretická informatika)
Redundantná informácia
Rekurzia (informatika)
Replikácia dát
Riešenie problému
Rozšírená realita
Rozhranie (interface)
Runtime error
Súbežnosť
Sťahovanie hudby
Spätná väzba (všeobecne)
Spracovanie dát
Spracovanie informácií
Spracovanie textu
Stav (informatika)
Syntaktická analýza
Systém manažérstva obsahu (všeobecne)
Teória algoritmov
Teória formálnych jazykov
Teória umelej inteligencie
Teória vypočítateľnosti
Teoretická informatika
Terminálová udalosť
The Art of Computer Programming
Token (text)
Typografia (umenie)
Udalosť (informatika)
Umelá inteligencia
Unifikovaný signál
Výpočtová zložitosť
Výpočtové náklady
Výraz (informatika)
Výroba s využitím počítača
Výstupné slovo
Voľná premenná
Vyhľadávací jazyk
Vyhodnocovacia stratégia
Vyrovnávacia pamäť
Záchrana dát
Zoznam slotov a soketov spoločnosti AMD
Text je dostupný za podmienok Creative
Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších
podmienok.
Podrobnejšie informácie nájdete na stránke Podmienky
použitia.
www.astronomia.sk | www.biologia.sk | www.botanika.sk | www.dejiny.sk | www.economy.sk | www.elektrotechnika.sk | www.estetika.sk | www.farmakologia.sk | www.filozofia.sk | Fyzika | www.futurologia.sk | www.genetika.sk | www.chemia.sk | www.lingvistika.sk | www.politologia.sk | www.psychologia.sk | www.sexuologia.sk | www.sociologia.sk | www.veda.sk I www.zoologia.sk