В компютърното програмиране, тунк е подпрограма, използвана за инжектиране на допълнително изчисление в друга подпрограма. Thunks се използват предимно за забавяне на изчислението, докато не е необходим неговият резултат, или за вмъкване на операции в началото или в края на другата подпрограма. Те имат разнообразие от други приложения за генериране на код на компилатор и модулно програмиране.
Терминът възниква като хумористично минало причастие на „мисля“. Тоест, „Thunk value“ става достъпна, след като нейното изчисление е обмислено или изпълнено.
Фон
В ранните години на компилаторни изследвания се наблюдава широко експериментиране с различни стратегии за оценка. Ключов въпрос беше как да се състави повикване на подпрограма, ако аргументите могат да бъдат произволни математически изрази, а не константи. Един подход, известен като "call by value", изчислява всички аргументи преди повикването и след това предава получените стойности на подпрограмата. При съперническия подход „извикване по име“ подпрограмата получава неценен израз на аргумента и трябва да го оцени.
Една проста реализация на "call by name" може да замести кода на аргументния израз за всяко появяване на съответния параметър в подпрограмата, но това може да създаде множество версии на подпрограмата и множество копия на кода на израза.
Copyright 2024 puzzlefactory.com Всички права запазени.