Инструмент моделирования, который я разработал за последние пару лет, написан на C ++ и в настоящее время имеет интерпретируемый интерфейс tcl.Он был написан так, что его можно запустить либо в интерактивной оболочке, либо путем передачи входного файла.В любом случае, входной файл записывается в tcl (со многими дополнительными командами для моделирования, которые я добавил).Это позволяет использовать довольно мощные входные файлы (например, при запуске сим-карт Монте-Карло случайные распределения могут быть запрограммированы как процедуры tcl непосредственно во входном файле).
К сожалению, я обнаружил, что интерпретатор tcl несколько становитсяограничен по сравнению с тем, что могут предложить более современные интерпретируемые языки, и его синтаксис кажется немного загадочным.Поскольку вычислительный движок был написан как библиотека с c-совместимым API, было бы просто написать альтернативные внешние интерфейсы, и я думаю о переходе на новый интерпретатор, однако у меня есть немного времени на выбор (в основномпотому что у меня нет значительного опыта работы со многими устными языками).Опции, которые я начал исследовать, следующие:
Осталось с tcl:
Плюсы:
- Нет необходимости изменять существующий код.
- Существующий вводфайлы остаются прежними.(хотя я бы, вероятно, оставил интерфейс tcl в качестве опции)
- Зрелый язык с большой поддержкой сообщества.
Минусы:
- Ощущение ограниченности синтаксиса языка.
- Получение жалоб отпользователи относительно сложности изучения tcl.
Python:
Плюсы:
- Современный переводчик, известный своей эффективностью.
- Большое, активное сообщество.
- Хорошо известные научные и математические модули, такие как scipy.
- Обычно используемые в академическом научном / инженерном сообществе (типичные пользователи моего кода)
Минусы:
- Я никогда не использовал егои, следовательно, потребуется время, чтобы выучить язык (это тоже профессионал, так как я давно собирался изучать python)
- строгое форматирование входных файлов (отступы и т. д.)
Matlab:
Плюсы:
- Очень мощный и широко используемый математический инструмент
- Мощная встроенная визуализация / построение графиков.
- Расширяется с помощью кода, представленного сообществом,а также коммercial toolboxes.
- Многие в научных и инженерных кругах знакомы с matlab и знакомы с ним.
Минусы:
- Не может распространяться как исполняемый файл - потребуется дополнение / toolbox.
- Требуется (?) Компилятор Matlab (который дорогой).
- Требуется Matlab, который также дорогой.
Эти плюсы и минусы - вот что я смог придумать,хотя у меня очень мало опыта работы с устными языками в целом.Я хотел бы услышать любые мысли по поводу обоих переводчиков, которые я предложил здесь, если перечисленные плюсы / минусы являются законными, и любых других переводчиков, о которых я не задумывался (например, будет ли php подходить для чего-то подобного? Lua?).Опыт непосредственного использования встроенного интерпретатора в ваш код, безусловно, является плюсом!