Innehållsförteckning:
Definition - Vad betyder Thunk?
En thunk, i ett allmänt beräkningsförhållande, är en bit av maskingenererad kod på låg nivå, som implementerar detaljerna i ett programvarusystem. Det är ett av följande:
- En kodkod som utför en försenad beräkning
- En funktion i implementeringen av en virtuell funktionstabell
- En kartläggning av maskindata från en systemspecifik form till en annan för kompatibilitetsproblem
Techopedia förklarar Thunk
Begreppen tun uppstod i början av 1961. Det är en beräkning som returnerar ett värde på argumentet när de körs. Ett samtal efter behov ersätter en thunk med dess returvärde efter den första exekveringen. Språk med sen bindning har uppslag i körtid, baserat på beräkningar utförda av thunk.
Nullaryfunktioner (funktioner som inte tar argument) i funktionell programmering kallas thunk. Thunks simulerar lat utvärdering och försenar beräkningen av funktionsargument. Dessa funktioner tvingar tonarna ytterligare för att få verkliga värden. Thunk kan också uppträda naturligt vid implementeringen av konstantfunktioner i programmering i hög ordning.
Kompilatorer av objektorienterade språk som C ++ genererar funktioner som benämns thunks. De optimerar virtuella funktionssamtal i närvaro av virtuella eller flera arv.
Vissa fall av flyttbar kod använder lokala thunks för att ringa biblioteksfunktioner. Dynamiskt biblioteksamtal i koden hoppar till tonar i ett hoppbord, som vidare ersätts av funktioner som laddar tillämpligt bibliotek eller flyttar till en lämplig punkt i ett redan laddat bibliotek. Så en thunk i detta område beräknar eller returnerar tidigare beräknade och cachade värden. Thunks används i mjukvarubaserade virtuella minnessystem för att utföra en kartläggning från virtuell till fysisk adress. Att skapa en 16-bitars virtuell DOS-maskin i ett 32-bitars OS kallas thunking och säkerställer en bakåtkompatibilitet med applikationer som använder gamla systemsamtal.
Flat thunks använder thunks som översätter samtal från 32-bitars kod till 16-bitars kod. En mellankod översätter minnesadress mellan plattformar. Microsoft har ett sjunkande skikt av sig själv som kallas Win32s, som tillåter 32-bitars Windows-applikation att köras på 16-bitars Windows. 64-bitars Windows-versionen ger också ett thunking-lager, WoW64, som tillåter användning av 32-bitars Windows-applikationer.
