Я создал свой собственный (очень простой) язык байтового кода и виртуальную машину для его выполнения. Он отлично работает, но теперь я хотел бы использовать gcc (или любой другой свободно доступный компилятор) для генерации байтового кода для этого аппарата из обычной программы c. Итак, вопрос в том, как мне изменить или расширить gcc, чтобы он мог выводить мой собственный байтовый код? Обратите внимание, что я НЕ хочу компилировать мой байтовый код в машинный код, я хочу «скомпилировать» c-код для (моего собственного) байтового кода.Как написать собственный код генератора для gcc?
Я понимаю, что это потенциально большой вопрос, и вполне возможно, что лучшим ответом будет «взглянуть на исходный код gcc». Мне просто нужна помощь в том, как начать с этого. Я полагаю, что на эту тему должны быть какие-то статьи или книги, которые могли бы описать процесс добавления настраиваемого генератора в gcc, но я ничего не нашел при работе с Google.
Посмотрите на LLVM. GCC, как известно, трудно продлить. – Mat
это руководство может помочь вам: http://www.drdobbs.com/retargeting-the-gnu-c-compiler/184401529 «Внутренний взгляд на то, как развернуть компилятор GNU C на вашу платформу по выбору». хорошо читал, хотя я еще не пытался следовать за ним. –