Interpreter

Een interpreter is een computerprogramma dat steeds een statement van de broncode van een computerprogramma vertaalt naar een voor de processor begrijpelijke vorm, en het dan meteen uitvoert. Dit in tegenstelling tot een compiler, die programma's opslaat in dergelijke vorm zodat ze later uitgevoerd kunnen worden.

Een praktisch verschil is dat bij gebruik van een interpreter een fout in de syntaxis van een statement slechts wordt ontdekt indien en wanneer de interpreter op het punt staat het uit te voeren, terwijl bij gebruik van een compiler alle fouten in de syntaxis in één keer worden gemeld, en de uitvoering van het programma pas kan worden begonnen als ze allemaal zijn verbeterd.

Voor- en nadelen van interpretersBewerken

Interpreters zijn flexibeler maar minder efficiënt dan compilers. Sommige programmeertalen lenen zich meer voor interpreters, omdat een interpreter tijdens uitvoering beschikbaar is om bepaalde diensten te verlenen, en een compiler niet. Andere programmeertalen lenen zich meer voor compilers, bijvoorbeeld als "strong typing" wordt toegepast. Bij herhaald gebruik van een programma is het een nadeel dat een interpreter de instructies telkens opnieuw omzet, terwijl dat bij een compiler maar eenmaal gebeurt, en het programma in vertaalde vorm bewaard wordt voor herhaalde uitvoering.

GeschiedenisBewerken

In 1963 kwam de eerste interpreter voor BASIC uit, waarna vele interpreters volgden (bijvoorbeeld voor de programmeertaal Logo). Hoewel het idee achter interpreters al erg oud is, zijn ze nog heel populair. Getuige hiervan JavaScript, dat tegenwoordig ondersteund wordt door alle state-of-the-art-webbrowsers. Ook voor Python wordt doorgaans een interpreter gebruikt.

NuanceringBewerken

Strikt genomen vindt op een bepaald niveau altijd een vorm van interpretatie plaats bij de verwerking van computerprogramma's. Ook de objectcode van gecompileerde programma's wordt uiteindelijk bij uitvoering geïnterpreteerd. In een Complex Instruction Set Computer (CISC) zijn de instructies die de computer kan interpreteren nog betrekkelijk ingewikkeld. Nieuwer is een Reduced Instruction Set Computer (RISC), die slechts zeer elementaire instructies verwerkt. Dit betekent dat de compiler meer werk moet doen en het programma groter wordt. De snelheid bij uitvoering neemt echter toe omdat er bij uitvoering van de objectcode minder interpretatiewerk plaats behoeft te vinden.

Anderzijds begint een moderne interpreter veelal met het omzetten van de broncode naar een eenvoudiger tussenvorm.

Onder andere in verband met de beperkte geheugencapaciteit (kostbaar) van de eerste computers werd een te interpreteren programma in de computers vaak met zogenaamde tokens opgeslagen in plaats van de volledige instructies. Een 'print'-instructie werd bijvoorbeeld opgeslagen als getal/token 178. Dit versnelde ook de uitvoer omdat in plaats van vijf geheugenplaatsen in dit voorbeeld ('print') slechts één geheugenplaats uitgelezen en geïnterpreteerd hoeft te worden.

Zie ookBewerken