MVPL (Microsoft Visual Programming Language)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 20:04, 1 июня 2016.
MVPL
Парадигма визуальный, модульный
Спроектировано Microsoft
Первый   появившийся 1973
Печать дисциплины статическая
Лицензия Различные типы
Портал: www.microsoft.com/robotics/

В программировании Визуальным Языком Программирования (VPL) называется любой такой язык, который позволяет пользователям создавать программы, манипулируя различными графическими элементами среды разработки, вместо того, чтобы определять команды текстом. VPL позволяет программировать особым видом визуальных выражений, которые используются либо как элементы синтаксиса языка, либо как второстепенная нотация. Например, многие VPL (известные под названием программирование потока данных и/или диаграммное программирование), базируются на подходе "блоков и стрелок", в котором блоки или какие-либо другие объекты на экране, работают как сущности программы, соединяясь стрелками, линиями или дугами, которые представляют отношения.

Определение

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

  • Ориентированные на иконки
  • Ориентированные на формы
  • Ориентированные на диаграммы

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

Языки визуального программирования

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

Образовательные

Мультимедиа

  • Blender (software), 3D графический пакет с открытым исходным кодом, который включает в себя "редактор узлов" для того, чтобы создавать различные диаграммы в виде графов. Кроие того, сами узлы могут коипоноваться в системы, такие как sverchok, blendgraph и др.
  • OpenMusic, визуальный язык программирования для написания музыки
  • Scala Multimedia

Игры

  • Unreal EngineUnreal Engine 4] содержит внутри себя визуальный ЯП blueprints
  • Kodu, программное обеспечение, обеспечивающее 3D среду визуального программирования, разработанную Microsoft Research
  • RedWire использует метафору компьютерныз чипов для разработки игр

Моделирование / Симуляция

  • EICASLAB, пакет программного обеспечения, позволяющий использовать визуальное программирование потока управления
  • Microsoft Visual Programming Language, язык потока данных
  • VisSim, визуальный язык моделирования и симуляции, позволяет создавать математические модели и тестировать их в реальном времени

Автоматизация

  • CiMPLE, язык визуального программирования от ThinkLABs для обучения робототехнике
  • PLUS+1 GUIDE
  • Pipeline Pilot использущийся в научных целях визуальный ЯП

Хранение данных

  • SQL Server Integration Services, платформа для интеграции и соединения потока задач приложений от Microsoft
  • IBM InfoSphere DataStage, утилита для проведения Extract, transform, load операций от IBM

Разное

  • Lava (programming language) экспериментальный, объектно-ориентированный, основанный на интерпретации язык программирования
  • Yahoo! Pipes визуальный ЯП для программирования потока данных в Веб-технологиях
  • YAWL

Введение в MVPL

Язык визуального программирования от Microsoft (MVPL) - это среда для разработки приложений, построенная на основе графически-ориентированной программной модели потока данных. Вместо исполнения серии последовательных команд, такая система представляет собой последовательность рабочих на сборочной линии, которые выполняют поставленные перед ними задачи как только приходит необходимый материал. В результате, MVPL хорошо подходит для программирования различных параллельных или распределенных сервисов.

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

Пример диаграммы MVPL

Поток данных MVPL состоит из последовательности соединенных активити, представленных блоками с входом и выходом, которые могут быть соединены с другими такими же блоками.

Блоки активити соединены друг с другом

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

Активити также могут включать в себя конструкции из других активити. Это позволяет составлять ваши собственные активити, комбинируя уэе существующие и используя получившийся композит как строительный блок. В этом смысле, приложение, программируемое на MVPL само также является активити. Юлок активити часто содержит его имя и точки соединения. Блок активити также может содержать графику для иллюстрации цели этого активити или некоторые пользовательские элементы взаимодействия, такие как текстовые поля, которые предлагают пользователю вводить данные, проводить присваивания или преобразования данных в активити.

Соединения вызывают функции, например SayText

