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-моделирования.
Программирование на основе форм
Используется в приложениях, где пользовательский ввод и графические интерфейсы играют важную роль, например, в приложениях ввода данных.

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

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

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

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

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

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

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

Мультимедиа

Видеоигры

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

Системы/симуляция

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

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

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

Наследие

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

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

Ссылки

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

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