a person who translates written messages from one language to another
someone who mediates between speakers of different languages
a program that translates one programming language into another