以某种编程语言的程序源代码作为输入，生成以另一种编程语言构成的等效源代码的编译器。源代码到源代码编译器会在大致相同的抽象级别之间抽象化，而传统编译器则从一个较高等级的高级语言转换为低级语言。举例来说，源代码到源代码编译器可以将一个程序从Pascal转换为C语言。编译器经常采用高级语言的程序作为输入，然后转换代码并增加并行代码注释（例如OpenMP）或语言结构（例如Fortran的codice_1语句）。转译语言的例子包括：、、CoffeeScript、Dart、Haxe、Nim、TypeScript和。