Sommario:
Definizione - Cosa significa Thunk?
Un thunk, in un contesto informatico generale, è un pezzo di codice generato da macchine di basso livello, che implementa i dettagli di un sistema software. È uno dei seguenti:
- Un pezzo di codice che esegue un calcolo ritardato
- Una caratteristica di un'implementazione della tabella delle funzioni virtuali
- Una mappatura dei dati macchina da un modulo specifico di sistema a un altro per problemi di compatibilità
Techopedia spiega Thunk
I concetti di thunk emersero all'inizio del 1961. È un calcolo che restituisce un valore dell'argomento quando eseguito. Una chiamata per necessità sostituisce un thunk con il valore restituito dopo la prima esecuzione. Le lingue con associazione tardiva hanno una ricerca in fase di esecuzione, in base ai calcoli eseguiti da thunk.
Le funzioni nulle (funzioni che non accettano argomenti) nella programmazione funzionale sono chiamate thunk. I thunk simulano la valutazione lenta e ritardano il calcolo dell'argomento della funzione. Queste funzioni obbligano ulteriormente i thunk a ottenere valori reali. Thunk può anche apparire naturalmente nell'implementazione di funzioni costanti nella programmazione di alto ordine.
I compilatori di linguaggi orientati agli oggetti come C ++ generano funzioni chiamate thunk. Ottimizzano le chiamate di funzione virtuale in presenza di eredità virtuali o multiple.
Alcune istanze di codice riposizionabile utilizzano thunk locali per chiamare le funzioni di libreria. La chiamata di libreria dinamica nel codice passa ai thunk in una tabella di salto, che viene ulteriormente sostituita da funzioni che caricano la libreria applicabile o si sposta in un punto adatto in una libreria già caricata. Quindi un thunk in quest'area calcola o restituisce valori precedentemente calcolati e memorizzati nella cache. I thunk vengono utilizzati nei sistemi di memoria virtuale basati su software per eseguire una mappatura dall'indirizzo virtuale a quello fisico. La creazione di una macchina DOS virtuale a 16 bit all'interno di un sistema operativo a 32 bit è denominata thunking e garantisce una retrocompatibilità con le applicazioni che utilizzano chiamate di sistema precedenti.
I thunk piatti usano i thunk che traducono le chiamate da codice a 32 bit a codice a 16 bit. Un codice intermedio traduce l'indirizzo di memoria tra le piattaforme. Microsoft ha un livello thunk di se stesso chiamato Win32s, che consente l'esecuzione di applicazioni Windows a 32 bit su Windows a 16 bit. La versione Windows a 64 bit fornisce anche un layer thunking, WoW64, che consente l'utilizzo di applicazioni Windows a 32 bit.
