Язык для компилятора на основе LLVM - PullRequest
6 голосов
/ 28 октября 2011

Я смотрю на несколько начальных тестов и экспериментов с игрушечным языком и на создание компилятора на основе LLVM, чтобы получить некоторые замечательные результаты.

Я понимаю, что C ++ - это "родной" и наиболее поддерживаемый язык LLVM, но я действительно не хочу использовать C или C ++. Поэтому я ищу язык более высокого уровня, который имеет стабильную и устоявшуюся поддержку для работы с LLVM API.

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

Так что мой вопрос, был ли у кого-нибудь из вас положительный опыт работы с LLVM с использованием языка и / или фреймворка более высокого уровня? И если да, то какой? Или есть что-то, чего вы бы хотели избежать?

1 Ответ

6 голосов
/ 28 октября 2011

Подмножество LLVM API предоставляется через простые оболочки C.Это достаточно для генерации кода и может использоваться практически на любом языке высокого уровня.Привязки OCaml доступны из коробки (см. в этом учебном пособии ), и привязки Haskell также являются достаточно зрелыми (например, сам GHC может компилироваться через LLVM).Я также использовал LLVM из языков, основанных на .NET, без каких-либо привязок (только P/Invoke обертки, автоматически сгенерированные из заголовков).

...