Bij het computeren is een vertaler een programma dat een programma omzet dat is geschreven in de ene programmeertaal (de brontaal) in een andere programmeertaal (de doeltaal). Dit proces wordt vertaling genoemd. Er zijn verschillende soorten vertalers, elk met een andere aanpak:
* compiler: Een compiler vertaalt de volledige broncode in machinecode (of een tussenliggende weergave zoals bytecode) * vóór * het programma wordt uitgevoerd. De resulterende machinecode kan vervolgens rechtstreeks worden uitgevoerd door de processor van de computer. Compilers produceren doorgaans geoptimaliseerde code voor betere prestaties, maar het compilatieproces zelf kan tijd kosten. Voorbeelden zijn GCC (GNU Compiler Collection) en Clang.
* tolk: Een tolk vertaalt en voert de broncode -regel voor regel uit, zonder een onafhankelijk uitvoerbaar bestand te maken. Dit zorgt voor snellere feedback tijdens de ontwikkeling omdat fouten worden geïdentificeerd zodra ze worden aangetroffen. De geïnterpreteerde code wordt echter over het algemeen langzamer uitgevoerd dan gecompileerde code. Voorbeelden zijn de tolk van Python en JavaScript -motoren in webbrowsers.
* assembler: Een assembler is een specifiek type vertaler dat assemblagetaal (een programmeertaal op laag niveau) omzet in machinecode. Assemblagetaal maakt gebruik van mnemonics (korte afkortingen) die machine-instructies vertegenwoordigen, waardoor het iets meer door mensen leesbaar is dan pure machinecode.
* transpiler (of bron-tot-source compiler): Een transpiler vertaalt broncode van de ene programmeertaal op hoog niveau in een andere programmeertaal op hoog niveau. Het genereert geen machinecode rechtstreeks. Dit is handig voor het overdragen van code tussen verschillende talen of voor het moderniseren van legacy -code. Voorbeelden zijn Babel (transpilering JavaScript ES6+ tot ES5) en typecriptcompilers (Transpiling Typescript naar JavaScript).
Het belangrijkste verschil tussen deze typen ligt in * wanneer * en * hoe * de vertaling plaatsvindt. Compilers vertalen alles vooraf, tolken vertalen en voeren regel voor regel uit en transpilers vertalen zich tussen talen op hoog niveau. Assemblers zijn een gespecialiseerde vorm van compiler die zich richt op een taal op zeer laag niveau. |