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.