A fordítók többféleképpen dolgozhatnak, és végrehajtási technikáik alapján kategorizálhatók. Néhány gyakori fordítótípus:
1. Fordító: A fordító egy magas szintű programozási nyelven (például C, Java vagy Python) írt programot futtatható formára, jellemzően gépi kódra vagy bájtkódra fordítja le. A lefordított kód közvetlenül végrehajtható a célplatformon vagy a virtuális gépen.
2. Tolmács: A tolmács közvetlenül végrehajtja a magas szintű nyelven írt programot anélkül, hogy azt először egy köztes formába fordítaná. Az értelmező soronként elolvassa és végrehajtja a forráskód minden utasítását, azonnali eredményt vagy visszacsatolást biztosítva.
3. Transpiler: A transzpiler lefordítja a forrásnyelven írt kódot egy másik programozási nyelvre, miközben megőrzi az eredeti program funkcionalitását és szerkezetét. A transzpilált kód általában jobban hordozható, és futhat különböző platformokon vagy más technológiákkal.
4. Virtuális gép (VM): A virtuális gép egy olyan szoftverréteg, amely lehetővé teszi, hogy egy nyelven írt programok futhassanak olyan platformon vagy operációs rendszeren, amelyre nem készültek. A virtuális gép a forráskódot a saját futási környezetében értelmezi vagy hajtja végre, így biztosítva a különböző környezetek közötti kompatibilitást.
5. Kódgenerátorok: A kódgenerátorok olyan eszközök, amelyek automatikusan generálnak forráskódot egy adott specifikáció vagy terv alapján. Gyakran sablonokat, mintákat vagy szabályokat használnak kód létrehozásához egy adott programozási nyelven.
6. Decompiler: A visszafejtő megpróbálja újra létrehozni a forráskódot egy bináris végrehajtható fájlból vagy bájtkódból. Megfordítja a fordítási folyamatot, és gyakran olyan magas szintű kódot hoz létre, amely hasonlít az eredeti forrásra, de az optimalizálás és módosítások miatt előfordulhat, hogy nem azonos.
Íme néhány általános példa a programozási nyelvek vagy formátumok közötti konvertáláshoz használt fordítókra. Lehetővé teszik a szoftvermérnökök és -fejlesztők számára, hogy olyan alkalmazásokat készítsenek, amelyek különféle platformokon és eszközökön használhatók, javítva a kompatibilitást, a hordozhatóságot és a sokoldalúságot.