Inhoudsopgave:
Definitie - Wat betekent Thunk?
Een thunk, in een algemene computercontext, is een stuk door een machine gegenereerde code op laag niveau, die de details van een softwaresysteem implementeert. Het is een van de volgende:
- Een stukje code dat een vertraagde berekening uitvoert
- Een functie van een virtuele functietabelimplementatie
- Een mapping van machinegegevens van het ene systeemspecifieke formulier naar het andere voor compatibiliteitsproblemen
Techopedia legt Thunk uit
De concepten thunk ontstonden begin 1961. Het is een berekening die de waarde van het argument retourneert wanneer het wordt uitgevoerd. Een call by need vervangt een thunk door zijn retourwaarde na de eerste uitvoering. Talen met late binding worden opgezocht tijdens runtime, op basis van berekeningen uitgevoerd door thunk.
Nullary functies (functies die geen argumenten aannemen) in functioneel programmeren worden thunk genoemd. Thunks simuleren luie evaluatie en vertragen de berekening van het functieargument. Deze functies dwingen thunks verder om werkelijke waarden te verkrijgen. Thunk kan ook van nature voorkomen bij de implementatie van constante functies bij het programmeren van hoge orders.
Compilers van objectgeoriënteerde talen zoals C ++ genereren functies die thunks worden genoemd. Ze optimaliseren virtuele functie-oproepen in aanwezigheid van virtuele of meerdere overervingen.
Sommige instanties van verplaatsbare code gebruiken lokale thunks om bibliotheekfuncties aan te roepen. Dynamische bibliotheekoproep in de code springt naar thunks in een springtabel, die verder wordt vervangen door functies die de betreffende bibliotheek laden of naar een geschikt punt in een reeds geladen bibliotheek gaan. Dus een thunk in dit gebied berekent of retourneert eerder berekende en in de cache opgeslagen waarden. Thunks worden gebruikt in op software gebaseerde virtuele geheugensystemen om een mapping uit te voeren van virtueel naar fysiek adres. Het creëren van een 16-bits virtuele DOS-machine in een 32-bits besturingssysteem wordt thunking genoemd en zorgt voor een achterwaartse compatibiliteit met applicaties die oude systeemoproepen gebruiken.
Platte thunks gebruiken thunks die gesprekken vertalen van 32-bits code naar 16-bits code. Een tussenliggende code vertaalt het geheugenadres tussen platforms. Microsoft heeft zelf een dunner wordende laag genaamd Win32s, waarmee 32-bits Windows-toepassingen op 16-bits Windows kunnen worden uitgevoerd. De 64-bit Windows-versie biedt ook een dunkerlaag, WoW64, die het gebruik van 32-bit Windows-toepassingen toestaat.