То есть вот язык программирования сначала пишут на чем угодно, а потом в последующих версиях компилятор переписывают на языке программирования, который он и должен компилировать? 0_0
Компилятор - штука уже скомпилированная, так что совершенно неважно на чём он изначально писался
Компилирует не язык, а готовая скомпилированная программа
Именно так.
Первая версия компилятора пишется на чем угодно, последующие - на языке компилятора.
Что тебя при этом удивляет, мне не совсем понятно.
Собссно, компилятор должен взять текстовый файл и превратить его в машинный код. Какой при этом будет использован механизм и на каком языке будет этот текстовый файл - не принципиально совершенно. Если первая версия компилятора позволяет реализовать этот механизм - он реализуется. И дальше уже реализуется другими версиями.