Кіріспе

Компьютерлік ғылымда, орындалу кезіндегі алгоритмдік мамандандыру – белгілі бір типтегі есептеу жұмыстары үшін тиімді алгоритмдер құру әдістемесі. Бұл әдістеме теореманы автоматты түрде дәлелдеу саласында, әсіресе Vampire теореманы дәлелдеуші жобасында қалыптасқан. Бұл идея бағдарламалық аударманы оңтайландыру үшін жартылай бағалауды қолданудан шабыттандырылған. Теореманы дәлелдеушілердің көптеген негізгі операциялары мына үлгіні көрсетеді. Егер біз белгілі бір алгоритмді жағдайда орындау қажет болса, онда оның мәні әртүрлі мәндер үшін белгілі бір шама үшін тұрақты болады. Мұны тиімді істеу үшін, біз әрбір тұрақты шама үшін оның мамандандырылған түрін табуға тырысамыз, яғни, орындалуы орындалумен эквивалентті болатын алгоритмді. Мамандандырылған алгоритм жалпы алгоритмге қарағанда тиімдірек болуы мүмкін, өйткені ол белгілі бір тұрақты шаманың ерекше қасиеттерін пайдалана алады. Әдетте, ол бұл нақты параметр үшін артық екені белгілі болған операциялардан бас тарта алады. Атап айтқанда, біз белгілі бір шама үшін дұрыс немесе бұрыс болатын тесттерді анықтай аламыз, циклдарды және рекурсияны аша аламыз және т.б.

Ішінара бағалаудан айырмашылық

Орындалу уақытындағы мамандандыру мен ішінара бағалаудың арасындағы басты айырмашылық – мамандандырылатын мәндер статикалық түрде белгілі болмайды, сондықтан мамандандыру орындалу уақытында жүзеге асырылады. Сондай-ақ, маңызды техникалық айырмашылық бар. Ішінара бағалау кейбір бағдарламалау тілдерінде код ретінде нақты көрсетілген алгоритмдерге қолданылады. Орындалу кезінде бізге нақты бейнелеудің қажеті жоқ. Біз тек мамандандыру процедурасын бағдарламалау кезінде оны елестетуіміз керек. Бізге тек мамандандырылған нұсқаның нақты бейнесі ғана қажет. Бұл сонымен қатар алгоритмдерді мамандандыру үшін әмбебап әдістерді қолдану мүмкін емес екенін білдіреді, бұл әдетте ішінара бағалауда қолданылады. Оның орнына, біз әрбір нақты алгоритм үшін жеке мамандандыру процедурасын бағдарламалауымыз керек. Мұның маңызды артықшылығы – біз осы алгоритмнің және оның бейнелеуінің ерекшеліктерін пайдаланатын тиімді, арнайы тәсілдерді қолдана аламыз, ал мұндай мүмкіндік әмбебап мамандандыру әдістеріне қол жеткізе алмайды.