Я вивчаю завантажувальну програму у Red Dragon Book Compilers і виявив T-схему для крос-компілятора досить заплутана. Я не можу зрозуміти, що означає "Запустити компілятор1 через компілятор2". Чи може хтось надати краще пояснення, аналогію чи приклад, що стосується якогось компілятора реального світу?
Перше позначення. За Я маю на увазі компілятор для мови написані мовою що виробляє мову виводу / машинний код . Це надгробна плита або Т-діаграми .
Складання компілятора
Припустимо, у нас є крос-компілятор для нової мови L в мові впровадження S, що генерує код для машини N.
Припустимо, у нас також є існуючий компілятор S, який працює на машині M, що реалізує код для машини M:
Запустіть LSN через SMM для отримання LMN
Конструкція компілятора