Bootstrappen (compilers)
Een self-hosting compiler is een compiler die is geschreven in de taal die hij zelf compileert. Bootstrappen is het proces een uitvoerbare versie van een self-hosting compiler te verkrijgen. Op het eerste gezicht is dit onmogelijk, omdat de compiler die daarvoor nodig is nog gecompileerd moet worden.
De allereerste computers waren bijzonder lastig te programmeren. Met schakelaars moesten nullen en enen worden ingesteld om een programma in machinetaal in het geheugen te zetten. Toen er eindelijk een eenvoudig programma in het geheugen stond waarmee gegevens in het computergeheugen konden worden ingevoerd, had men de mogelijkheid een gecompliceerder programma in te voeren. Zo ontstond de assembler, een programma dat mnemonische codes omzet in machinetaal.
Vervolgens kon men in de assembleertaal een eenvoudige compiler schrijven. Die compiler kon worden gebruikt voor een betere compiler.
Uiteindelijk kan men besluiten de compiler nog een keer te schrijven, nu in zijn eigen taal, en die met de reeds gecompileerde compiler, de bootstrapcompiler, te compileren. De nieuwe, self-hosting compiler is eenvoudiger te onderhouden en te wijzigen omdat de gebruiker maar een programmeertaal hoeft te gebruiken.