Как вы начинаете генерировать собственный код для целевой платформы? У меня есть (некоторый) опыт и (некоторые) навыки на C++, и я заинтересован в том, чтобы переходить и писать собственный компилятор (для C++). Но я понятия не имею, как я собираюсь превратить конечный результат в собственный код для выполнения на моей целевой платформе, на данный момент это просто Windows, x86.Испускающий собственный код (для определенной платформы)
Я взглянул на LLVM, но не мог понять их документацию для shiz.
Редактировать: Кроме того, LLVM не будет строить VS2010. Я прошел и очистил все места, где они, по-видимому, добавили. В конце имени файла для удовольствия и исправил typedefs, и теперь у них есть некоторые странные файлы .def, которые кажутся совершенно ненужными, которые не будут компилироваться , и я понятия не имею, в каких триллионах заголовков они вызваны.
Другие изменения: Я уже строил/строил собственный АСТ/парсер/лексер. Мне просто нужно знать, как превратить результаты в родные.
C++ - чрезвычайно сложный язык, и скомпилировать его еще сложнее, а что начать с чего-то более простого? –
Первоначально вы могли бы просто реализовать переднюю часть компилятора, которая испускает либо C, либо ассемблер, а затем использовать любой компилятор C или ассемблер (например, gcc) в качестве задней части. Вы можете всегда писать свой собственный конец позже, если хотите. –
На самом деле, у llvm есть отличный учебник (http://llvm.org/docs/tutorial/); если вы не можете этого понять, я серьезно сомневаюсь в успехе ваших усилий. –