stringtranslate.com

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

Простой пользовательский блок в Snap! язык визуального программирования, основанный на Scratch , вычисляющий сумму всех чисел со значениями между a и b.

В вычислительной технике язык визуального программирования ( система визуального программирования , VPL или VPS ), также известный как диаграммное программирование , [1] [2] графическое программирование или блочное кодирование , представляет собой язык программирования , который позволяет пользователям создавать программы , манипулируя программными элементами. графически , а не путем указания их в текстовом виде . [3] VPL позволяет программировать с помощью визуальных выражений, пространственного расположения текста и графических символов, используемых либо как элементы синтаксиса , либо как вторичные обозначения . Например, многие VPL основаны на идее «коробок и стрелок», где рамки или другие объекты экрана рассматриваются как объекты, соединенные стрелками, линиями или дугами, которые представляют отношения. VPL обычно являются основой платформ разработки Low-code .

Определение

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

Общая цель VPL — сделать программирование более доступным для новичков и поддержать программистов на трех разных уровнях [4].

Синтаксис
В VPL используются значки/блоки, формы и диаграммы, пытаясь уменьшить или даже исключить вероятность синтаксических ошибок, помогая организовать программные примитивы для создания правильно построенных программ.
Семантика
VPL могут предоставлять некоторые механизмы для раскрытия значения примитивов программирования. Сюда могут входить функции справки, обеспечивающие функции документации, встроенные в языки программирования.
Прагматика
VPL поддерживают изучение того, что означают программы в конкретных ситуациях. Этот уровень поддержки позволяет пользователям переводить артефакты, созданные с помощью VPL, в определенное состояние, чтобы изучить, как программа отреагирует на это состояние. Примеры: В AgentSheets или AgentCubes пользователи могут переводить игры или симуляции в определенное состояние, чтобы увидеть, как программа отреагирует. С помощью языка программирования Thymio пользователи могут привести робота в определенное состояние, чтобы увидеть, как он отреагирует, т. е. какие датчики будут активированы.

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

Языки Visual Basic, Visual C#, Visual J# и т. д. интегрированной среды разработки ( IDE ) Microsoft Visual Studio не являются языками визуального программирования: представление алгоритмов и т. д. является текстовым, хотя IDE дополняет действия по редактированию и отладке богатым набором инструментов. пользовательский интерфейс. Аналогичное соображение применимо и к большинству других сред быстрой разработки приложений , которые обычно поддерживают конструктор форм , а иногда также имеют графические инструменты для иллюстрации (но не определения) потока управления и зависимостей данных.

Парсеры для языков визуального программирования можно реализовать с помощью грамматик графов . [6] [7]

Типы визуальных языков

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

Блочное программирование
Популяризирован такими платформами, как Scratch и Blockly, используется в образовательных целях и для вводного программирования.
Блок-схемы
Широко используется в разработке программного обеспечения и проектировании систем для представления алгоритмов и процессов.
Интерфейсы с возможностью перетаскивания
Обычно используется в инструментах проектирования графического пользовательского интерфейса и средах разработки для создания пользовательских интерфейсов.
Графы узлов
Часто используется в языках визуального программирования, разработке игр и системах управления потоками данных.
Программирование потоков данных
Популярен в параллельных вычислениях, обработке сигналов и средах визуального программирования.
Знаковое программирование
Используется в различных контекстах для упрощения задач программирования, часто связанных с разработкой мобильных приложений.
Государственные машины
Широко используется в разработке игр, системах управления и моделировании реактивных систем.
Табличное программирование
Встречается в приложениях для работы с электронными таблицами и некоторых средах образовательного программирования.
Программирование на основе временной шкалы
Обычно используется в мультимедийном и анимационном программном обеспечении для упорядочивания событий во времени.
Пространственное программирование
Применяется в некоторых средах интерактивного и 3D-моделирования.
Программирование на основе форм
Используется в приложениях, где пользовательский ввод и графические интерфейсы играют важную роль, например в приложениях ввода данных.

Визуальные языки общего назначения

Реализация кольцевой виртуальной машины (VM) с использованием языка визуального программирования PWCT.

Большинство VPL предназначены для обучения или использования в конкретных областях , где целевыми пользователями являются начинающие программисты. Но есть некоторые исследовательские проекты, пытающиеся создать язык визуального программирования общего назначения , который могут использовать основные программисты в любом программном проекте вместо использования языков текстового программирования, таких как ( C , C++ , Java и т. д.).

Например, такие исследовательские проекты, как Envision [8] [9] и PWCT [10], предназначены для достижения этой цели. Обычно VPL разрабатывается с использованием текстового языка программирования. Разработка VPL общего назначения позволяет сделать наоборот. Например, в 2016 году с использованием визуального программирования разработан новый язык текстового программирования Compiler and Virtual Machine. [11]

