Язык сценариев в реальном времени + MS DLR? - PullRequest
1 голос
/ 10 февраля 2009

Для начала я должен сообщить вам, ребята, что я пытаюсь сделать. У проекта, над которым я работаю, есть требование, которое требует создания собственной системы сценариев. Это будет использоваться не программистами, которые используют приложение, и должно быть как можно ближе к естественному языку. Примером может быть, если пользователю нужно запустить пользовательское моделирование и построить вывод, код, который он напишет, должен выглядеть так:

переменная input1 равна 10; переменная input2 равна 20;

значение переменной1 - СРЕДНЕЕ (вход1, вход2);

переменная условие1 истинно; если условие1, то PLOT (значение1);

Может не иметь большого смысла, но это только пример. AVERAGE и PLOT - это функции, которые мы хотели бы определить, им нельзя позволять изменять их или даже видеть, как они работают. Возможно ли что-то подобное с DLR? Если нет, какие еще варианты у нас были бы (начать с ANTRL, чтобы определить грамматику, а затем двигаться дальше?)? В будущем это может потребоваться для запуска с использованием XBAP и WPF, так что это также то, что мы должны рассмотреть, но мало что увидели в dlr & xbap. Спасибо, и, надеюсь, все это имеет смысл.


Lua не вариант, так как он отличается от того, к чему они уже привыкли.

Ральф, он собирается реагировать, и, честно говоря, период времени, когда результаты должны возвращаться пользователю, может составлять 1/100 секунды вплоть до 2 недель или месяца (очень сложные математические функции) .

По сути, у них уже есть система, которую они приобрели, которая делает кое-что из того, что им нужно, и включает собственный язык сценариев, который делает то, что я упоминал выше, и они не хотят изучать новый, они просто хотят скопировать его и добавить функциональность. Я думаю, что я просто начну с ANTRL и уйду оттуда.

Ответы [ 5 ]

3 голосов
/ 10 февраля 2009

Lua

это маленький, быстрый, легко встраиваемый, портативный, расширяемый и веселый!

1 голос
/ 10 февраля 2009

Я полагаю, что теоретически вы можете использовать DLR, но я не уверен в поддержке сценария XBAP (частично доверенного?).

Если вы разместите DLR, вы быстро сможете использовать сценарии IronRuby или IronPython. Вы хотели бы взглянуть на эти реализации при создании собственной языковой реализации. Если вы отправите свой вопрос в список рассылки IronPython Я уверен, что вы получите лучший ответ по сценарию XBAP, и некоторые разработчики создали ToyScript .

1 голос
/ 10 февраля 2009

Lua - определенно лучший выбор для мягкой системы реального времени (например, компьютерных игр). Подробнее см. http://shootout.alioth.debian.org/.

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

0 голосов
/ 10 февраля 2009

Какое требование в реальном времени вы пытаетесь выполнить? Является ли симуляция жесткой симуляцией в реальном времени (какой-то вид симуляции аппаратного обеспечения в цикле ==> меньше 1/1000 секунды)? Или вы хотите, чтобы система сценариев "реагировала" на ввод пользователя ==> 1/10 должно быть достаточно.

Я не эксперт в отношении MS DLR, но, насколько мне известно, он не поддерживает жесткие системы реального времени. Возможно, вы захотите взглянуть на спецификации в реальном времени для Java (RTSJ)

0 голосов
/ 10 февраля 2009

Во-первых, я думаю, что определение вашего собственного языка - это , а не .

  • Прежде всего потому, что наибольший прирост производительности вы можете получить для программистов или непрограммисты - это инструменты разработки. Вы (и 99,9% от нас) не собираетесь писать инструменты так же хорошо, как их.
  • Язык дизайна жесткий .
  • Языковая поддержка и документация, также трудно

Я бы порекомендовал искать готовое решение. Если бы вы могли найти язык, который может заблокировать некоторые функции, это было бы хорошей отправной точкой. MatLab будет первым, что придет мне в голову.

И, наконец, отбросьте часть естественного языка, BASIC, COBOL и YA-TDWTF-Lang , которые все пытались и не смогли это сделать.


Полное раскрытие: я работаю в компании, которая разрабатывает обобщенную предметно-ориентированную языковую "систему". Он нацелен на приложения для ввода / вывода данных, поэтому он не является подходящим и еще не готов к бета-тестированию. В результате я немного осведомлен и предвзят.

...