b'\n_START_ARTICLE_\nOptimalisatie (compiler)\n_START_PARAGRAPH_\nOptimalisatie is het proces waarbij een compiler de interne representatie van een te compileren computerprogramma manipuleert om het resulterende gecompileerde programma zo effici\xc3\xabnt mogelijk te maken. De fase van de compiler waarin dit gebeurt wordt optimalisatiefase genoemd._NEWLINE_Het doel van optimalisatie is het resulterende programma zo snel mogelijk en zo klein mogelijk te maken, zonder de werking van het programma te veranderen._NEWLINE_In het algemeen maken de meeste compilers gebruik van twee soorten optimalisatie: "gewone" optimalisatie (vanaf nu simpelweg optimalisatie genoemd) en peephole-optimalisatie.\n_START_SECTION_\nOptimalisatie\n_START_PARAGRAPH_\nOptimalisatie vindt plaats op een interne representatie van een te compileren programma. Deze interne representatie kan bijvoorbeeld de abstracte syntaxisboom van het programma zijn zoals die door de parser gegenereerd wordt. Een andere, en in de praktijk meer voorkomende, situatie is dat de abstracte syntaxisboom eerst vertaald wordt naar een meer algemene (programmeertaal-onafhankelijke) interne representatie. Deze wordt vervolgens geoptimaliseerd, en op basis van deze geoptimaliseerde interne versie van het programma wordt de uiteindelijke code gegenereerd._NEWLINE_Sommige compilers, zoals GCC, gebruiken meerdere optimalisatiefasen. Nadat de ene optimalisatie uitgevoerd is, wordt het resultaat vertaald naar een tweede (of derde, enz.) interne representatie, waarna deze door een volgende optimalisatiefase bewerkt wordt.\n_START_SECTION_\nPeephole-optimalisatie\n_START_PARAGRAPH_\nPeephole-optimalisatie vindt pas plaats tegen het einde van het compilatieproces en wordt uitgevoerd na de code-generatie. De gegenereerde machinecode wordt hierbij op instructieniveau geanalyseerd, waarbij gekeken wordt of kleine instructiereeksen door een effici\xc3\xabntere instructiereeks vervangen kunnen worden._NEWLINE_De mogelijke optimalisaties bij peepholeoptimalisatie zijn sterk afhankelijk van de processor waarvoor gecompileerd wordt.'