Cross Compilers
They produce an executable machine code for a platform but, this platform is not the one on which the compiler is running.
Bootstrap Compilers
These compilers are written in a programming language that they have to compile.
Source to source/transcompiler
These compilers convert the source code of one programming language to the source code of another programming language.
Decompiler
Basically, it is not a compiler. It is just the reverse of the compiler. It converts the machine code into high-level language.