Obsah:
Definice - Co znamená Thunk?
Thunk, v obecném počítačovém kontextu, je kus strojově generovaného kódu nízké úrovně, který implementuje podrobnosti softwarového systému. Je to jeden z následujících:
- Část kódu provádějící zpožděný výpočet
- Funkce implementace virtuální tabulky funkcí
- Mapování strojních dat z jednoho formuláře specifického pro systém do druhého kvůli problémům s kompatibilitou
Techopedia vysvětluje Thunk
Pojetí thunk se objevila na začátku roku 1961. Je to výpočet, který vrací hodnotu argumentu, když je vykonán. Hovor podle potřeby nahradí thunk jeho vrácenou hodnotou po prvním provedení. Jazyky s pozdní vazbou jsou vyhledávány za běhu na základě výpočtů prováděných thunkem.
Nulové funkce (funkce, které nepřijímají argumenty) ve funkčním programování se označují jako thunk. Thunks simuluje líné vyhodnocení a zpožďuje výpočet argumentů funkce. Tyto funkce dále nutí thunks získat skutečné hodnoty. Thunk se může také přirozeně objevit v implementaci konstantních funkcí ve vysokém pořadí programování.
Kompilátory objektově orientovaných jazyků, jako je C ++, generují funkce nazývané thunks. Optimalizují volání virtuálních funkcí v přítomnosti virtuálních nebo více dědičností.
Některé příklady přemístitelného kódu používají místní thunky k volání funkcí knihovny. Volání dynamické knihovny v kódu přeskočí na thunks ve skokové tabulce, která je dále nahrazena funkcemi načítajícími použitelnou knihovnu nebo přesouvá do vhodného bodu v již načtené knihovně. Thunk v této oblasti vypočítává nebo vrací dříve vypočítané a mezipaměti hodnoty. Thunks se používají v softwarových virtuálních paměťových systémech k provádění mapování z virtuální na fyzickou adresu. Vytvoření 16bitového virtuálního počítače DOS v 32bitovém operačním systému se nazývá thunking a zajišťuje zpětnou kompatibilitu s aplikacemi používajícími stará systémová volání.
Ploché thunky používají thunky, které převádějí hovory z 32bitového kódu na 16bitový kód. Mezilehlý kód překládá adresu paměti mezi platformami. Společnost Microsoft má samotnou vrstvu thunking zvanou Win32s, která umožňuje spuštění 32bitové aplikace systému Windows na 16bitovém systému Windows. 64bitová verze systému Windows také poskytuje vrstvu thunking, WoW64, která umožňuje použití 32bitových aplikací Windows.
