Я видел много ссылок по начальной загрузке, мне было интересно, каковы основные недостатки начальной загрузки компилятора для языка, скажем X, с использованием программирования C вместо языка ассемблера? Мне было интересно, ограничит ли использование C все, что я делаю, созданием на ассемблере на языке C (например, как это делает компилятор C).
Например, все, что я напишу в Python, в конечном итоге будет заботиться CPython, делая это в конечном итоге в C-подобной манере в аппаратном обеспечении - что может быть не оптимальным?
Конечно, C, вероятно, очень хороший язык, но для некоторых других общих языков это может быть не так. Разве при начальной загрузке не появятся узкие места, ограничения, специфичные для языка, который я использую для создания загрузочного компилятора? Как генерация машинного кода будет такой же, как С генерирует код, а не каким-то случайным образом.
Основная причина использования C в том, что он хорошо отображает наш код на машинном языке, но не так хорошо, как ассемблер, верно? Итак, у C есть некоторые проблемы с производительностью, теперь я использую C для создания компилятора для другого языка, поэтому я должен передать эти проблемы с производительностью, верно? В конце концов, C не выполняет сопоставление 1-1 со сборкой - надеюсь, вы ответите на мой вопрос.