Are compilers a program?

A compiler is a program. More specifically, a compiler is an executable. You use a compiler to translate high-level source code into object code which can then be linked with other object code to produce other executables. Compilers are usually written in a high-level language, which means you need a compiler to create a compiler. Although this sounds like a paradox, it is not. Once you have a compiler, you can use it to create newer, better compilers. However, there was a time when there were no compilers at all and these had to be entirely written using low-level assembly language.
Yes, compilers are programs.