В вычислительной технике язык визуального программирования ( VPL ) - это любой язык программирования, который позволяет пользователям создавать программы , манипулируя элементами программы графически, а не задавая их в текстовом виде . [1] [2] VPL позволяет программировать с использованием визуальных выражений, пространственного расположения текста и графических символов, используемых в качестве элементов синтаксиса или вторичной нотации . Например, многие VPL (известные как поток данных или схематическое программирование ) [3] [4]основаны на идее «прямоугольников и стрелок», где прямоугольники или другие экранные объекты рассматриваются как объекты, соединенные стрелками, линиями или дугами, которые представляют отношения.
Определение
VPL могут быть дополнительно классифицированы в соответствии с типом и степенью используемого визуального выражения на языки, основанные на пиктограммах, языки на основе форм и языки диаграмм. Среды визуального программирования предоставляют графические или пиктограммы, которыми пользователи могут манипулировать в интерактивном режиме в соответствии с определенной пространственной грамматикой для построения программ.
Общая цель VPL - сделать программирование более доступным для новичков и поддержать программистов на трех разных уровнях [5]
- Синтаксис : VPL используют значки / блоки, формы и диаграммы, пытаясь уменьшить или даже полностью исключить потенциальные синтаксические ошибки, помогая организовать примитивы программирования для создания правильно сформированных программ.
- Семантика : VPL могут предоставлять некоторые механизмы, раскрывающие значение примитивов программирования. Сюда могут входить справочные функции, обеспечивающие функции документации, встроенные в языки программирования.
- Прагматика : VPL поддерживают изучение того, что программы означают в конкретных ситуациях. Этот уровень поддержки позволяет пользователям переводить артефакты, созданные с помощью VPL, в определенное состояние, чтобы исследовать, как программа отреагирует на это состояние. Примеры: в AgentSheets или AgentCubes пользователи могут установить игры или моделирование в определенное состояние, чтобы увидеть, как программа отреагирует. С помощью языка программирования Thymio пользователи могут привести робота в определенное состояние, чтобы увидеть, как он отреагирует, то есть какие датчики будут активированы.
Текущие разработки пытаются интегрировать подход визуального программирования с языками программирования потоков данных, чтобы иметь либо немедленный доступ к состоянию программы , что приводит к отладке в режиме онлайн, либо автоматическое создание программы и документацию. Языки потоков данных также допускают автоматическое распараллеливание , что, вероятно, станет одной из величайших проблем программирования в будущем. [6]
Visual Basic , Visual C # , Visual J # и т.д. языки Microsoft Visual Studio IDE не визуальные языки программирования: представление алгоритмов и т.д. является текстовым , даже если IDE приукрашивает редактирования и отладки деятельности с богатым пользовательским интерфейсом. Аналогичное соображение применимо к большинству других сред быстрой разработки приложений, которые обычно поддерживают конструктор форм, а иногда также имеют графические инструменты для иллюстрации (но не определения) потока управления и зависимостей данных.
Парсеры для языков визуального программирования могут быть реализованы с использованием грамматик графов . [7] [8]
Список визуальных языков
Ниже приводится список известных языков визуального программирования.
Образовательные
- AgentCubes , 3D- и 2D-дизайн игр и инструменты для моделирования компьютерного мышления.
- AgentSheets , инструмент для разработки игр и информатики.
- Алиса , объектно-ориентированный язык, используемый для программирования трехмерных сред.
- Analytica для построения и анализа количественных моделей для анализа решений и рисков.
- App Inventor для Android , инструмент для создания приложений Android , основанный на Blockly и Kawa .
- Blockly , клиентская библиотека для языка программирования JavaScript для создания блочных языков визуального программирования (VPL) и редакторов.
- Bubble для создания готовых к работе веб-приложений .
- Catrobat , блочный язык визуального программирования для анимации, игр
- Алгоритм потока создает исполняемые блок-схемы, которые можно преобразовать на несколько языков.
- Hopscotch , приложение для iPad и язык визуального программирования для создания мобильных приложений с сенсорным экраном.
- Kodu , инструмент визуального программирования для Logo .
- Kojo , язык программирования, IDE и среда обучения.
- mBlock , расширение Scratch для аппаратных интерфейсов Arduino . Разработано Makeblock .
- Open Roberta , среда онлайн-программирования от Fraunhofer IAIS , предназначенная для детей.
- Raptor , продукт USAF , для рисования исполняемых блок-схем.
- Scratch , продукт Массачусетского технологического института , предназначен для детей, посещающих дошкольные и внешкольные классы.
- ScratchJr , еще один продукт MIT , рассчитанный на детей 5-7 лет.
- Щелчок! , повторная реализация BYOB на основе браузера и расширение Scratch с первоклассными процедурами и списками. Используется для обучения в Калифорнийском университете в Беркли .
- Создатель Stagecast , ранее Apple's Cocoa: Internet Authoring for Kids.
- StarLogo , язык моделирования на основе агентов, разработанный Митчелом Резником , Эриком Клопфером и другими в MIT Media Lab . Расширение логотипа языка программирования (а диалект в Лиспе ).
- ToonTalk , система программирования для детей.
- Visual Logic для создания исполняемых блок-схем.
- VIPLE Visual IoT / языковая среда программирования робототехники
Мультимедиа
- AudioMulch , среда для создания звука и музыки на основе потоков аудиосигналов
- Bidule , модульная среда узлов и патч-кордов для создания интерактивной компьютерной музыки и мультимедиа (Windows, MacOS). [9]
- Blender (программное обеспечение) , то с открытым исходным кодом 3D графика пакет, включает в себя узел графику для создания шейдеров , [10] композиты [11] и текстуру. [12] В грядущем выпуске блендера 2.92 будет включена новая система геометрических узлов [13], помимо всех узлов будущего проекта. [14] [15]
- Cameleon , графический функциональный язык
- Clickteam 's The games factory / Серия Multimedia fusion, среды, созданные для визуально развивающих игр
- Dynamo , интерфейс генеративного моделирования для Autodesk Revit
- Filter Forge Node на основе генерации фильтров для обработки изображений.
- Houdini (программное обеспечение) vfx, программное обеспечение для моделирования и анимации.
- GenerativeComponents , параметрическое программное обеспечение САПР, разработанное Bentley Systems
- Grasshopper 3d , интерфейс генеративного моделирования для Rhinoceros 3D
- Kyma (язык звукового дизайна) , язык визуального программирования для звукового дизайна, используемый музыкантами, исследователями и звукорежиссерами.
- Mama (программное обеспечение) - язык программирования и IDE для создания 3D-анимации и игр.
- Max (программное обеспечение) , среда визуального программирования для создания интерактивных музыкальных и мультимедийных приложений в реальном времени
- Макс / MSP
- Чистые данные
- нато 0 + 55 + 3
- Nodal , приложение для генеративного программирования на основе узлов для музыкальной композиции
- Nuke , объектно-ориентированный визуального программирования программного обеспечения для визуальных эффектов композитинга от The Foundry питание от Tcl, Python и Blink-скрипт.
- OpenMusic , визуальный язык программирования для музыкальной композиции (на основе Common Lisp Object System (CLOS)) приложений и мобильных приложений
- Pure Data (Pd) - это язык визуального программирования, разработанный для создания интерактивной компьютерной музыки и мультимедийных произведений.
- Quartz Composer , язык для обработки и визуализации графических данных ( macOS )
- Reaktor , язык обработки DSP и MIDI от Native Instruments
- Scala Multimedia Authoring Suite и полная мультимедийная система для AmigaOS и Windows
- Softimage с интерактивной творческой средой ICE.
- SynthEdit , инструмент построения синтезатора с использованием VPL.
- TouchDesigner , визуальный язык программирования для мультимедийного контента в реальном времени
- Virtools , промежуточное программное обеспечение, используемое для создания интерактивных 3D-приложений.
- vvvv , набор инструментов общего назначения, специализирующийся на синтезе видео в реальном времени и программировании больших медиа сред с физическими интерфейсами, анимированной графикой в реальном времени, аудио и видео.
- WireFusion , среда визуального программирования для создания интерактивных трехмерных веб-презентаций
Видеоигры
- В Babylon.js есть редактор материалов узлов, который можно использовать для создания шейдеров, процедурных текстур, систем частиц и эффектов постобработки. [16]
- Blender Game Engine (редактор графической логики)
- Construct 2 - это редактор 2D-игр на основе HTML5, разработанный Scirra Ltd.
- Construct Classic - это предыдущая версия Construct с открытым исходным кодом на основе DirectX. [17] [18]
- CryEngine имеет язык визуального программирования на основе узлов под названием FlowGraph.
- GameMaker Studio имеет систему создания игр перетаскиванием, разработанную YoYo Games.
- GameSalad - это инструмент для создания визуальных игр, разработанный GameSalad, Inc.
- GDevelop - это инструмент для создания визуальных игр, созданный Флорианом Ривалем (4ian).
- Godot , собственное программное обеспечение для разработки игр с открытым исходным кодом, лицензионное MIT .
- Human Resource Machine - это игра-головоломка на основе визуального программирования, разработанная Tomorrow Corporation .
- Kodu , программное обеспечение, предназначенное для программирования игр с трехмерным интерфейсом, разработанное Microsoft Research.
- Pixel Game Maker MV - это интерфейсный инструмент для разработки 2D-видеоигр.
- Rec Room включает систему создания игр с языком визуального программирования на основе узлов под названием Circuits.
- В Snowdrop есть система визуальных сценариев.
- Stencyl , инструмент для создания видеоигр.
- Начиная с выпуска ECS, Unity имеет систему визуальных сценариев.
- В Unreal Engine 4 есть язык визуального программирования на основе узлов, называемый Blueprints, а также шейдеры.
- Clickteam Fusion , программное обеспечение для создания 2D-игр с системой редактирования событий, разработанное Clickteam SARL, первоначально известное как Klik n 'Play, The Games Factory и Multimedia Fusion 2
Многие современные видеоигры используют поведение дерев , которые в принципе семейство простых языков программирования , предназначенные для модели поведения для неигровых персонажей . Поведение моделируется в виде деревьев и часто редактируется в графических редакторах.
Системы / моделирование
- Analytica , коммерческий визуальный язык для моделей решений, основанных на диаграммах влияния .
- BPEL (Business Process Execution Language) , в настоящее время графический пользовательский язык программирования, используемый для создания логики оркестровки для данных и веб-сервисов. Он основан на XML, но имеет графический интерфейс для более быстрого кодирования.
- ДРАКОН , графический алгоритмический язык
- EICASLAB , программный пакет, включающий графический язык для поддержки проектирования архитектур управления
- Flowcode - это графический язык программирования для программирования встроенных микропроцессоров.
- Схемы функциональных блоков , используемые в программируемых логических контроллерах
- GNU Radio , набор инструментов для разработки, который предоставляет блоки обработки сигналов для реализации программно-определяемых радиостанций и систем обработки сигналов.
- KNIME , Konstanz Information Miner, представляет собой платформу для анализа данных, отчетности и интеграции с открытым исходным кодом.
- LabVIEW , графический язык, разработанный для инженеров и ученых
- Релейная логика , язык, имитирующий релейную логику, обычно используемую в программируемых логических контроллерах.
- MeVisLab , кроссплатформенный фреймворк для обработки медицинских изображений и научной визуализации
- Microsoft Visual Programming Language , язык потока данных для программирования робототехники, входящий в состав Microsoft Robotics Studio.
- MindRover , игра-программирование роботов, использующая язык "проводки" потоков данных.
- Minibloq , язык визуального программирования для робототехники и плат, совместимых с Arduino
- MST Workshop , интерактивный язык визуального программирования для создания математических решений, быстрого прототипирования, двумерных и трехмерных графических приложений.
- Node-RED : инструментарий для быстрой разработки программных систем
- NXT-G , язык визуального программирования для набора робототехники Lego Mindstorms NXT
- Визуализация научных данных OpenDX с использованием языка визуального программирования и модели потока данных
- OpenWire - добавляет в Delphi возможности программирования визуального потока данных с помощью компонентов библиотеки визуальных компонентов (VCL) и графического редактора (одноименный бинарный протокол не связан)
- Orange - инструмент визуального программирования с открытым исходным кодом для интеллектуального анализа данных , статистического анализа данных и машинного обучения.
- Язык OutSystems, язык визуального моделирования для разработки и изменения всех уровней бизнес-ориентированных веб-приложений.
- Prograph - объектно-ориентированный язык программирования, в котором используются пиктограммы для обозначения действий, выполняемых с данными.
- Ptolemy Project - проект, направленный на моделирование и проектирование встроенных систем реального времени .
- Графический интерфейс Qucs для настройки моделирования поведения сигнала и шума электронной схемы
- Reallusion - iClone , трехмерное программное обеспечение с языком Lua и визуальным программированием.
- ROBO Pro , язык визуального программирования для робототехнического комплекта fischertechnik
- Scicos Графический язык, связанный с пакетом численного анализа ScicosLab (первоначально SciLab ).
- Последовательная функциональная диаграмма , язык программирования, подобный сети Петри, для программируемых логических контроллеров
- Simulink , графическая среда программирования для моделирования, моделирования и анализа многодоменных динамических систем
- Stateflow , графический язык, который включает исполняемые диаграммы переходов состояний, блок-схемы, таблицы переходов состояний и таблицы истинности.
- STELLA , VPL для моделирования системной динамики
- Softimage ICE , система на основе узлов, которая используется для создания и изменения 3D-моделей , моделирования частиц и выполнения различных других задач.
- VEE
- VisSim , язык моделирования и симуляции, позволяет быстро создавать математические модели и выполнять их в режиме реального времени.
Автоматизация
- Автомат
- CiMPLE , язык визуального программирования от ThinkLABs для обучения робототехнике
- Flow - язык графической интеграции, используемый в платформе webMethods.
- Pipeline Pilot - это научный язык программирования и программирования потоков данных, а также инструмент разработки для Accelrys Enterprise Platform .
Хранилище данных / бизнес-аналитика
- Ab Initio , инструмент для обработки ETL путем создания графиков
- Alteryx Designer , инструмент для обработки и анализа данных , включающий SQL , R и Python.
- Apache Nifi , программный проект для автоматизации потока данных между программными системами.
- IBM Cognos Business Intelligence - это пример интерфейсных программ в приложениях Business Intelligence , которые используются для генерации SQL- запросов для работы с базами данных РСУБД.
- IBM InfoSphere DataStage , инструмент ETL
- Informatica Powercenter - это инструмент ETL для графического проектирования сопоставлений для загрузки данных в системы хранилищ данных.
- Microsoft SQL Server Integration Services (SSIS) , платформа для приложений интеграции данных и рабочих процессов.
- Pentaho Data Integration (PDI) , ранее называвшаяся Kettle, инструмент ETL с открытым исходным кодом
Разнообразный
- Kwikpoint , визуальный переводчик изотипов, созданный Аланом Стиллманом
- Lava , экспериментальный объектно-ориентированный язык RAD
- Limnor , система программирования общего назначения. Limnor Studio - это IDE для быстрой разработки программного обеспечения.
- Morphic (программное обеспечение) , упрощает создание и редактирование графических объектов путем прямого манипулирования и из программ; вся среда программирования Self (язык программирования) построена с использованием Morphic
- Piet , эзотерический язык, программа представляет собой изображение, пиксели которого являются элементами языка.
- PWCT , бесплатный язык визуального программирования с открытым исходным кодом для разработки программного обеспечения
- StreamBase Systems , StreamBase EventFlow - это визуальный язык программирования для обработки потоковых событий.
- WebML - это визуальный язык для разработки сложных веб-приложений с интенсивным использованием данных, которые могут быть автоматически сгенерированы.
- Yahoo! Pipes - это система программирования визуального потока данных для обработки веб-данных [19]
- YAWL , графический язык рабочего процесса
Наследие
- AppWare , также известная как MicroBrew, программирование на основе значков для классической Mac OS и Microsoft Windows.
- Macromedia Authorware - язык программирования на основе блок-схем
- Helix and Double Helix, новаторская система управления базами данных для платформы Apple Macintosh, созданная в 1983 году.
- Illumination Software Creator , язык и IDE для визуального создания программного обеспечения для настольных компьютеров и мобильных устройств.
- ThingLab
Визуальные стили
- ДРАКОН (Дракон) , визуальный 2D-язык программирования с поддержкой SDL и AADL, разработанный для разработки бортовой системы программного обеспечения жесткого реального времени для автоматического полета и посадки советского / российского космического корабля Буран (Метель).
- Исполняемый UML , профиль из универсального языка моделирования спецификации , определяющей исполняемые семантики для подмножества UML
- Схема
- Подтекст
Смотрите также
- Карта аргументов
- Когнитивные измерения нотации - оценка нотации для визуальных и невизуальных языков
- Диаграмма связей
- Программирование потока данных
- Предел Дойча , афоризм об информационной плотности языковых примитивов в визуальной нотации
- Доменно-ориентированное моделирование
- Перетащить и отпустить
- Программирование на основе потоков
- Рисование графика
- Платформа разработки low-code
- Платформа разработки без кода
- Программирование игры
- Единый язык моделирования
- Визуальный язык
- Визуальное мышление
Рекомендации
- ^ Йост, Беате; Кеттерл, Маркус; Бадде, Рейнхард; Леймбах, Торстен (2014). «Графические среды программирования для образовательных роботов: Open Roberta - еще один?». 2014 Международный симпозиум IEEE по мультимедиа . С. 381–386. DOI : 10.1109 / ISM.2014.24 . ISBN 978-1-4799-4311-1.
- ^ Зрелость визуального программирования
- ^ Брэгг, SD; Дрискилл, CG (1994). «Диаграммно-графические языки программирования и DoD-STD-2167A». Материалы АВТОТЕСТКОН 94 . С. 211–220. DOI : 10.1109 / AUTEST.1994.381508 . ISBN 0-7803-1910-9.
- ^ Кухаил, Массачусетс; Farooq, S .; Hammad, R .; Бахджа, М. (2021). «Характеристика подходов к визуальному программированию для разработчиков конечных пользователей: систематический обзор» . Доступ IEEE . 9 : 14181–14202. DOI : 10,1109 / ACCESS.2021.3051043 .
- ^ Покаяние, Александр (2017). «Выход за рамки синтаксиса: уроки 20-летнего программирования блоков в AgentSheets» . Журнал визуальных языков и разумных систем . 3 : 68–91. DOI : 10.18293 / vlss2017-010 .
- ^ Джонстон, ВМ; Ханна, JRP; Миллар, Р.Дж. (2004). «Достижения в языках программирования потоков данных» (PDF) . ACM Computing Surveys . 36 (1): 1–34. DOI : 10.1145 / 1013208.1013209 . Проверено 16 февраля 2011 .
- ^ Rekers, J .; Шюрр, А. (1997). «Определение и анализ визуальных языков с грамматиками многоуровневых графов» . Журнал визуальных языков и вычислений . 8 (1): 27–55. DOI : 10,1006 / jvlc.1996.0027 .
- ^ Чжан, Д.-К. (2001). «Контекстно-зависимый формализм грамматики графа для спецификации визуальных языков» . Компьютерный журнал . 44 (3): 186–200. DOI : 10.1093 / comjnl / 44.3.186 .
- ^ http://www.computermusicjournal.org/reviews/31-* * * 2 / regan-bidule.html
- ^ "Редактор шейдеров - Руководство по Blender" . docs.blender.org . Источник 2021-01-22 .
- ^ «Композитинг - Руководство по Blender» . docs.blender.org . Источник 2021-01-22 .
- ^ "Редактирование текстур - Руководство Blender" . docs.blender.org . Источник 2021-01-22 .
- ^ «Справочные материалы / Примечания к выпуску / 2.92 / Узлы геометрии - Blender Developer Wiki» . wiki.blender.org . Источник 2021-01-22 .
- ^ «⚓ T67088 Все узлы UX» . developer.blender.org . Источник 2021-01-22 .
- ^ Фонд, Блендер. «Все узлы и разбросанный камень» . Блог разработчиков Blender . Источник 2021-01-22 .
- ^ "Редактор материалов узла Babylon.js" . nme.babylonjs.com . Источник 2021-01-22 .
- ^ Создать классическую домашнюю страницу
- ^ Создать классическую страницу на SourceForge
- ^ "Yahoo! трубы" . Архивировано из оригинала на 2015-01-03 . Проверено 3 января 2015 .
- Эта статья изначально была основана на материалах из Free On-line Dictionary of Computing , использованных с разрешения . При необходимости обновите.
Внешние ссылки
- Языки визуального программирования в Curlie
- Языки визуального программирования - снимки