A compiler translates a source program written in some high-level programming language into a target program in another low-level programming language. As low-level programming languages are platform specific hence a compiler is specific to a language.