Встраивание Google V8 в приложение ANSI C — с чего начать?

Я хотел бы встроить движок javascript в приложение ANSI C.

На самом деле, я хотел бы иметь возможность запускать некоторый код, введенный во время выполнения, и в то же время иметь возможность взаимодействовать с некоторыми переменными и функциями C.

Итак, является ли V8 единственным выбором? С чего начать?


person Stasik    schedule 30.06.2012    source источник
comment
Почему бы не что-то вроде Lua? Существует несколько движков javascript, V8 — один из самых быстрых, но не очень портативный. Другие варианты для JS: en.wikipedia.org/wiki/JavaScript_engine#JavaScript_engines. хотите взаимодействовать с C, есть Cint — встраиваемый интерпретатор языка C.   -  person osgx    schedule 30.06.2012
comment
Не могли бы вы указать мне домашнюю страницу LUA (даже с LMGIFY). Есть ли опыт с обезьяной-пауком?   -  person Stasik    schedule 30.06.2012
comment
Домашняя страница Lua –› первый результат (на google.com/ncr) Язык программирования Lua lua.org (или используйте en.wikipedia.org). Думаю, огромные (быстрые) JS-движки не так-то просто интегрировать. У меня нет опыта работы с этим JS, но на эта страница говорит, что встроить SpiderMonkey легко.   -  person osgx    schedule 30.06.2012
comment
да, я был именно на этой странице. Вечером постараюсь собрать. Интересно, будет ли работать встраивание c99. Спасибо, osgx, ты на хабре?   -  person Stasik    schedule 30.06.2012


Ответы (1)


Есть несколько страниц быстрого запуска:

JS-движок V8 (WebKit):

https://developers.google.com/v8/get_started

https://developers.google.com/v8/embed

Движок SpiderMonkey JS (Firefox):

https://developer.mozilla.org/en/How_to_embed_the_JavaScript_engine

LUA: http://heavycoder.com/tutorials/lua_embed.php http://www.ibm.com/developerworks/linux/library/l-embed-lua/

После быстрого просмотра этих ссылок я думаю, что V8 более сложен; и Lua, и SM легко интегрируются в приложение. И чтобы вызывать функции C из SM или Lua, вы должны написать код-оболочку для каждой функции.

person osgx    schedule 30.06.2012
comment
Можете ли вы уточнить, какой тип кода оболочки мы должны писать? - person triple; 12.06.2013
comment
тройной, начните со страницы developers.google.com/v8/get_started. Обертка нужна только в том случае, если вы хотите вызывать собственные (C) функции из кода JS. - person osgx; 12.06.2013