асемблери — перетворюють текст програми мовою асемблера на машинний код. дизасемблери — навпаки, намагаються розшифрувати машинний код. інтерпретатори — отримують текст програми та набір вхідних даних, і повертають результат виконання програми над вхідними даними. препроцесори — отримують текст програми, і повертають перетворений певним чином текст програми.