Я бы рассмотрел встраивание lua . Он быстрый, легкий и компактный. Он был специально разработан для встраивания. Используется многими играми в качестве языка сценариев. (IMO гораздо проще встраивать, чем python или perl)
Вот пример complete , чтобы показать, насколько это просто
extern "C"
{
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
}
#include <string>
#include <iostream>
int main()
{
std::string expression = "12+(3.0*(4)-1)/math.sqrt(121)";
lua_State * L = lua_open();
luaopen_math(L);
if( luaL_dostring(L, ("return "+expression).c_str()) != 0 )
{
std::cout<<"ERROR : "<<lua_tostring(L,-1)<<std::endl;
}
if( lua_type(L,-1) == LUA_TNUMBER )
{
std::cout<<"GOT "<<lua_tonumber(L,-1)<<std::endl;
}
lua_close(L);
}