Thunk

Definição - o que significa Thunk?

Um thunk, em um contexto de computação geral, é uma parte do código gerado por máquina de baixo nível que implementa os detalhes de um sistema de software. É um dos seguintes:

  1. Um trecho de código executando um cálculo atrasado
  2. Um recurso de implementação de uma tabela de função virtual
  3. Um mapeamento de dados de máquina de um formulário específico do sistema para outro para problemas de compatibilidade

Definirtec explica Thunk

Os conceitos de thunk surgiram no início de 1961. É um cálculo que retorna um valor do argumento quando executado. Uma chamada por necessidade substitui uma conversão por seu valor de retorno após a primeira execução. Linguagens com vinculação tardia têm pesquisa em tempo de execução, com base em cálculos realizados por conversão.

Funções nulas (funções que não aceitam argumentos) na programação funcional são chamadas de conversão. Thunks simulam avaliação preguiçosa e atrasam o cálculo do argumento da função. Essas funções forçam ainda mais os thunks a obter valores reais. Thunk também pode aparecer naturalmente na implementação de funções constantes na programação de alta ordem.

Compiladores de linguagens orientadas a objetos, como C ++, geram funções chamadas thunks. Eles otimizam chamadas de função virtual na presença de heranças virtuais ou múltiplas.

Algumas instâncias de código relocável usam thunks locais para chamar funções de biblioteca. A chamada de biblioteca dinâmica no código salta para thunks em uma tabela de salto, que é posteriormente substituída por funções que carregam a biblioteca aplicável ou se move para um ponto adequado em uma biblioteca já carregada. Portanto, uma conversão nesta área calcula ou retorna valores previamente calculados e armazenados em cache. Thunks são usados ​​em sistemas de memória virtual baseados em software para realizar um mapeamento de endereço virtual para endereço físico. A criação de uma máquina DOS virtual de 16 bits dentro de um sistema operacional de 32 bits é chamada de thunking e garante uma compatibilidade com versões anteriores de aplicativos que usam chamadas de sistema antigas.

Thunks simples usam thunks que convertem chamadas de código de 32 bits para código de 16 bits. Um código intermediário traduz o endereço de memória entre as plataformas. A Microsoft tem uma camada thunking própria chamada Win32s, que permite que aplicativos do Windows de 32 bits sejam executados no Windows de 16 bits. A versão do Windows de 64 bits também oferece uma camada de conversão, WoW64, que permite o uso de aplicativos do Windows de 32 bits.

Esta definição foi escrita no contexto da Computação