Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Реализация "Hello, world!" программа на языке программирования Scratch, заставляющая спрайт « Кот » произносить «текст« Hello World! ».

Определение [ править ]

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

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

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

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

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

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

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

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

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

Образовательный [ править ]

  • AgentCubes , 3D и 2D дизайн игр и инструменты для моделирования компьютерного мышления.
  • AgentSheets , инструмент для разработки игр и информатики.
  • Алиса , объектный язык, используемый для программирования трехмерных сред.
  • Analytica для построения и анализа количественных моделей для анализа решений и рисков.
  • App Inventor для Android , инструмент для создания приложений Android на основе Blockly и Kawa .
  • Blockly , клиентская библиотека для языка программирования JavaScript для создания блочных языков визуального программирования (VPL) и редакторов.
  • Bubble для создания готовых к работе веб-приложений .
  • Flowgorithm создает исполняемые блок-схемы, которые можно преобразовать на несколько языков.
  • 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). [8]
  • Blender (программное обеспечение) , то с открытым исходным кодом 3D графика пакет, включает в себя узел графику для создания шейдеров , [9] композиты [10] и текстуру. [11] В грядущем выпуске блендера 2.92 будет добавлена ​​новая система геометрических узлов [12] отдельно от всех узлов будущего проекта. [13] [14]
  • Cameleon , графический функциональный язык
  • Clickteam 's The games factory / Серия Multimedia fusion, среды, созданные для визуально развивающих игр
  • Dynamo , интерфейс генеративного моделирования для Autodesk Revit
  • Filter Forge Node на основе генерации фильтров для обработки изображений.
  • Houdini (программное обеспечение) vfx, программное обеспечение для моделирования и анимации.
  • GenerativeComponents , параметрическое программное обеспечение САПР, разработанное Bentley Systems
  • Grasshopper 3d , интерфейс генеративного моделирования для Rhinoceros 3D
  • Kyma (язык звукового дизайна) , язык визуального программирования для звукового дизайна, используемый музыкантами, исследователями и звукорежиссерами.
  • Мама (программное обеспечение) - язык программирования и 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 и полная мультимедийная система для AmigaOS и Windows
  • Softimage с интерактивной творческой средой ICE.
  • SynthEdit , инструмент построения синтезатора с использованием VPL.
  • TouchDesigner , визуальный язык программирования для мультимедийного контента в реальном времени
  • Virtools , промежуточное ПО, используемое для создания интерактивных 3D-приложений.
  • vvvv , набор инструментов общего назначения, специализирующийся на синтезе видео в реальном времени и программировании больших мультимедийных сред с физическими интерфейсами, анимированной графикой в ​​реальном времени, аудио и видео.
  • WireFusion , среда визуального программирования для создания интерактивных трехмерных веб-презентаций

Видеоигры [ править ]

  • В Babylon.js есть редактор материалов узлов, который можно использовать для создания шейдеров, процедурных текстур, систем частиц и эффектов постобработки. [15]
  • Blender Game Engine (редактор графической логики)
  • Construct 2 - это редактор 2D-игр на основе HTML5, разработанный Scirra Ltd.
    • Construct Classic - это предыдущая версия Construct с открытым исходным кодом на основе DirectX. [16] [17]
  • 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, а также шейдеры.

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

Системы / моделирование [ править ]

  • 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 - это система программирования визуального потока данных для обработки веб-данных [18]
  • YAWL , графический язык рабочего процесса

Наследие [ править ]

  • AppWare , также известная как MicroBrew, программирование на основе значков для классической Mac OS и Microsoft Windows.
  • Macromedia Authorware - язык программирования на основе блок-схем
  • Helix and Double Helix, новаторская система управления базами данных для платформы Apple Macintosh, созданная в 1983 году.
  • Illumination Software Creator , язык и IDE для визуального создания программного обеспечения для настольных компьютеров и мобильных устройств.
  • ThingLab

