Какое-либо учебное руководство для встраивания Лязга как интерпретатор сценария в Код C++?

У меня нет опыта с llvm или лязгом, еще. Из того, что я читал, лязгом, как говорят, является легко встраиваемый Лязг Википедии, однако, я не нашел учебных руководств о том, как достигнуть этого. Таким образом, действительно ли возможно предоставить пользователю приложения C++ с полномочиями сценариев компиляцией JIT и выполнением пользовательского кода во времени выполнения? Было бы возможно назвать приложения собственными классами и объектами доли и методами?

править: Я предпочел бы подобное синтаксису C для сценария-languge (или даже C++ сам)

16
задан FFox 11 July 2010 в 20:32
поделиться

2 ответа

Я не знаю никакого руководства, но в исходниках Clang есть пример интерпретатора C, который может быть полезен. Вы можете найти его здесь: http://llvm.org/viewvc/llvm-project/cfe/trunk/examples/clang-interpreter/

Вероятно, у вас не будет большого выбора синтаксиса для языка сценариев, если вы пойдете этим путем. Clang разбирает только C, C++ и Objective C. Если вам нужны какие-либо вариации, вам придется потрудиться.

13
ответ дан 30 November 2019 в 21:18
поделиться

Я не знаю о Clang, но вы можете посмотреть Ch:

http://www.softintegration.com/

Это описывается как встраиваемый или автономный интерпретатор c / c ++. Здесь есть статья доктора Доббса с примерами ее встраивания:

http://www.drdobbs.com/architecture-and-design/212201774

Я не сделал больше, чем поиграл с ней, но кажется быть стабильным и зрелым продуктом. Это коммерческая версия с закрытым исходным кодом, но «стандартная» версия описывается как бесплатная как для личного, так и для коммерческого использования. Однако, глядя на лицензию, кажется, что «коммерческий» может включать только использование внутри компании, а не встраивание в продукт, который затем продается или распространяется. (Я не юрист, поэтому очевидно, что следует уточнить в SoftIntegration условия лицензии.)

1
ответ дан 30 November 2019 в 21:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: