Vertalers kunnen op verschillende manieren werken en kunnen worden ingedeeld op basis van hun implementatietechnieken. Enkele veel voorkomende soorten vertalers zijn onder meer:
1. Compiler: Een compiler vertaalt een programma dat is geschreven in een programmeertaal op hoog niveau (zoals C, Java of Python) naar een uitvoerbare vorm, doorgaans machinecode of bytecode. De gecompileerde code kan rechtstreeks op het doelplatform of de virtuele machine worden uitgevoerd.
2. Tolk: Een tolk voert het programma rechtstreeks uit, geschreven in een taal op hoog niveau, zonder het eerst in een tussenvorm te compileren. De tolk leest elke instructie van de broncode regel voor regel en voert deze uit, waardoor onmiddellijke resultaten of feedback worden verkregen.
3. Transpiler: Een transpiler vertaalt code die in een brontaal is geschreven naar een andere programmeertaal, terwijl de functionaliteit en structuur van het originele programma behouden blijft. Getranspileerde code is doorgaans draagbaarder en kan op verschillende platforms of met andere technologieën worden uitgevoerd.
4. Virtuele machine (VM): Een VM is een softwarelaag waarmee programma's die in één taal zijn geschreven, kunnen worden uitgevoerd op een platform of besturingssysteem waarvoor ze niet zijn ontworpen. De VM interpreteert of voert de broncode uit binnen zijn eigen runtime-omgeving, waardoor compatibiliteit tussen verschillende omgevingen wordt geboden.
5. Codegeneratoren: Codegeneratoren zijn tools die automatisch broncode genereren op basis van een bepaalde specificatie of ontwerp. Ze gebruiken vaak sjablonen, patronen of regels om code in een specifieke programmeertaal te produceren.
6. Decompiler: Een decompiler probeert de broncode opnieuw te creëren op basis van een binair uitvoerbaar bestand of bytecode. Het keert het compilatieproces om en genereert vaak code op hoog niveau die lijkt op de originele bron, maar mogelijk niet identiek is vanwege optimalisaties en aanpassingen.
Dit zijn enkele algemene voorbeelden van vertalers die worden gebruikt voor het converteren tussen programmeertalen of formaten. Ze stellen software-ingenieurs en ontwikkelaars in staat applicaties te bouwen die op verschillende platforms en apparaten kunnen worden gebruikt, waardoor de compatibiliteit, draagbaarheid en veelzijdigheid worden verbeterd.