В свой проект нужно встроить скриптовый язык. Цели использования:
— написание новых функциональных блоков
— вычисления с доступом к специальным объектам
— стыковка с внешней средой
В прошлой версии проекта писали свой интерпретатор. Синтаксис языка был тоже свой.
Сейчас c++, а раньше на дельфях кодили.
Можно ли решить эту задачу проще, чем писать язык с нуля?
Какой язык/синтаксис посоветуете?
Может ещё какими соображениями на эту тему поделитесь... От этого языка может многое зависеть!
Re: Выбор скриптового языка для встаивания в проект
Здравствуйте, Gancho, Вы писали:
G>В свой проект нужно встроить скриптовый язык. Цели использования: G>- написание новых функциональных блоков G>- вычисления с доступом к специальным объектам G>- стыковка с внешней средой
G>В прошлой версии проекта писали свой интерпретатор. Синтаксис языка был тоже свой.
G>Сейчас c++, а раньше на дельфях кодили.
G>Можно ли решить эту задачу проще, чем писать язык с нуля? G>Какой язык/синтаксис посоветуете?
G>Может ещё какими соображениями на эту тему поделитесь... От этого языка может многое зависеть!
Мы на проекте используем JavaScript очень удобный язык, но у нас Java на серваках, но я знаю одну вещь:
Когда Гугл выпустили Chrome они написали свой engine JavaScript на С++ и он open source называется V8
Говорят очень быстрый
Re: Выбор скриптового языка для встаивания в проект
Здравствуйте, Gancho, Вы писали:
G>В свой проект нужно встроить скриптовый язык. Цели использования: G>- написание новых функциональных блоков G>- вычисления с доступом к специальным объектам G>- стыковка с внешней средой
А что за платформа ? Джаваскрипт например это весьма неплохо.
Re: Выбор скриптового языка для встаивания в проект
Python как язык очень прост и красив. Из-за того, что форматирование кода — часть синтаксиса, будет меньше холиваров на эту тему Да и в изучении он прост.
Re: Выбор скриптового языка для встаивания в проект
Здравствуйте, Gancho, Вы писали:
G>В прошлой версии проекта писали свой интерпретатор. Синтаксис языка был тоже свой.
G>Сейчас c++, а раньше на дельфях кодили.
Раз С++, то однозначно Boost.Python
SWIG половины конструкций С++ не понимает (например, пространства имен).
>> lua
Не знал, что такой есть. И неожиданно много на нём писано (судя по статье в Википедии) именно промежуточных элементов систем.
>> А вообще если уже используется Qt, то там есть QScript
Qt используем.
>> А что за платформа ?
БД + моделирующая среда + формы для пользоваталя.
выбор уже большой:
Lua / QScript / V8 / Python / однозначно Boost.Python / SWIG+Python / Javascript
Из всего этого, в силу случая, пару дней знакомлюсь с синтаксисом Питона.
>> Мы на проекте используем JavaScript
Как Вы его используете? Мне бы в общих чертах механизм внедрения в проект внешнего готового языка.
Могу только предположить, что ... например, JavaScript реализован на С++, мы юзаем модули типа JavaScript.h, грубо говоря получаем функцию «execute_JavaScript( text )». При исполнении этой функции или завётся Java-машина, установленная на ПК, или интерпретатор JavaScript, который вкомпиливается в нашу прогу. Если хотим работать в скрипте со своими объектами, то они зовутся кол-бэками, если с внешними либами, то вообще не понятно как это произойдет.
В языке хочется уметь подключать уже имеющееся богатство библиотек. Например, работу с электронной почтой, работа с ftp протоколом и так далее. То есть, как мы сейчас пишем c++ и используем Qt, так же чтобы и в скрипте можно было готовые либы юзать. Например, в статье на Википедии про Питон написано, что куча либ для него уже есть.
Re[2]: Выбор скриптового языка для встаивания в проект
Здравствуйте, Gancho, Вы писали:
G>В языке хочется уметь подключать уже имеющееся богатство библиотек. Например, работу с электронной почтой, работа с ftp протоколом и так далее. То есть, как мы сейчас пишем c++ и используем Qt, так же чтобы и в скрипте можно было готовые либы юзать. Например, в статье на Википедии про Питон написано, что куча либ для него уже есть.
Если нужен полноценный язык с большим количеством библиотек то питон сейчас лучший выбор. Как вариант можно взять руби, но у него и библиотек поменьше и сам он прилично тормознее питона.