Активити соединяются с помощью соединительных пинов. Соединительный пин на левой стороне активити представляет входную точку для входящих сообщений, а пин на правой стороне представляет точку для исходящих. Активити получает сообщения, содержащие информацию через свои точки входа. Эти точки входа, кроме того, являются интерфейсом для внутреннего функционала активити, который часто назвают обработчиком. Это могут быть функции, предоставляемые сервисами, либо какие-то собственные потоки данных. Блок активити активирует и обрабатывает информацию во входящем сообщении как только он получает правильное входящее сообщение. Вся информация, отправленная в активити, забирается этим активити. Для случаев, когда необходимо пробросить данные через активити, активити нужно настроить так, чтобы оно реплицировало полученные данные и отправляло их через свои точки выхлда. Активити можен иметь несколько входных точек, каждой из которых может быть сопоставлен набор выходных пинов. Входные точки представлены стрелками, ведущими внутрь блока. Выходные же точки могут быть двух видов:

  • результирующие точки
  • информационные точки

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

Соединительные пины

Результирующие точки часто используются в ситуации, когда выходящая информация посылается как результат какого-либо определенного входящего сообщения. Информационные пины также могут посылать сообщения как результат входящего, но обычно просто являются оповещением о том, что состояние блока внутри изменилось. Дальше выходные пины могут быть соединены с входными одного и более вктивити. Сообщения ответов и сообщения информации также различаются тем, каким образом они доставляют информацию внутри сообщения. Поскольку результирующее сообзение требует какой-то запрос, чтобы начать работу, как только оно выполняется, процесс завершается, т.к. результат возвращается другому активити. А информационные сообщения, напротив, могут генерировать несколько сообщений. В результате, сообщения с ответом чаще всего используются для того, чтобы узнать состояние активити, а информационные - для того, чтобы это состояние менять непрерывно. Т.о. информационные сообщения замещают такой функционал у сообщений ответа, программисту нет необходимости самому отправлять запросы. Какой тип сообщений выбрать для данного активити, решается внутри самого активити.

Среда разработки Microsoft Robotics Developer Studio

Microsoft Robotics Developer Studio (Microsoft RDS, MRDS) - это среда разработки для операционной системы Windows для управления и симуляцией роботов. Она нацелена на академический, энтузиастский и коммерческий интересы и позволяет работать с широким набором железа для роботов. Для корректной работы среды требуется наличие операционной системы Microsoft Windows 7.

В RDS присутствуют 4 компонента:

  • CCR (Concurrency and Coordination Runtime)
  • DSS (Decentralized Software Services)
  • VPL (Visual Programming Language)
  • VSE (Visual Simulation Environment)

Инструменты, которые позволяют разрабатывать в MRDS также соержат графическую среду разработки - Microsoft Visual Programming Language, а инструменты командной строки позволяют работать с проектами Visual Studio для C#. Кроме того, в пакет входят инструменты 3D симуляции.

Начало работы с MVPL

Начнем с запуска VPL из меню "Пуск". Когда VPL загружен, пользователь видит окно с набором меню, полей ввода, панелей инструментов, кроме того используется диаграмма табами (показанная на слудующем рисунке)

Стартовый экран

VPL - это язык программирования потоков данных, в котором программа создается путем написания графа или "диаграммы активити" (блоков, которые представляют DSS сервисы и др. функции), соединенные вместе с использованием соединений, которые определяют, как поток данных будет переходить между разными активити. Одна или более активити составляют то, что называется программой в других языках программирования, хотя в VPL это обычно называется Проект. Пользователь строит диаграммы в основном рабочем окне, в центре на скриншоте над табами стоит название Диаграмма. Когда вы открываете новый проект, VPL создает эту стандартную диаграмму для пользователя, но если необходимо, можно создать еще несколько диаграмм. Сообщения перетекают между активити по соединениям и могут переносить с собой данные или контролировать логический поток диаграм. В VPL потоки данных/команд могут происходить параллельно, т.к. соответствующая среда DSS позволяет асинхронное исполнение.

Пользовательский интерфейс

