Thunk

Définition - Que signifie Thunk?

Un thunk, dans un contexte informatique général, est un morceau de code généré par une machine de bas niveau qui implémente les détails d'un système logiciel. C'est l'un des suivants:

  1. Un morceau de code effectuant un calcul retardé
  2. Une fonctionnalité d'une implémentation de table de fonction virtuelle
  3. Un mappage des données machine d'un formulaire spécifique au système à un autre pour les problèmes de compatibilité

Definir Tech explique Thunk

Les concepts de thunk sont apparus au début de 1961. Il s'agit d'un calcul retournant une valeur de l'argument lorsqu'il est exécuté. Un appel par besoin remplace un thunk par sa valeur de retour après la première exécution. Les langages avec une liaison tardive ont une recherche au moment de l'exécution, basée sur les calculs effectués par thunk.

Les fonctions nulles (fonctions qui ne prennent pas d'arguments) dans la programmation fonctionnelle sont appelées thunk. Thunks simule une évaluation paresseuse et retarde le calcul de l'argument de la fonction. Ces fonctions forcent encore plus les thunks à obtenir des valeurs réelles. Thunk peut également apparaître naturellement dans la mise en œuvre de fonctions constantes dans la programmation d'ordre élevé.

Les compilateurs de langages orientés objet tels que C ++ génèrent des fonctions appelées thunks. Ils optimisent les appels de fonction virtuelle en présence d'héritages virtuels ou multiples.

Certaines instances de code relocalisable utilisent des thunks locaux pour appeler des fonctions de bibliothèque. L'appel de bibliothèque dynamique dans le code saute aux thunks dans une table de saut, qui est ensuite remplacée par des fonctions chargeant la bibliothèque applicable ou se déplaçant vers un point approprié dans une bibliothèque déjà chargée. Ainsi, un thunk dans cette zone calcule ou renvoie les valeurs précédemment calculées et mises en cache. Les Thunks sont utilisés dans les systèmes de mémoire virtuelle basés sur des logiciels pour effectuer un mappage d'une adresse virtuelle à une adresse physique. La création d'une machine DOS virtuelle 16 bits dans un système d'exploitation 32 bits s'appelle thunking et garantit une compatibilité descendante avec les applications utilisant d'anciens appels système.

Les thunks plats utilisent des thunks pour traduire les appels de code 32 bits en code 16 bits. Un code intermédiaire traduit l'adresse mémoire entre les plates-formes. Microsoft a une couche thunking en soi appelée Win32s, qui permet à une application Windows 32 bits de s'exécuter sur Windows 16 bits. La version Windows 64 bits fournit également une couche thunking, WoW64, qui permet d'utiliser des applications Windows 32 bits.

Cette définition a été écrite dans le contexte de l'informatique