Евгений
Front End и Back End - важная техника при построении компилятора. Компилятор разделен на две группы Front End и Back End. Front End имеет дело с исходным языком компилятора. Back End имеет дело с целевым языком компилятора. Если исходный язык меняется, нам нужно только изменить интерфейс компилятора. Если целевой язык изменяется, мы изменяем только серверную часть компилятора.
В процессе начальной загрузки мы пишем компилятор "Quick and Dirty" на ассемблере для языка C. Затем напишите эффективный компилятор на языке C (скажем, B) и передайте его в качестве входных данных компилятору «Quick and Dirty». Скомпилируйте компилятор B через последнюю версию компилятора, чтобы получить эффективный компилятор. Поясним этот процесс на примере. У нас есть компилятор языка C, работающий на Intel. Теперь нам нужен компилятор языка C, работающий на AMD. Здесь мы пишем интерфейсный модуль и компилируем нашу программу на машине Intel bas. Мы получаем кросс-компилятор, который работает на машине Intel, но генерирует код для машины AMD. Мы компилируем исходную программу на кросс-компиляторе и получаем компилятор, который работает на машине AMD и генерирует код для машины MAD.