Бутстраповање је термин који се користи у рачунарству да се опишу технике укључене у процесс писања компајлера (или асемблера) у циљном програмском језику кога он треба да компајлира.

Неки ће се питати како је проблем „кокошке и јајета” у креирању компајлера решен: ако некоме треба копмајлер за језик -{X}- да би добио компајлер за језик -{X}-, како је први компајлер написан? Неки од могућих метода су:

Имплементирати интерпретер или компајлер за језик -{X}- у језику -{Y}-. Никлаус Вирт (-{Niklaus Wirth}-) је писао први компајлер за Паскал у Фортран-у. Такође, језик -{Y}- може бити ручно писани машински код или асемблерски језик.

Неки интерпретер или компајлер за -{X}- је већ написан у другом језику -{Y}-; тако је Схема (-{Scheme}-) бутстрапована. Раније верзије компајлера су биле написане у неким подскуповима од -{X}- за које су постојали компајлери; овако су неки надскупови програмског језика Јава бутстраповани. Компајлер за -{X}- је крос компајлован са друге архитектуре (платформе) на којој већ постоји компајлер за X; тако су -{C}- компајлери пребацивани на друге платформе. Писати компајлер у -{X}--у; онда га ручно компајловати из изворног кода (највероватније на неоптимизован начин) и извршити га на ткоду ради добијања оптимизованог компајлера. Доналд Кнут (-{Donald Knuth}-) се користио овим за његов -{WEB}- књижевни програмски систем.

Методе дистрибуције компајлера у изворном коду укључују доступност преносиве бајткод верзије компајлера као и бутстраповање самог процеса компилације компајлера.

Први језик који је био бутстрапован је -{NELIAC}-. Од комерцијалних језика, први такав је био -{PL/I}-. Данас, велики део језика је бутстрапован, неки од њих су: -{Basic}-, -{C}-, -{Pascal}-, -{Haskell}-, -{Modula-2}-, -{Oberon}-, -{OCaml}-, -{Scheme}- и многи други.

Категорија:Преводиоци (рачунарство)