Non so cosa intendi tu per traduttore; generalmente si intende uno strumento in grado di trasformare un programma in un linguaggio inun altro programma in un lingauggio diverso p uguale al precedente. Per operare una simile trasformazione è necessaio eseguire il parsing del programma originale per individuare la sua struttura sintattica, quindi un traduttore è costituito da 3 componenti:

1 - il parser per costruire la sintassi astratta di un programma
2 - uno strumento che strasforma l'albero della sintassi in un nuovo albero tramite delle visite
3 - un unparser che effettua l'operazione inversa del parser, ovvero trasforma l'albero trasformato in un flusso di caratteri che sia un nuovo programma valido.