Вдохновение для простого в использовании, возможно, графического языка сценариев

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

IF param1 > 5 + param3 AND current time > 18.00:
  SET param2 TO 3
ELSE
  SET param2 TO 4

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

Теперь мне нужно вдохновение для того, как это реализовать. Очень устаревший инструмент, который наши клиенты используют сегодня, - это чуть больше, чем простой графический диалект: вам не нужно набирать текст в виде простого текста, но вы можете перетаскивать такие символы, как "IF", ​​"THEN", "ELSE", "Parameter"., "Текущее время" и т. Д. На холсте, и вы должны знать и понимать синтаксис и семантику. Я думаю, что мы могли бы сделать лучше.

Я искал графические языки, но мне еще не удалось найти привлекательную систему.

Например, есть язык Lego Mindstorm, который очень прост, но он очень ориентирован на автоматизацию и не очень хорошо обрабатывает математику и логику. Есть labview, который кажется слишком сложным для типичных пользователей. Для ПЛК используется лестничное программирование, но мой опыт показывает, что они также очень ориентированы на автоматизацию и не очень хорошо справляются с математикой. В Yahoo Pipes и некоторых программных синтезаторах есть подход с использованием взаимосвязанных блоков, но с ними также трудно работать, когда требуется математика, а последовательности управления не очень естественны. Тогда есть очень простые альтернативы в стиле мастера, такие как фильтры в Outlook и Evolution, но я не думаю, что они достаточно гибки.

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

1 ответ

Решение

Вы ищете древовидную структуру графического языка или императивного языка?

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

Unreal Kismet: графическая среда сценариев игры сценариев на основе узлов. На основе генераторов событий и действий. Каждый узел может принимать входные события и генерировать выходные события. Хорошо подходит для простых сценариев, когда игра должна реагировать на определенные события в игре (запирать дверь, когда игрок входит в уровень триггера и т. Д.). Реализация сложной логики (такой как for-loop, массивы и т. Д.) Довольно утомительна и подвержена ошибкам, и такие конструкции обычно реализуются с использованием UnrealScript путем создания специализированных узлов Kismet. Основано на потоке событий.

Родные инструменты Reaktor: модульная среда синтезатора. Немного похож на Kismet, но используется для генерации и обработки аудио и MIDI-событий. Точно так же создание сложной логики утомительно.

Редакторы шейдерных / композиционных / анимационных деревьев. Многие игровые движки и 3D-программы включают их. В основном это дерево выражений, где у вас есть операторские узлы с входами и выходами.

Деревья поведения ИИ: Больше, чем деревья выражений, похожие на конечные автоматы.

Другие вопросы по тегам