Родная библиотека объектно-ориентированного компилятора

В последнее время я подумывал написать свой собственный язык — то, что я давно хотел сделать. У меня есть некоторый опыт написания парсеров/компиляторов для простых языков с использованием библиотеки .Net System.Reflection.Emit. Мне очень понравилось использовать эту библиотеку, особенно из-за того, что она ориентирована на разработку объектно-ориентированного языка.

Проблема в том, что я бы предпочел, чтобы это был родной язык. Поэтому мне было интересно: существуют ли какие-либо хорошие/простые в использовании библиотеки, которые фокусируются на генерировании кода для объектно-ориентированных языков (например, System.Reflection.Emit), но на самом деле будут генерировать собственный код, а не управляемый код?

Примечание. Я сосредоточен на фактической генерации собственного кода, а не на разборе. Кроме того, было бы желательно, чтобы библиотека была легко доступна из C++, но работал бы любой язык.


person Ken Wayne VanderLinde    schedule 20.06.2011    source источник


Ответы (1)


Вас может заинтересовать LLVM, библиотека C++ с открытым исходным кодом, специально разработанная для использования в качестве серверной части генерации кода для переносимых компиляторов. . Среди прочего, он уже используется для компилятора clang C/C++/ObjC.

person bdonlan    schedule 20.06.2011
comment
Извините, что долго не отвечал. Спасибо, что показали мне проект LLVM — он определенно близок к тому, что я ищу. На самом деле, я думаю, что смогу сделать свою собственную тонкую обертку вокруг LLVM, чтобы делать именно то, что я хочу. - person Ken Wayne VanderLinde; 22.06.2011