Дом развитие Thunk - определение из техопедии

Thunk - определение из техопедии

Оглавление:

Anonim

Определение - Что означает Thunk?

Thunk в общем вычислительном контексте - это фрагмент низкоуровневого машинно-генерируемого кода, который реализует детали программной системы. Это одно из следующего:

  1. Часть кода, выполняющая отложенное вычисление
  2. Особенность реализации виртуальной таблицы функций
  3. Отображение машинных данных из одной системной формы в другую для проблем совместимости

Техопедия объясняет Thunk

Понятия thunk появились в начале 1961 года. Это вычисление, возвращающее значение аргумента при его выполнении. Вызов по необходимости заменяет thunk на возвращаемое значение после первого выполнения. Языки с поздним связыванием имеют поиск во время выполнения, основанный на вычислениях, выполненных thunk.


Нулевые функции (функции, которые не принимают аргументов) в функциональном программировании называются thunk. Thunks имитирует ленивую оценку и задерживает вычисление аргумента функции. Эти функции дополнительно заставляют thunks получать фактические значения. Thunk также может появляться естественным образом при реализации постоянных функций в программировании высокого порядка.


Компиляторы объектно-ориентированных языков, таких как C ++, генерируют функции, называемые thunks. Они оптимизируют вызовы виртуальных функций при наличии виртуального или множественного наследования.


Некоторые экземпляры перемещаемого кода используют локальные блоки управления для вызова функций библиотеки. Динамический вызов библиотеки в коде переходит к группам в таблице переходов, которая затем заменяется функциями, загружающими соответствующую библиотеку, или перемещается в подходящую точку в уже загруженной библиотеке. Таким образом, thunk в этой области вычисляет или возвращает ранее вычисленные и кэшированные значения. Thunks используются в программных системах виртуальной памяти для преобразования виртуальных адресов в физические. Создание 16-разрядной виртуальной машины DOS внутри 32-разрядной ОС называется thunking и обеспечивает обратную совместимость с приложениями, использующими старые системные вызовы.


Простые преобразователи используют преобразователи, переводящие вызовы из 32-разрядного кода в 16-разрядный код. Промежуточный код переводит адрес памяти между платформами. У Microsoft есть громадный слой под названием Win32s, который позволяет 32-разрядным приложениям Windows работать на 16-разрядных Windows. В 64-разрядной версии Windows также имеется слой WoW64, который позволяет использовать 32-разрядные приложения Windows.

Thunk - определение из техопедии