Окна VPL Отображают панель меню и инструментов для того, чтобы использовать команда, а также область в центре для составления диаграммы, вместе с несколькими подокнами включая панели инструментов, которые отображают список встроенных активити для потока данных и доступные сервисы (написанный до нас код, который выполняет функции), который вы можете использовать в ваших проектных диаграммах. Текущий код проекта (диаграммы и файлы конфигурации) и секция для редактирования свойств выбранных эдементов. Панели инструментов, проектное окно и окно свойств можно передвигать и схлопывать а также перемещать на основном окне VPL. Вы можете использовать несколько диаграмм внутри одной диаграммы VPL программы, которая потом может быть доступна как отдельные табы наверху секции диаграмм. Кроме того, вы можете выборочно скрывать или переотображать спрятанное окно инструментов, используя команду Инструменты на панели Вид. Итак, если пользователь непреднамеренно закроет окно, нажав на крест в верхнем правом углу экрана, вы всегда можете его вернуть обратно. Для того, чтобы начать построение диаграммы потока данных, переместите активити потока данных, щелкнув на нем дважды (панели Инструменты).

Базовое окно действий с Активити

Окно "Основные активити" включает блоки активити для определения данных "Data", контроль потока данных (If и Switch), комбинация сообщений (JOIN и MERGE), выполнение вычислений (Calculate), сохранение результата в переменных (Variable). Также есть блок Comment, позволяющий приложить к активити текстовые блоки комментариев на диаграмме. VPL также включает блок активити, позволяющий создавать собственные активити. Кастомные активити могут принимать информацию, обрабатывать ее и выдавать результат. Таким образом, кастомные активити могут быть заменены понятием подпрограммы, если вам более понятен язык других языков программирования. Если необходимо выполнить одну и ту же процедуру в нескольких местах диаграммы, тогда кастомное активити - наилучший способ написать что-то один раз, а потом не повторяться, а переиспользовать этот код в других активити множество раз. Информацию о кастомных активити можно найти в секции Creating и Editing Activities обучающей статьи.

Окно инструментов Сервисы

Окно инструментов Services отображает все доступные сервисы. Сервисы, которые там присутствуют, зависят от тех, которые были установлены во время установки VPL. Список можно расширять, добавляя DSS сервисы и инициализируя их в директории установки в папке bin.

Сервисы, отображенные в этом окне, часто зависят от содержимого окна Services после применения Find Service окна, которое появляется в самом верху списка. Если ввести туда текст, появятся только сервисы, в названии которых есть этот текст. Фильтр ищет совпадения в имени отображаемом в списке и его описании. Пустое окно фильтра отображает все сервисы. Чтобы очистить окно фильтра сервисов, необходимо нажать на X на панели текстового окна ввода.

Окно диаграмм

На скриншоте выше показано, что первая диаграмма проекта всегда называется Diagram. Для простых программ это и есть единственное, что необходимо использовать.

Вы также можете создавать новые диаграммы, используя меню диаграмм, с помощью функции Add Diagram. Добавление диаграмм используется для разбиения вашего проекта на модули и их параллельной работы. Диаграммы позволяют сделать проект более управляемым.

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

Окно проекта

Окно проекта отображает список диаграмм и конфигурационных файлов, которые включены в проект.

Для того чтобы переоткрыть диаграмму, используйте пункт контекстного меню Context Pop-up Menu этой диаграммы в списке диаграмм и там выберите пункт Open.

Чтобы добавить больше диаграмм в проект, отобразите контекстное меню снова и выберите пункт Add Diagram. В качестве альтернативы этому подходу можно использовать этот же пункт меню из File menu. Каждый раз при добавлегнии диаграммы, ее название будет стандартным по умолчанию, а если такое уже существует, то будет пронумеровано по порядку: Diagram0, Diagram1. Имя можно изменить, но необходимо помнить, что имена могут состоять только из букв, цифр и знака (_).

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

Окно свойств

Окно свойств отображает свойства текущего выбранного элемента. Это позволяет конфигурировать активити (в том числе, сервисы) и их соединения с диаграммой.

Для того, чтобы поменять свойства определенного активити, достаточно выбрать это активити и его свойства появятся в окне свойств.

Окно ошибок

В то время, как вы работаете с VPL, иногда можно сделать случайную ошибку. Забыли поставить свойство или провести соединение. Когда такое произойдет, интерпретатор языка поставит красный восклицательный знак на активити с ошибкой.

Проверка ошибок происходит в фоновом режиме, поэтому не всегда удастся увмдеть ошибку непременною

Знак ошибки

