Съдържание:
Определение - Какво означава Thunk?
Шнук, в общ контекст на изчисленията, е част от машинно генериран код от ниско ниво, който реализира детайлите на софтуерната система. Тя е едно от следните:
- Част от код, изпълняващ изчисления със забавяне
- Характеристика на реализацията на виртуална таблица с функции
- Съпоставяне на машинни данни от една специфична за системата форма за друга за проблеми със съвместимостта
Техопедия обяснява Тунк
Понятията „thunk“ се появяват в началото на 1961 г. Това е изчисление, което връща стойност на аргумента при изпълнение. Обаждането по нужда замества парче от връщащата му се стойност след първото изпълнение. Езиците с късно свързване имат търсене по време на изпълнение, въз основа на изчисления, извършени от thunk.
Nullary функции (функции, които не взимат аргументи) във функционалното програмиране се наричат бонус. Thunks симулират мързелива оценка и забавят изчисляването на аргумента на функцията. Тези функции допълнително принуждават гроздетата да получат реални стойности. Thunk може също така да се появи естествено при изпълнението на постоянни функции при програмиране с висок ред.
Компилаторите на обектно ориентирани езици, като C ++, генерират функции, наречени thunks. Те оптимизират виртуални обаждания с функция при наличие на виртуални или множество наследства.
Някои случаи на код за преместване използват локални разговори за извикване на библиотечни функции. Динамичното обаждане на библиотеката в кода прескача, за да се забие в таблица за скокове, която допълнително се заменя с функции, зареждащи приложимата библиотека или се премества на подходяща точка в вече заредена библиотека. Така едно парче в тази област изчислява или връща предварително изчислени и кеширани стойности. Thunks се използват в софтуерни системи за виртуална памет за извършване на картографиране от виртуален към физически адрес. Създаването на 16-битова виртуална DOS машина в 32-битова ОС се нарича thunking и осигурява обратно съвместимост с приложения, използващи стари системни обаждания.
Плоските бонбони използват thunks, превеждащи обаждания от 32-битов код до 16-битов код. Междинен код превежда адреса на паметта между платформите. Microsoft има огромен слой от себе си, наречен Win32s, който позволява 32-битовото приложение на Windows да работи на 16-битов Windows. 64-битовата версия на Windows също осигурява удрящ слой WoW64, който позволява използване на 32-битови Windows приложения.