Трансля́тор () — програма або технічний засіб, який виконує перетворення чи іншу обробку текстів програм.
Транслятори поділяються на: компілятори — перетворюють текст програми мовою високого рівня на об'єктний код чи байт-код. декомпілятори — навпаки, намагаються з машинного коду отримати початковий код на високорівневій мові. асемблери — перетворюють текст програми мовою асемблера на машинний код. дизасемблери — навпаки, намагаються розшифрувати машинний код. інтерпретатори — отримують текст програми та набір вхідних даних, і повертають результат виконання програми над вхідними даними. препроцесори — отримують текст програми, і повертають перетворений певним чином текст програми. транскомпілятори — отримують текст програми і повертають текст, переписаний на нову мову такого самого рівня абстракції чи на старішу версію вхідної мови.
Оскільки компілятори та інтерпретатори реалізують мови програмування, вони мають спільні риси: їх структура досить схожа, в основу їх реалізації покладено спільні теоретичні результати та практичні методи реалізації.
Структура транслятора
Текст програми Лексичний аналіз Послідовність токенів Синтаксичний аналіз Синтаксичне дерево повідомлення про синтаксичні помилки Семантичний аналізатор Семантичне дерево повідомлення про семантичні помилки Оптимізатор проміжного коду Оптимізоване семантичне дерево Генератор вихідного коду / виконання семантики Код / результати роботи
Примітки
Посилання Волохов. Системне програмування.