Язык визуального программирования — это такой язык, который позволяет программисту создавать программы, манипулируя графическими элементами, а не печатая текстовые команды. Известным примером является Scratch, язык визуального программирования родом из MIT, который используется для обучения детей. Его преимущества заключаются в том, что он делает программирование более доступным для новичков и не-программистов.
В 1990-х годах было очень популярное движение по внедрению визуального программирования в корпоративную среду с помощью так называемых CASE-инструментов, где корпоративные системы можно было бы определять с помощью UML и генерировать [их код] без необходимости в привлечении обученных разработчиков программного обеспечения. Это связано с концепцией «round tripping» («туда и обратно»), где система может быть смоделирована визуально, программный код будет генерироваться из полученных моделей, а любые изменения кода могут быть возвращены обратно в модель. Увы, подобные инструменты так и не смогли выполнить свою миссию, и большинство из экспериментов [по их внедрению] в настоящее время в значительной степени заброшены.
**Основная идея визуального программирования** – это способ образного, графического представления разрабатываемого алгоритма, который наиболее естественен для восприятия человека. Очень часто, на практике, это означает визуальное построение интерфейса программы, а не самого кода. Создаются только заготовки необходимых функций и процедур, а задача создания тела функций по-прежнему - на разработчике программы. Среды визуального программирования: Visual Basic, Delphi, Borland Builder, Microsoft Visual C++, Visual Studio и др.
> "Визуальное программирование" в качестве объекта визуализации рассматривает процесс построения интерфейса приложения путем размещения на формах компонентов и настройкой их свойств и поведения
Использование визуального проектирования интерфейса предоставляет программисту следующие преимущества:
* возможность легкого изменения размеров и расположения компонентов на форме (с помощью простых манипуляций мышью);
* в процессе проектирования постоянно виден результат – изображение формы и расположенных на ней компонентов (не надо запускать приложение для проверки внешнего вида окна и последующего изменения программного кода для подбора более удачного размера и расположения компонентов);
* во время проектирования формы и размещения на ней компонентов редактор кода (обычно) автоматически генерирует код программы, включая в нее фрагменты, описывающие данный компонент (далее можно изменять свойства компонентов и писать обработчики событий).
"Графические" языки программирования
* App Inventor — Cреда визуальной разработки android-приложений, требующая от пользователя минимальных знаний программирования.
* Sketchware — Среда визуальной разработки приложений для Android.
* [Дракон](https://drakon.su/) — графический язык программирования, имеющий корни в программировании ракетно-космической техники («Буран», «Морской старт »). Существуют [Дракон](https://drakon.su/_media/23_zhizneritm22.pdf)-редакторы, включая бесплатные.
* Язык последовательных функциональных схем SFC ([Sequential Function Chart](https://ftp.owen.ru/CoDeSys3/98_Books/plcopen_sfc_v10_ru.pdf)) — графический язык программирования широко используется для программирования промышленных логических контроллеров PLC. В SFC программа описывается в виде схематической последовательности шагов, объединённых переходами.
* [HiAsm](https://golos.id/ru--akademiya/@evgenij-byvshev/6i6una-sibirskoi-taigi-vam-v-lentu) — это язык и среда разработки приложений, которая позволяет создавать приложения, управляя их моделью с помощью интуитивно понятного графического интерфейса HiAsm.
* LD (Ladder Diagram) — язык [релейно-контактных схем](https://edu.kpfu.ru/pluginfile.php/272652/mod_resource/content/1/2%20%D0%9F%D0%9B%D0%9A.pdf).
* FBD — язык Функциональных блоковых диаграмм.
* Язык CFC (Continuous Flow Chart) — ещё один высокоуровневый язык графического программирования. CFC — это дальнейшее развития языка FBD. CFC был специально создан для проектирования систем управления непрерывными технологическими процессами.
Язык «G» системы LabVIEW — один из самых распространенных языков разработки программ, работающих с некомпьютерным оборудованием.
* VisSim — это визуальный язык программирования предназначенный для моделирования динамических систем, а также проектирования, базирующегося на моделях, для встроенных микропроцессоров.
* Блокли — это библиотека для создания среды визуального программирования, которая может быть встроена в произвольное веб-приложение.
* Кибор — Интегрированная среда создания бот программ автоматизации. Обладает визуальным инструментом для построения программ с помощью блок схем. Для визуального программирования требуется минимум навыков программирования.
* Verge3D Puzzles - основанный на Блокли фреймворк для программирования интерактивных 3D-приложений, работающих в браузере.
Основные понятия
**Объект** - основная единица, объединяет в себе описывающие его свойства и действия объекта (процедуры) - методы.
**Проект** - результат процессов программирования и проектирования, объединяет программный код и графический интерфейс. Включает программные модули форм и самостоятельные программные модули в виде отдельных файлов. Проект может быть запущен на выполнение только из среды разработки.
**Событие** - изменение некоторого состояния, распознаваемое объектом. Для реакции на это изменение могут быть описаны некоторые методы - обработчики, обрабатывающие события в программном коде.
**Обработчик события** - процедура, которая начинает выполняться после реализации определенного события (щелчка).
**Приложение** интегрирует программный код и графический интерфейс в одном исполняемом файле, он может запускаться непосредственно в ОС.
>Проект работает только из среды разработки и состоит из нескольких файлов, а приложение работает из ОС и состоит
(обычно) из одного файла
Этапы создания проектов и приложений в системах VP
1. Создание графического интерфейса проекта. На форму помещаются элементы управления, обеспечивающие взаимодействие проекта с пользователем.
2. Установка значений свойств объектов графического интерфейса.
В режиме конструирования задаются значения свойств формы и элементов управления, помещенных ранее на форму.
3. Создание и редактирование программного кода. Создаются заготовки обработчиков событий (двойной щелчок мышью по элементу - вызов заготовки обработчика наиболее часто используемого события для этого элемента). В редакторе программного кода производится ввод и редактирование программного кода обработчиков событий.
4. Сохранение проекта. Так как проекты включают в себя несколько файлов, рекомендуется для каждого проекта создать отдельную папку на диске.
5. Компиляция проекта в приложение. Сохраненный проект может выполняться только в самой системе программирования. Чтобы преобразовать проект в приложение, которое может выполняться непосредственно в среде ОС, необходимо выполнить компиляцию проекта, в процессе которой приложение сохранится в исполнимом файле (.exe).
### как все происходит?
Решаемая на ПК задача реализуется в виде прикладной программы - приложения.
В основе разработки приложения лежит проект.
Центральная часть проекта - форма, на нее помещаются необходимые для решения конкретной задачи компоненты.
Последовательность создания приложения:
**проект - формы - компоненты**
Приложение собирается из элементов: форм, программных модулей, внешних библиотек, картинок, пиктограмм и др.
Каждый элемент размещается в отдельном файле и имеет строго определенное назначение.
Набор всех файлов, необходимых для создания приложения, называется проектом .
Компилятор последовательно обрабатывает файлы проекта и строит из них выполняемый файл.
Типы основных файлов проекта
#### Файлы описания форм
Текстовый файл, описывающий форму с компонентами. В нем сохраняются значения свойств формы и ее компонентов, установленные в окне свойств во время проектирования приложения. Количество файлов равно количеству используемых в приложении форм
(если используется только одна форма, то файл только один).
#### Файлы программных модулей
Текстовые файлы, содержащие исходные программные коды. В них пишут методы обработки событий, генерируемых формами и компонентами.
Каждой форме в проекте соответствует свой программный модуль (unit), содержащий все относящиеся к форме объявления и методы обработки событий, написанные на языке программирования.
Программные модули размещаются в отдельных файлах (.PAS,.СРР).
Их количество может превышать количество форм, так как программные модули могут и не относиться к формам, а содержать вспомогательные процедуры, функции, классы и др.
#### Главный файл проекта
Текстовый файл, содержащий главный программный блок. Чтобы компилятор знал, какие конкретно файлы входят в проект, необходим главный программный файл, который подключает все файлы модулей, входящих в проект. Для каждого проекта существует только один такой файл.
По команде ''File / New / Application'' начинается разработка нового приложения, среда автоматически создает файл проекта.
По мере создания новых форм содержимое этого файла видоизменяется автоматически.
После окончания работы в файле будет находиться перечень программных модулей, которые будут поданы на вход компилятору.
Просмотр содержимого файла приложения – команда Project / View Source. В редакторе кода появится новая страница с текстом.
В проект могут входить логически автономные элементы: точечные рисунки (BMP-файлы), значки (ICO-файлы), файлы справки (HLP-файлы) и т.п., но ими управляет сам программист.
Файл проекта подключает все используемые программные модули и содержит операторы для запуска приложения. Этот файл среда разработки создает и контролирует сама.