LINUX.ORG.RU

Поддержка скриптов в проекте на C++


0

0
Для моего проекта понадобилась поддержка скриптов. Все это дело написано на С++ и Qt. Требования к интерпретатору скриптов небольшие:
- поддержка функций
- поддержка глобальных (через все скрипты) переменных(констант)
- быстрая работа.

В скриптах в основном будут использоваться математические формулы... но рассчеты не сложные. Никаких объектов и другой ерунды не надо. Главное, чтобы движек быстро обрабатывал большое количество одновременно запущенных скриптов.

Подскажите пожалуйста готовый движек. Не хочу писать и отлаживать велосипед.

PS. Никакого лиспа и других функциональных языков. Только императивные.

В Qt есть QtScript.

"The QtScript module provides classes for making Qt applications scriptable."

smh ★★★
()
Почему только императивные? Если императивные - почему не Лисп (который таки императивный)?
Miguel ★★★★★
()
Я бы взял Lua. Т.к. он удовлетворяет минимальным требованиям и достаточно быстр. Юзать luabind или нет, твоё дело, я бы не стал (только из-за того что для его компиляции нужен буст). Посмотрел бы ещё на JIT компиляторы для lua, более подробно не расскажу, не копал в этом направлении пока что :) Ещё как вариант если потом будет возможность встроить все эти скрипты в сам язык, можно посмотреть CINT. По сути интерпретатор C/C++. На время разработки можно писать всё как скрипты, а потом в финальном релизе приткнуть в сурцы - имеем необходимое быстродействие.
anonymous
()
Ответ на: комментарий от anonymous
>Юзать luabind или нет, твоё дело, я бы не стал (только из-за того что для его компиляции нужен буст)
А чем плох буст?
anonymous
()
Ответ на: комментарий от anonymous
>>Юзать luabind или нет, твоё дело, я бы не стал (только из-за того что для его компиляции нужен буст)

>А чем плох буст?

Единственный недостаток - много разных библиотек, и если нужно будет выдернуть из буста какую-нибудь одну (что бы не таскать за собой весь буст), то придется попотеть.

А в остальном всем хорош, например в TR1 немало библиотек из буста вошло.

wtfbbq
()
Python (и Boost.Python, если нет аллергии на Boost)
tailgunner ★★★★★
()
Ответ на: комментарий от wtfbbq
>Единственный недостаток - много разных библиотек, и если нужно будет выдернуть из буста какую-нибудь одну (что бы не таскать за собой весь буст), то придется попотеть.

Дык тебе же буст нужен только для сборки (он почти полностью состоит из header'ов)? Какие проблемы?

Sectoid ★★★★★
()
Ответ на: комментарий от Sectoid
>>Единственный недостаток - много разных библиотек, и если нужно будет выдернуть из буста какую-нибудь одну (что бы не таскать за собой весь буст), то придется попотеть.

>Дык тебе же буст нужен только для сборки (он почти полностью состоит из header'ов)? Какие проблемы?

Проблема специфическая. :) Была необходимость таскать с программой все библиотеки, которые необходимы для сборки этой программы. При этом из буста 95% его библиотек мной не использовалось.

wtfbbq
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.