Я хочу сделать скомпилированный язык. В настоящее время я оцениваю основы. До сих пор я смотрю на C из-за его скорости выполнения, компиляции и небольшого, простого в использовании компилятора TCC.Создание языка, нужен хороший backend
Прочитав здесь обсуждения об использовании его в качестве промежуточного языка, я пытаюсь подумать о том, как сделать его совместимым с сборкой мусора и обработкой исключений. Пока, я думаю, я могу решить оба, но с большими накладными расходами.
Вот некоторые из моих мыслей о других возможных движках:
- Ассамблеи: непереносимая и общая боль программировать
- .NET:. Чувствует очень медленно. 5 секунд для запуска и 5 секунд для оценки 1 + 2 на Ironpython и Boo. Невозможно запустить без большой библиотеки.
- JVM: Чувствует себя немного медленным. Нет доступа к бинарным библиотекам. Невозможно запустить без большой библиотеки.
- LLVM: Нет оконной поддержки. Я слышал, что скомпилированный исполняемый размер составляет 16 мб +
- C--: выглядит недостаточно развитым.
- C++: возможно. Не могу найти хороший небольшой бесплатный, с которым я могу связать.
Может кто-нибудь из вас изменит мой разум или еще чего-нибудь добавить в этот список?
Редактировать
Я экспериментировал с LLVM в последнее время. Я узнал, что у них есть предварительно скомпилированные двоичные файлы и что их можно скомпилировать в сборку.
http://www.antlr.org/wiki/display/CS652/Generating+machine+executable+binaries+with+LLVM
Вот шаги:
- Run LLVM-а на LLVM Ассамблеи, которая дает байткодовую файл LLVM.
- Запустите llc в файле байт-кода LLVM, чтобы получить файл сборки.
- Запустите ассемблер в файле сборки, чтобы получить файл объекта. (Или запустить LLVM-ЛД, который, кажется, зависит от установленного извне C Compiler)
- Compile в исполняемый файл с НКУ и т.д.
Duplicates http://stackoverflow.com/questions/446883/best-compiler-destination –
@ norman, У моего вопроса есть более подробная информация. Я не очень доволен ответами там. – Unknown