Скажем, у меня есть C компилятор, написанный на C. Затем этот C компилятор будет скомпилирован с использованием более ранней версии этого компилятора или сам по себе (сначала скомпилировав исходный код с более старой версией, а затем снова с новым компилятором).
Что если реализация что у C компилятора будет ошибка? Это означало бы, что компилятор C создает двоичные файлы, которые могут быть некорректными. Если бы я исправил ошибку, этот код все равно пришлось бы скомпилировать с использованием ошибочной версии компилятора, что снова привело бы к компилятору, который, возможно, работал бы неправильно.
Если ошибка была обнаружена сразу, я могу посмотрите, как с этим справиться, просто используя более старую версию компилятора. Но что, если ошибка не обнаруживается в течение ряда итераций? Мне кажется почти невозможным отследить источник ошибки в этот момент, поскольку неправильное поведение могло быть результатом любой из предыдущей версии этого компилятора, которая распространялась через различные итерации.