Визуальные стили [ править ]

  • DRAKON (Дракон) , визуальный 2D-язык программирования с поддержкой SDL и AADL, разработанный для разработки бортовой системы программного обеспечения жесткого реального времени для автоматического полета и посадки советского / российского космического корабля Буран (Метель).
  • Исполняемый UML , профиль из универсального языка моделирования спецификации , определяющей исполняемые семантики для подмножества UML
  • Схема
  • Подтекст

См. Также [ править ]

  • Карта аргументов
  • Когнитивные измерения нотации - оценка нотации для визуальных и невизуальных языков
  • Диаграмма связей
  • Программирование потока данных
  • Предел Дойча , афоризм об информационной плотности языковых примитивов в визуальной нотации
  • Доменно-ориентированное моделирование
  • Перетащите и отпустите
  • Программирование на основе потоков
  • Рисование графика
  • Платформа разработки low-code
  • Платформа разработки без кода
  • Программирование игры
  • Единый язык моделирования
  • Визуальный язык
  • Визуальное мышление

Ссылки [ править ]

  1. ^ Йост, Беате; Кеттерл, Маркус; Бадде, Рейнхард; Леймбах, Торстен (2014). «Графические среды программирования для образовательных роботов: Open Roberta - еще одна?». 2014 Международный симпозиум IEEE по мультимедиа . С. 381–386. DOI : 10.1109 / ISM.2014.24 . ISBN 978-1-4799-4311-1.
  2. ^ Зрелость визуального программирования
  3. ^ Брэгг, SD; Дрискилл, CG (1994). «Диаграммно-графические языки программирования и DoD-STD-2167A». Материалы AUTOTESTCON '94 . С. 211–220. DOI : 10.1109 / AUTEST.1994.381508 . ISBN 0-7803-1910-9.
  4. ^ Repenning, Александр (2017). «Выход за рамки синтаксиса: уроки 20-летнего программирования блоков в AgentSheets» . Журнал визуальных языков и разумных систем . 3 : 68–91. DOI : 10.18293 / vlss2017-010 .
  5. ^ Джонстон, WM; Ханна, JRP; Миллар, Р.Дж. (2004). «Достижения в языках программирования потоков данных» (PDF) . ACM Computing Surveys . 36 (1): 1–34. DOI : 10.1145 / 1013208.1013209 . Проверено 16 февраля 2011 .
  6. ^ Rekers, J .; Шюрр, А. (1997). «Определение и анализ визуальных языков с грамматиками многоуровневых графов» . Журнал визуальных языков и вычислений . 8 (1): 27–55. DOI : 10,1006 / jvlc.1996.0027 .
  7. ^ Zhang, D.-Q. (2001). «Контекстно-зависимый формализм грамматики графа для спецификации визуальных языков» . Компьютерный журнал . 44 (3): 186–200. DOI : 10.1093 / comjnl / 44.3.186 .
  8. ^ http://www.computermusicjournal.org/reviews/31-* * * 2 / regan-bidule.html
  9. ^ "Редактор шейдеров - Руководство по Blender" . docs.blender.org . Источник 2021-01-22 .
  10. ^ "Составление - Руководство по Blender" . docs.blender.org . Источник 2021-01-22 .
  11. ^ "Редактирование текстур - Руководство Blender" . docs.blender.org . Источник 2021-01-22 .
  12. ^ «Справочник / Примечания к выпуску / 2.92 / Узлы геометрии - Blender Developer Wiki» . wiki.blender.org . Источник 2021-01-22 .
  13. ^ "⚓ T67088 Все узлы UX" . developer.blender.org . Источник 2021-01-22 .
  14. ^ Foundation, Blender. «Все узлы и разбросанный камень» . Блог разработчиков Blender . Источник 2021-01-22 .
  15. ^ "Редактор материалов узла Babylon.js" . nme.babylonjs.com . Источник 2021-01-22 .
  16. ^ Создать классическую домашнюю страницу
  17. ^ Создать классическую страницу на SourceForge
  18. ^ "Yahoo! трубы" . Архивировано из оригинала на 2015-01-03 . Проверено 3 января 2015 .
Эта статья изначально была основана на материалах из Free On-line Dictionary of Computing , использованных с разрешения . При необходимости обновите.

Внешние ссылки [ править ]

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