What problems do compilers solve?

We can think of compilers as translators.

We understand a certain language / domain, and the target understands another.

The compiler goes between and translates the language of our domain to the language of the target domain.