Inhaltsverzeichnis:
Definition - Was bedeutet Thunk?
Ein Thunk ist im allgemeinen Computerkontext ein Teil eines maschinengenerierten Codes auf niedriger Ebene, der die Details eines Softwaresystems implementiert. Es ist eine der folgenden:
- Ein Teil des Codes, der eine verzögerte Berechnung durchführt
- Ein Merkmal einer Implementierung einer virtuellen Funktionstabelle
- Eine Zuordnung von Maschinendaten von einem systemspezifischen Formular zu einem anderen, um Kompatibilitätsprobleme zu beheben
Techopedia erklärt Thunk
Die Konzepte von Thunk tauchten Anfang 1961 auf. Es ist eine Berechnung, die einen Wert des Arguments zurückgibt, wenn sie ausgeführt wird. Ein Call by Need ersetzt einen Thunk nach der ersten Ausführung durch seinen Rückgabewert. Sprachen mit später Bindung haben eine Laufzeitsuche, die auf Berechnungen basiert, die von Thunk durchgeführt werden.
Nullary Functions (Funktionen, die keine Argumente annehmen) werden in der funktionalen Programmierung als Thunk bezeichnet. Thunks simulieren eine verzögerte Auswertung und verzögern die Berechnung der Funktionsargumente. Diese Funktionen zwingen die Thunks weiter, tatsächliche Werte zu erhalten. Thunk kann natürlich auch bei der Implementierung von konstanten Funktionen in der Programmierung höherer Ordnung auftreten.
Compiler objektorientierter Sprachen wie C ++ generieren Funktionen, die als Thunks bezeichnet werden. Sie optimieren virtuelle Funktionsaufrufe bei virtuellen oder mehrfachen Vererbungen.
Einige Instanzen von verschiebbarem Code verwenden lokale Thunks, um Bibliotheksfunktionen aufzurufen. Dynamischer Bibliotheksaufruf im Code springt zu Thunks in einer Sprungtabelle, die weiter durch Funktionen ersetzt wird, die die betreffende Bibliothek laden oder an eine geeignete Stelle in einer bereits geladenen Bibliothek verschoben werden. Ein Thunk in diesem Bereich berechnet also zuvor berechnete und zwischengespeicherte Werte oder gibt diese zurück. Thunks werden in softwarebasierten virtuellen Speichersystemen verwendet, um eine Zuordnung von einer virtuellen zu einer physischen Adresse vorzunehmen. Das Erstellen einer virtuellen 16-Bit-DOS-Maschine in einem 32-Bit-Betriebssystem wird als Thunking bezeichnet und gewährleistet die Abwärtskompatibilität mit Anwendungen, die alte Systemaufrufe verwenden.
Flat Thunks verwenden Thunks, die Aufrufe von 32-Bit-Code in 16-Bit-Code übersetzen. Ein Zwischencode übersetzt die Speicheradresse zwischen Plattformen. Microsoft hat eine eigene Thunking-Ebene namens Win32s, mit der 32-Bit-Windows-Anwendungen unter 16-Bit-Windows ausgeführt werden können. Die 64-Bit-Windows-Version bietet auch eine Thunking-Ebene, WoW64, mit der 32-Bit-Windows-Anwendungen verwendet werden können.