Список визуальных языков

Ниже приведен список известных языков визуального программирования.

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

Мультимедиа

Видеоигры

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

Системы / моделирование

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

Хранилище данных/бизнес-аналитика

Разнообразный

Наследие

Визуальные стили

Смотрите также

Рекомендации

  1. ^ Брэгг, SD; Дрискилл, К.Г. (1994). «Диаграммно-графические языки программирования и DoD-STD-2167A». Материалы АВТОТЕСТКОН '94 . стр. 211–220. дои : 10.1109/AUTEST.1994.381508. ISBN 0-7803-1910-9. S2CID  62509261.
  2. ^ Кухейл, Массачусетс; Фарук, С.; Хаммад, Р.; Бахья, М. (2021). «Характеристика подходов к визуальному программированию для разработчиков конечных пользователей: систематический обзор». Доступ IEEE . 9 : 14181–14202. Бибкод : 2021IEEA...914181K. дои : 10.1109/ACCESS.2021.3051043 .
  3. ^ Йост, Беате; Кеттерл, Маркус; Бадд, Рейнхард; Леймбах, Торстен (2014). «Среды графического программирования для образовательных роботов: Open Roberta - еще один?». Международный симпозиум IEEE по мультимедиа 2014 . стр. 381–386. дои : 10.1109/ISM.2014.24. ISBN 978-1-4799-4311-1. S2CID  8272806.
  4. ^ Репеннинг, Александр (2017). «Выходя за рамки синтаксиса: уроки 20 лет блочного программирования в AgentSheets». Журнал визуальных языков и разумных систем . 3 : 68–91. дои : 10.18293/vlss2017-010 .
  5. ^ Джонстон, WM; Ханна, JRP; Миллар, Р.Дж. (2004). «Достижения в языках программирования потоков данных» (PDF) . Обзоры вычислительной техники ACM . 36 (1): 1–34. дои : 10.1145/1013208.1013209. S2CID  5257722 . Проверено 16 февраля 2011 г.
  6. ^ Рекерс, Дж.; Шюрр, А. (1997). «Определение и анализ визуальных языков с помощью грамматик многоуровневых графов». Журнал визуальных языков и вычислений . 8 (1): 27–55. дои : 10.1006/jvlc.1996.0027. S2CID  40088910.
  7. ^ Чжан, Д.-К. (2001). «Контекстно-зависимый формализм графовой грамматики для спецификации визуальных языков». Компьютерный журнал . 44 (3): 186–200. дои : 10.1093/comjnl/44.3.186. hdl : 10397/17637 . S2CID  14139133.
  8. ^ Асенов Д. и Мюллер П., июль 2014 г. Envision: быстрый и гибкий визуальный редактор кода с плавным взаимодействием (обзор). В 2014 году состоялся симпозиум IEEE по визуальным языкам и человеко-ориентированным вычислениям (VL/HCC) (стр. 9–12). IEEE.
  9. ^ «Предвидение».
  10. ^ Файед, М.С., Аль-Куриши, М., Аламри, А., Хоссейн, М.А. и Аль-Дарайсе, А.А., 2020. PWCT: новый язык визуального программирования общего назначения для поддержки повсеместной разработки приложений. Транзакции CCF по всеобъемлющим вычислениям и взаимодействию, 2, стр. 164–177.
  11. ^ Аюни, М., 2020. Начало кольцевого программирования (том 978, № 1, стр. 4842-5832). Апресс.
  12. ^ http://www.computermusicjournal.org/reviews/31-* * * 2/regan-bidule.html
  13. ^ «Редактор шейдеров — Руководство по Blender» . docs.blender.org . Проверено 22 января 2021 г.
  14. ^ «Композитинг — Руководство по Blender». docs.blender.org . Проверено 22 января 2021 г.
  15. ^ «Редактирование текстур — Руководство по Blender» . docs.blender.org . Проверено 22 января 2021 г.
  16. ^ «Справочник/Примечания к выпуску/2.92/Узлы геометрии — Wiki для разработчиков Blender» . wiki.blender.org . Проверено 22 января 2021 г.
  17. ^ «Узлы геометрии — Руководство по Blender» . docs.blender.org . Проверено 2 октября 2021 г.
  18. ^ "Редактор материалов узла Babylon.js" . nme.babylonjs.com . Проверено 22 января 2021 г.
  19. ^ Домашняя страница Construct Classic
  20. ^ Страница Construct Classic на SourceForge.
  21. ^ "Yahoo! Трубы" . Архивировано из оригинала 3 января 2015 г. Проверено 03 января 2015 г.

Внешние ссылки