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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.