Thunk - online puzzle

V počítačovém programování je thunk podprogram, který se používá k vložení dalšího výpočtu do jiného podprogramu. Thunky se primárně používají ke zpoždění výpočtu, dokud není nutný jeho výsledek, nebo k vložení operací na začátek nebo na konec druhého podprogramu. Mají celou řadu dalších aplikací při generování kódu kompilátoru a modulárním programování.

Termín vznikl jako vtipný minulý podíl „přemýšlení“. To znamená, že „hodnota thunk“ je k dispozici po promyšlení nebo provedení výpočtové rutiny.

Pozadí

V prvních letech výzkumu kompilátoru došlo k rozsáhlým experimentům s různými strategiemi hodnocení. Klíčovou otázkou bylo, jak zkompilovat podprogramové volání, pokud argumenty mohou být libovolné matematické výrazy spíše než konstanty. Jeden přístup, známý jako "call by value", vypočítá všechny argumenty před voláním a pak předá výsledné hodnoty podprogramu. V konkurenčním přístupu "call by name" subrutina obdrží nevyhodnocený argumentový argument a musí jej vyhodnotit.

Jednoduchá implementace "volání podle jména" by mohla nahradit kód výrazu argumentu za každý vzhled odpovídajícího parametru v podprogramu, ale to může produkovat více verzí podprogramu a více kopií expresního kódu.

Tyto Croods online puzzleTyto Croods skládačky onlineTyto Croods online puzzleTyto Croods online puzzleTyto Croods online puzzleTyto Croods skládačky onlineTyto Croods online puzzleTyto Croods online puzzleTyto Croods skládačky onlineTyto Croods skládačky onlineTyto Croods skládačky online