Как ЭВМ понимает язык компилятора?
См. "раскрутка компилятора". Кратко, первый компилятор пишется для минимального подмножества языка на другом языке(или в самом начале веков - на ассемблере, в машкодах), затем на этом подмножестве пишется компилятор, который может компилировать это подмножество, и затем фичи языка наращиваются итеративно. Этакий догфуддинг.
Также, как переводчик понимает две языковых стороны говорящих, которые не понимают друг друга без него.