Чтобы отобразить все ошибки целого проекта, можно найти окно Errors window. К сожалению, нет возможности отобразить это окно по умолчанию, необходимо выбрать его из меню, пройдя по пути: View \ Toolboxes \ Errors.

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

Окно ошибок

Базовые активити

В язык MVPL включен некоторый набор базовых активити, которые используются для создания потока данных. Эти блоки обычно соединены с другими сервисными блоками, но иногда могут быть соединены и друг с другом.

Активити

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

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

Кастомные активити также можно компилировать в сервисы, которые также могут быть частями других сервисов и других диаграмм VPL.

Базовое Activity

Вычисление

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

Вычисление

Для числовых значений можно использовать:

+ сложение
- вычитание
* умножение
/ деление
 % остаток от деления

Для логических операций можно использовать:

&& И
|| ИЛИ
! НЕ

Кроме того, в выражения можно включать скобки для расстановки приоритета операций.

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

Комментарий

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

Комментарий можно схлопнуть, если кликнуть на стрелку на правой стороне панели действий.

Комментарий

Данные

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

Данные

Условия

Активити условия предлагает выбор выходов, куда можно переправить входящее сообщение, базируясь на выполнении тестового условия, которое вы введете. Если условие верно, то входящее сообщение с данными будет перенаправлено в первый исходящий поток, если нет, то будет выбран поток "Иначе"

= or == равенство
 != or <> неравенство
< меньше
> больше
<= меньше-равно
>= больше-равно

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

Каждое новое условие имеет свой выход, поэтому можно компоновать несколько условий в одном. Условия вычисляются сверху вниз и первый вычисленный результат возвращается

Условия

Объединение

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

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

Объединение

Список

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

Чтобы добавлять записи в список, используются так называемые функции списка

Список

Функции списка

Активити функций списка предоставляет пользователю фунеции модификации списка. Используя выпадающее меню, можно выбрать необходимую функцию и применить ее к списку.

Функции списка

Слияние

Активити слияния сливает два и более потока данных вместе.

Никакого условия или зависимости от входящих типов данных нет, поэтому основная цель активити - просто передать уже существующие объекты сквозь активити.

Слияние

Switch

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

Это активити очень похоже на активити условия, но для более сложных объектов оно проходит гораздо глубже других активити.

Switch

Переменные

Активити Переменная позволяет создавать и получать значения некоторой переменной. Чтобы выбрать переменную, можно также выделить его из меню Drop-Down активити.

Типы данных, представляемые переменными, включают целые числа, числа с двойной точность., строки, списки и другие сложные структуры данных. Полный список типов [1]

Hello World

Классическим введением в язык программирования можно назвать программу, которая отображает строку "Hello World". Это легко может быть выполнено и в MVPL.

Для этого необходимо два блока на диаграмме - блок данных и блок простого диалога.

Это обучение можно найти и пересмотреть на сайте Microsoft Visual Programming Language или в папке с примерами Microsoft Robotics Developer Studio. Samples\VPLTutorials\Tutorial1

Создание первой диаграммы

Для этого вначале необходимо запустить VPL. Сделать это можно из меню пуск, списка всех программ, и там уже запустить среду разработки Microsoft Robotics Developer Studio.

Из меню файлов выбрать New для создания нового проекта. Вставить Data активити, выбрав его из списка Basic Activities. Далее создать диалоговый бокс Data и напишите Hello World.

Блок активити данных

От выходного пина активити данных Data в направлении блока Simple Dialog необходимо создать соединение. Тогда Connections автоматически откроется блок соединения. Из первого списка выбрать DataValue а из второго - AlertDialog.

Диалоговое окно соединений

Тогда откроется окно соединений. В выпадающем меню можно выбрать значение.

Data Connections

Этот блок говорит VPL о том, что вы хотели бы применить активити данных к сообщению, которое поступило тревогой к запросу.

Законченная диаграмма

Теперь выберите команду Run или нажмите F5. Если проект еще не был собран, откроется окноSave.

Теперь приложение полностью готово к запуску. После нажатия Run должен был появиться блок предупреждения

Блок предупреждений

Для того, чтобы посмотрить остальные примеры использования, обратитесь к странице [2]

Примечания

  1. MVPL Data Types данных
  2. Samples and Tutorials

Ссылки