У меня нет опыта с llvm или лязгом, еще. Из того, что я читал, лязгом, как говорят, является легко встраиваемый Лязг Википедии, однако, я не нашел учебных руководств о том, как достигнуть этого. Таким образом, действительно ли возможно предоставить пользователю приложения C++ с полномочиями сценариев компиляцией JIT и выполнением пользовательского кода во времени выполнения? Было бы возможно назвать приложения собственными классами и объектами доли и методами?
править: Я предпочел бы подобное синтаксису C для сценария-languge (или даже C++ сам)
Я не знаю никакого руководства, но в исходниках Clang есть пример интерпретатора C, который может быть полезен. Вы можете найти его здесь: http://llvm.org/viewvc/llvm-project/cfe/trunk/examples/clang-interpreter/
Вероятно, у вас не будет большого выбора синтаксиса для языка сценариев, если вы пойдете этим путем. Clang разбирает только C, C++ и Objective C. Если вам нужны какие-либо вариации, вам придется потрудиться.
Я не знаю о Clang, но вы можете посмотреть Ch:
http://www.softintegration.com/
Это описывается как встраиваемый или автономный интерпретатор c / c ++. Здесь есть статья доктора Доббса с примерами ее встраивания:
http://www.drdobbs.com/architecture-and-design/212201774
Я не сделал больше, чем поиграл с ней, но кажется быть стабильным и зрелым продуктом. Это коммерческая версия с закрытым исходным кодом, но «стандартная» версия описывается как бесплатная как для личного, так и для коммерческого использования. Однако, глядя на лицензию, кажется, что «коммерческий» может включать только использование внутри компании, а не встраивание в продукт, который затем продается или распространяется. (Я не юрист, поэтому очевидно, что следует уточнить в SoftIntegration условия лицензии.)