Ищете встраиваемый язык сценариев для C++ с поддержкой 64-бит и кроссплатформенностью

Я ищу язык сценариев, который работает на 32-битных и 64-битных машинах, а также на Windows и Linux. Я буду встраивать его в приложение C++, поэтому я предпочитаю, чтобы он был изначально написан на C++, а не на C. Я также предпочел бы, чтобы сценарий имел поддержку потоков/асинхронности.

До сих пор я рассматривал языки GameMonkey, Lua и V8 JavaScript Engine. Пока что наиболее привлекательным является JavaScript V8. Я действительно не хочу использовать GameMonkey, потому что, насколько мне известно, он не поддерживает 64-битную адресацию. Lua написан на C, поэтому я бы, вероятно, использовал оболочку C++, но мне действительно не нравится смешивать код C и C++.

Так есть ли какие-то другие альтернативы, на которые я мог бы посмотреть?


person Tr41n    schedule 22.07.2010    source источник
comment
Lua полностью готов к компиляции как C++.   -  person lhf    schedule 23.07.2010
comment
Спасибо, lhf, это отличная новость :)   -  person Tr41n    schedule 24.07.2010
comment
также спасибо starblue за исправление моих тегов :)   -  person Tr41n    schedule 24.07.2010


Ответы (5)


Я говорю Луа. Он ультрапортативный (даже работает под PalmOS, WindowsCE и DOS!), маленький (200-300 КБ), быстрый, и его очень легко связать с C/C++.

Кроме того, Майкл Палл добился поразительного прогресса в реализации LUA JIT. Его текущая бета-4 поддерживает джиттинг x86 и x86_64 и превосходит почти все языки-переводчики, которые я знаю: http://luajit.org/

person Nordic Mainframe    schedule 22.07.2010
comment
Вау, это захватывающе, я буду использовать lua JIT :). Спасибо. - person Tr41n; 24.07.2010

Лично я предпочитаю Lua другим. Может быть, потому что он используется в WoW, и я делаю свои собственные настройки для надстроек WoW. Но я видел много хороших мнений, даже на SO.

person Aoi Karasu    schedule 22.07.2010
comment
Да, я решил использовать Lua. Спасибо :) - person Tr41n; 24.07.2010

Возможно, Falcon, ChaiScript, IO или даже AngelScript может соответствовать вашим требованиям?

person Klaim    schedule 22.07.2010
comment
Спасибо, раньше не видел Falcon / ChaiScript / или IO. Сокол - интересный язык. - person Tr41n; 24.07.2010
comment
Да, я использую его в большом проекте, и по некоторым причинам это лучшая альтернатива Python. Тем не менее, я полагаю, что это будет работать в 64-битной версии, но я еще не пробовал. - person Klaim; 24.07.2010
comment
Просто хотел убедиться, что 64-битный ChaiScript действительно работает. Это было официально протестировано только на Linux, но проблем не было обнаружено. - person lefticus; 05.08.2010

Вы также можете использовать Squirrel, это C++, с синтаксисом, подобным C/Java, с поддержкой объектно-ориентированного программирования (даже класса наследство) и много приятных мелочей. По скорости он сопоставим с Lua, но размер кода после компиляции немного больше.

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

person soze    schedule 12.03.2011

Если вы используете qt, вы можете использовать qtscript. В противном случае python может быть хорошей идеей.

person Roman A. Taycher    schedule 22.07.2010