LINUX.ORG.RU

Посоветуйте скриптовый язык для связки с С++

 


0

3

Добрый день!

Посоветуйте скриптовые языки, которые можно использовать в связке с С++.

Просто напишите язык который можно использовать в связке с С++, в идеале ещё и ссылку прикрепите на русскоязычный (ну или англ.) сайт по вашему языку.

Заранее спасибо.

Boost.Python, JNI (Java) (на хабре об этом даже статья есть).
Об этом всём советую тс-у самому найти.

kachsheev ★★★
()

Луа если важна скорость, пистон если предполагается что эти скрипты кто-то еще помимо разработчиков будет писать.

vazgen05 ★★★
()

lua, squirrel, lisp(ecl), forth(ficl), scheme (guile), haxe (через nekovm)

anonymous
()
Ответ на: комментарий от tailgunner

Python

Приглянулся питон... Начну с него. Спасибо!

-ещё бы ссылочку на тему «Как прикурочить питон к плюсам».

temakonkin
() автор топика
Ответ на: комментарий от anonymous

А что не так, кстати? Я не большой знаток по плюсам, но Lua это чуть ли не стандарт для встраиваемых языков, простой и компактный, в отличие от Питона. Что за специальные проблемы с крестами?

tired_eyes
()
Ответ на: комментарий от MKuznetsov

Насколько я знаю, DMDscript заброшен, и вестей от него нет уже года 3.

tired_eyes
()
Ответ на: комментарий от tired_eyes

Я не большой знаток по плюсам, но Lua это чуть ли не стандарт для встраиваемых языков, простой и компактный

Сам язык простой, но встраивать стек-машину куда бы то ни было это то еще веселье. А интероп с плюсовыми объектами ваще пестня.

anonymous
()
Ответ на: комментарий от anonymous

м?

<code> int call_test( lua_State *L ) { lua::state ls(L); auto data = ls.get_opt<int>(2, -1); if( data == -1 ) { ls.push( ); ls.push( «Data is invalid.» ); return 2; } auto name = ls.get_opt<std::string>(1); auto res_table = make_table( ); res_table[1] = name; res_table[2] = data; res_table[3] = make_table( ); res_table[3][«some_calcs»] = some_calcs(name, data); res_table[3][«some_calcs2»] = some_calcs2(name, data); ls.push( res_table ); return 1; } </code> Что тут сложного? Луа простая, как топор.

anonymous
()
Ответ на: комментарий от anonymous

фак

int call_test( lua_State *L ) 
{
    lua::state ls(L); 
    auto data = ls.get_opt<int>(2, -1); 
    if( data == -1 ) { 
        ls.push( ); 
        ls.push( «Data is invalid.» ); 
        return 2; 
    } 
    auto name = ls.get_opt<std::string>(1); 
    auto res_table = make_table( ); 
    res_table[1] = name; 
    res_table[2] = data; 
    res_table[3] = make_table( ); 
    res_table[3]["some_calcs"] = some_calcs(name, data); 
    res_table[3]["some_calcs2"] = some_calcs2(name, data); 
    ls.push( res_table ); 
    return 1; 
}
anonymous
()
Ответ на: комментарий от anonymous

А вообще яб еще в сторону схемы посмотрел.

anonymous
()

в зависимости от целей встраивания, бывает резонно в С/C++ встраивать именно C/C++ :-) существуют-же всякие cling, ch

MKuznetsov ★★★★★
()
Ответ на: комментарий от anonymous

Метатаблицы? Не, не слышал. Ну this придется самому резолвить, да.

    local i = lcd_rgb.new( )
    i:set_color( 100, 150, 100 ) 
    i:set_test( "bla-bla-bla\n1234567" )
anonymous
()
Ответ на: комментарий от tired_eyes

Я не большой знаток по плюсам, но Lua это чуть ли не стандарт для встраиваемых языков, простой и компактный, в отличие от Питона.

+1

Kroz ★★★★★
()
Ответ на: комментарий от anonymous

Все я слышал, а по факту до boost.python lua в присядку дрочить и дрочить.

Давай уже сразу Java рекомендуй, чего уж мелочиться. Питон не достаточно жирный.

Ведь ТопикСтартеру явно нужны фичи, которых нет в Луа а есть в Пистоне, ты ж ведь это уже выяснил, так?

Kroz ★★★★★
()
Последнее исправление: Kroz (всего исправлений: 1)

Питон(Boost), жабоскрипт(QJsEngine)

anonymous
()

Посмотри еще chaiscript и angelscript.

sigurd ★★★★★
()

Ну и до кучи, компактная реализация js1.5 — http://duktape.org/, это если lua не нравится.

loyd
()
Ответ на: комментарий от Kroz

Давай уже сразу Java рекомендуй

JNI ваще адок. Ты походу в матчасти вообще плох.

Ведь ТопикСтартеру явно нужны фичи, которых нет в Луа а есть в Пистоне, ты ж ведь это уже выяснил, так?

ТС уже, между прочим, определился. Откуда такая боль? Да, луа компактное говно. Размер сейчас, по сравнению с удобством, мало где важен.

anonymous
()
Ответ на: комментарий от Kroz

фичи, которых нет в Луа а есть в Пистоне

Встраивай в проект скриптовый язычок для простоты @ разводи в нем модульно-классовую иерархию

ps: в питон апи уже завезли потокобезопасность? Или c++ проект автоматом в подарок получает GIL?

makoven ★★★★★
()

Если встраивать, то Lua. Если расширять, то Python (например, через Boost.Python). Остальное всё маргинальщина.

rupert ★★★★★
()
Последнее исправление: rupert (всего исправлений: 1)

скриптовые языки, которые можно использовать в связке с С++.

js - стильно, модно, молодёжно.

no-such-file ★★★★★
()

А чем С++ не устраивает, что понадобилось встраивать скриптовый язык?

anatoly
()

Вообще cpp-шники любят в пистон и луа. Так что если есть ненулевая вероятность, что проект будет сопровождать другие плюсовики - выбор у тебя не так богат. А вообще - почти все. От маргинальных лиспов и олдскульных перлов, до хипстерких рубей и <четамещенапридумывали>

ioway
()
Ответ на: комментарий от makoven

Или c++ проект автоматом в подарок получает GIL?

Ага. И дедлоки на нем при неаккуратном использовании :)

С луа, на самом деле, все просто только до тех пор, пока разным потокам не понадобится работать с одним экземпляром VM

annulen ★★★★★
()
Ответ на: комментарий от anonymous

Сам язык простой, но встраивать стек-машину куда бы то ни было это то еще веселье. А интероп с плюсовыми объектами ваще пестня.

Для первого и второго есть куча готовых биндингов. Простейший можно написать самому, но не использовать вообще никакой прослойки - ССЗБ

annulen ★★★★★
()

Сейчас в моде жабаскрипт. Я бы еще на встраиваемые лиспы посмотрел. Остальное — ненужно.

Oxdeadbeef ★★★
()

Настоятельно советую луа, так как у него маленький и быстрый рантайм. Питон нужен только если скрипты действительно большие, и потому, важно сделать их предельно понятными.

Aswed ★★★★★
()
Ответ на: комментарий от Aswed

Настоятельно советую луа, так как у него маленький и быстрый рантайм

Пара-тройка метров давно ничего не решают.

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