Имеет ли смысл писать компилятор C #, предназначенный для LLVM? - PullRequest
9 голосов
/ 12 февраля 2010

Я думаю о написании небольшого компилятора C #.

Одна идея, с которой я играл, - это написать подмножество грамматики C #, скажем, до 2,0 для ANTLR. Затем, используя это для нацеливания на LLVM и написания компилятора собственного кода для C #?

Имеет ли эта идея смысл или это не сработает? Будет ли еще какой-нибудь способ звонить в BCL?

Я знаю, что есть CCI (Common Compiler Infrastructure) , который помог бы мне просто создавать исполняемые файлы .NET. Но мне любопытно, возможно ли то, что я сказал выше?

Ответы [ 3 ]

16 голосов
/ 12 февраля 2010

Моно уже можно использовать с бэкэндом LLVM .

Подробнее в Mono docs .

Ознакомьтесь с разделом Ограничения.

ОБНОВЛЕНИЕ: начиная с Mono 2.8, бэкэнд LLVM перешел на стабильный уровень. См. Примечания к выпуску Mono 2.8 .

3 голосов
/ 20 сентября 2016

Помимо уже упоминавшегося Mono, Microsoft работает над собственной реализацией под названием LLILC (это не просто эксперимент). Так что в этом много смысла.

1 голос
/ 12 февраля 2010

Если вы не хотите переписывать всю стандартную библиотеку, было бы лучше найти другой проект, если вы просто ищете что-то сделать. Можно было бы написать компилятор байт-кода .NET или ассемблер IL.

...