Программы для программирования визуального


Среда программирования Algorithm Builder — GetChip.net

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

Данная статья лишь ознакомительный обзор программы, на которой будет написано большинство проектов этого блога и не в коей мере не должна рассматриваться как реклама или рекомендация к использованию этой среды программирования.

Автор программы Геннадий Громов.Сайт программы www.algrom.net

Итак что имеет Algorithm Builder в своем арсенале?Полный цикл разработки. Algorithm Builder предназначен для производства полного цикла разработки начиная от ввода алгоритма, включая процесс отладки и заканчивая программированием кристалла.

Algorithm Builder довольно нетрадиционная программа в плане языка программирования. Автор немного лукавит, называя программу Построителем Алгоритмов. На самом деле, алгоритма, в привычном понимании этого слова, нет. Есть ассемблер, завернутый  в красивую обертку визуального программирования. Правильнее было бы назвать программу – визуальный ассемблер или построитель ассемблера. А раз это ассемблер то Вы получите на выходе максимально эффективный код.

Работа с переменными и константами организована гениально просто. Инициализация производиться в отдельном окне в виде таблицы – освобождая алгоритм от лишних записей. В буквальном смысле слова все разложено по полочкам. Удобно иметь в любой момент под рукой перечень всех переменных и констант.

Настройщик периферии. Algorithm Builder имеет удобный настройщик периферии (таймеры, UART, ADC, SPI и т.д.) позволяющий, не читая даташитов, просто выбрать необходимые параметры работы устройства в окне настройки. В этом же окне Билдер честно покажет набор инструкций, обеспечивающих эти параметры.

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

Внутрисхемное программирование кристалла. При использовании внутрисхемного программатора микроконтроллер подключается к COM порту компьютера через несложный адаптер (три диода и несколько резисторов).Также есть вариант USB подключения. Программатор ведет подсчет числа перепрограммирований кристалла, сохраняя счетчик непосредственно в кристалле. Процесс программирования кристалла очень прост — в два «тыка».

Мониторная отладка на кристалле. Algorithm Builder обеспечивает мониторную отладку на кристалле (On Chip debug) которая позволяет наблюдать содержимое реального кристалла в заданной точке останова. При этом для связи микроконтроллера с компьютером используется только один вывод, причем по выбору пользователя. Мониторная отладка может быть применена к любому типу кристалла, имеющего SRAM. Это софтверный вариант debugWIRE. Я без этой штуки просто не представляю себе отладку программ.

Так почему такая хорошая программа так малоизвестна?Первая причина — программа до 2010 года была платной. Бесплатная демоверсия имела полную функциональность, но ограничивала код откомпилированной программы до 2 килобайт. В 2010 году автор программы сделал новогодний подарок – версия 5.43 вышла свободной от ограничений.Вторая причина — отсутствие поддержки программы. Вы не найдете ни одного апнота производителя в котором бы использовался Билдер. Интернет ресурсы, посвященные данной программе, можно пересчитать по пальцам.Жаль, конечно – программа действительно интересна.

Выводы:Ассемблерщики при переходе на Algorithm Builder будут писать кипятком, так как они будут иметь все тот же ассемблер, но управляться им станет на порядок легче и наглядней. Одно плохо – придется распрощаться с наработанными библиотеками и писать новые.Сишникам однозначно Билдер не понравится, так как придется опускаться до уровня ассемблера, а какому сишнику понравится возюкаться с регистрами.Наверное, наилучшая целевая аудитория — начинающие осваивать микроконтроллеры. Программа проста и поэтому будет легко осваивать программирование.В общем, конечно, выводы получились неоднозначные. Думайте сами… 🙂

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

Algorithm_Builder 5.44 - Среда визуального программирования

Кому интересно посмотреть мануал, а устанавливать программу лениво – вот выкладываю его отдельно

Мануал (10562)

Программа активно развивается, поэтому смотрите свежие версии на сайте программы www.algrom.net. Кроме того, там же есть небольшая подборка библиотек.

P.S. Программа портативная. Тесть после установки папку с программой скидываем на флешку и работаем с нее.

(Visited 7 965 times, 16 visits today)

www.getchip.net

Лекция 1

Визуальное программирование — способ создания программы для ЭВМ путём манипулирования графическими объектами вместо написания её текста.

Необходимо различать:

  • графический язык программирования — который прежде всего язык программирования (со своим синтаксисом)

  • визуальные средства разработки— как правило, под ними подразумевают средства проектирования интерфейсов или какую либоCASE-систему для быстрой разработки приложений илиSCADA-систему для программирования микроконтроллеров.

Языки визуального программирования могут быть дополнительно классифицированы в зависимости от типа и степени визуального выражения, на следующие типы:

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

Значительное количество современных языков программирования имеет развитые визуальные средства для разработки графического интерфейса, причем осуществляется программирование размещенных на специальных формах объектов с настройкой их свойств и поведения. CodeGear Delphi и C++ Builder, Microsoft Visual Studio и языки, которые включает в себя это средство (Visual Basic, Visual C#, Visual J# и т.д.) часто путают с графическими языками программирования, предназначенными для задач компьютерной графики. Все перечисленные языки являются визуальными средами, а не графическими языками.

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

Графические, или визуальные, языки программирования[править|править исходный текст]

Это незаконченный список, который может быть никогда не будет удовлетворять каким-либо стандартам по своей завершенности. Вы можете дополнить его, ссылаясь на источники.

  • Дракон-схемы— графический язык программирования, используется для программирования в ракетно-космической технике («Буран», «Морской старт», «Тополь»). Существует бесплатный Дракон-редактор. Этот язык имеет наиболее строгое теоретическое обоснование.

  • Язык последовательных функциональных схем SFC(Sequential Function Chart) —графический язык программированияшироко используется для программирования промышленных логических контроллеровPLC.В SFC программа описывается в виде схематической последовательности шагов, объединённых переходами.

  • LD— язык релейно-контактных схем

  • FBD— язык Функциональных блоковых диаграмм.

  • Язык CFC (Continuous Flow Chart) — ещё один высокоуровневый язык графического программирования. CFC — это дальнейшее развития языка FBD. CFC был специально создан для проектирования систем управления непрерывными технологическими процессами.

  • G— язык, используемый в среде разработкиLabVIEW

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

  • Скретч— это визуальная объектно-ориентированная среда и язык программирования для обучения школьников младших и средних классов.

SFC – это графический язык, который позволяет описать хронологическую последовательность различных действий в программе. Для этого действия связываются с шагами (этапами), а последовательность работы определяется условиями переходов между шагами.

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

В отличие от FBD редактор непрерывных функциональных схем не использует цепи, но дает возможность свободно размещать компоненты и соединения, что позволяет создавать обратные связи, как показано в примере.

Язык релейных или релейно-контактных схем (РКС) – графический язык, реализующий структуры электрических цепей. Лучше всего LD подходит для построения логических переключателей, но

достаточно легко можно создавать и сложные цепи - как в FBD.

Метод визуального программирования (ВП) - это новый метод программирования, который кардинально изменил все представления о процессе разработки программ для Windows. Те, кто знакомился или пытался писать программы для Windows в среде традиционных процедурных или даже объектно-ориентрованных (но не визуальных) ЯП с использованием Windows API, знают, что изнутри, Windows, сам по себе - ночной кошмар, полный индексов, контекстов и обратных вызовов, а также множества других вещей, которые нужно помнить, которыми нужно управлять, и в которых можно полностью запутаться. Средства ВП вполне надежно упрятали большинство этих чудовищ, сделали процесс разработки программ для Windows достаточно приятным и легким занятием, а разработку простых приложений возможным даже для любителя от программирования.

Многие, говоря о языках визуального программирования (ЯВП), таких как Delphi, Visual Basic, Visual C++ или PowerBuilder, выдвигают на первый план то, что они являются средством быстрой разработки приложений (RAD - Rapid Application Development) для ОС Windows. И это действительно так - они кардинально изменили все представления о процессе разработки программ для Windows.

Но не это главное и действительно кардинальное привнесли в мир программирования ЯВП. Языки визуального программирования объединили, воплотили в себе и обеспечили поддержку всех новейших достижений методологии программирования. Методологически визуальное программирование в полном объеме это:

  1. Событийно-зависимое управление плюс

  2. Визуальное сборочное программирование плюс

  3. Объектно-ориентированное программирование плюс

  4. Интеграция практически полного спектра инструментария (процедурных и баз данных ЯП), технологий (локальной, сетевой, клиент-серверной) и разнородных информационных сред (текстовой, графической, табличной, базовской, мультимедиа, коммуникационной).

Итак, первое кардинальное изменение - переход от последовательного управления и процедурного программирования к событийно-зависимому управлению и объектному программированию.

В процедурных последовательно-управляемых системах типа DOS управление размещается внутри программного кода. Программный код выполняется линейно, т.е. начинается в начале программы и продвигается в конец, проходя по коду строка за строкой, ветвясь и зацикливаясь и для взаимодействия с пользователем и внешними устройствами процедуры запрашивают ввод, точнее ОС, и ожидают его поступления; при поступлении ввода управление возобновляется внутри ожидающей процедуры, которая анализирует поступившие данные и вызывает для их обработки прикладную процедуру оператором Call и для продолжения своей работы ожидает возврата управления. Это синхронное однопоточное последовательное управление, реализуемое стеком вызова процедур и программным счетчиком. Для реализации гибкого пользовательского интерфейса и имитации работы и функционирования объектов реального мира такая парадигма управления не подходит.

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

Объекты - это актеры, действующие лица, имеющие свой жизненный цикл, сценарий деятельности и воздействовать друг на друга они могут прежде всего по принципу "стимул-отклик".

Событие - это сигнал о том, что что-то произошло, к примеру, нажатие кнопки. События передают информацию между объектами в форме сообщений, аргументами которого являются данные о событии (координаты мышки в окне). Событие может и не нести информацию: возникновение события и будет информацией. События реализуют асинхронное управление системой. Они по своей природе однонаправлены. Объект-источник посылает сообщение другому и не ожидая возврата продолжает свою деятельность. Объект-приемник принимает событие выполняет в ответ какое-либо действие, но он самостоятелен и независим от другого объекта; он может послать обратное сообщение, а может и нет. Объект, принимая событие, возвращает управление диспетчеру сообщений, не ожидая поступления какого-либо ввода - это будет уже другое событие.

Событийно-управляемую, основанную на сообщениях, архитектуру реализует ОС Windows. Запущенная программа просто ждет, чтобы ей послали сообщение и затем реагирует на него соответствующим образом. Windows сам обнаруживает пользовательский ввод, будь-то нажатие клавиши, перемещение мышки или сигнал от любого другого устройства. Когда происходит событие подобного типа Windows посылает предварительно определенное сообщение программе, говоря ей что произошло. Программы просто ждут, чтобы им послали сообщение и могут игнорировать их или реагировать на них, а также сами посылать сообщения. Программы имеют гнезда, "дырки", через которые события могут приниматься программой и через них выставляют свои обработчики интересующих их событий. Они возвращают управление Windows не ожидая каких-либо вводов пользователя. Это программы направляемые событиями. Событийно-управляемые системы реализуют метафору "рабочего стола" и эмулируют кооперирующиеся процессы, множество одновременно запущенных программ, каждая из которых выполняется в своем окне и может в любой момент по желанию пользователя (или программы) стать активной.

Парадигму событийно-зависимого управления можно представить в виде следующего рисунка (рис. 3.1). Каждая дыра в верхней части каркаса - событие. Когда выполнение выпрыгивает из одной из дыр в виде события, оно ищет процедуру, которую вы подготовили специально для этого события. Если она есть, выполнение пройдет вашу процедуру, выполняющую нечто полезное для вашего приложения. Если вы не подготовили процедуру для события, выполнение выходит из дыры и просто возвращается обратно, не сделав совсем ничего. Никакого вреда не насенено - просто ничего не сделано.

Кстати, ОС Windows не является объектно-ориентированной, она только маскируется под объекты, поскольку реализует механизм межобъектного взаимодействия сообщениями. На уровне ОС существует множество детальных физических событий с различными ненужными большинству прикладных программистов подробностями, подмножества которых могут соответствовать одному логическому событию или наоборот. И поэтому ЯВП дополняют диспетчер сообщений ОС своим собственным, фильтруя и упрощая число и типы событий и форму сообщений для прикладных программ, а главное, обертывая и превращая их действительно в объекты.

Итак, первый вывод. Событийное управление меняет парадигму программирования. Теперь у нас нет отдельно программного кода и данных, а есть их неделимое целое - программные объекты. Они инкапсулируют в себе, скрывая от других объектов, свои данные и операции и реализуют видимый извне интерфейс в виде активных свойств (установка значения цвета заполнителя фигуры как зеленого одновременно изменяет ее цвет на экране) и методов класса объекта. Внешнее управление систем является асинхронным, событийно-управляемым пользователем системы и требует реализации программ направляемых событиями, т.е. как отклики программных обработчиков событий. Внутреннее управление остается синхронным последовательным процедурным при однопотоковом управлении (один активный объект, а остальные пассивные) как в Windows 3.1 или синхронно-асинхронным в многопотоковых системах типа Windows 95 с внутренними процедурными и событийными вызовами. Меняется стиль программного мышления, он становится более близким к реальности. Для программистов удобно думать о программных объектах как аппаратных, чтобы прочувствовать их автономность и одновременность функционирования. Сутьсобытийно-ориентированного или объектного программирования состоит в создании процедур обработчиков событий или событийных методов, которые откликаются на события. Когда событие выпрыгивает из своих "дыр" оно ищет процедуру, которую вы подготовили для обработки этого события и она реализует функциональность вашего приложения. Если нужного событийного метода нет, то выполнение просто возвращается обратно, не сделав совсем ничего.

Второе кардинальное изменение - визуальное сборочное программирование.

Визуальное программирование - это реальное воплощение концепции сборочного программирования и поэтому один из его девизов: “Закодировать один раз, использовать всегда”. Визуальная сборка программы осуществляется с помощью компонент Delphi VCL (Visual Component Library - библиотека визуальных компонент), а также возможно с привлечением компонент VBX и OCX (Visual Basic eXtension-визуальных расширений для языка Visual Basic), библиотека Windows-Form для языка C#. Компонент - это материализованный программный объект, который можно пощупать мышкой во время разработки (даже невизуальный компонент такой как TTable или TOpenDialog имеет форму и образ), настроить его свойства и поведение. Визуальная сборка приложения во многом подобна сборке различных предметов конструктором "Лего": из множества стандартных компонент, стыкуя их друг с другом посредством настройки свойств получаются различные предметы. Главное достоинство компонента в том, что он как объект, скрывая свою реализацию, представляет гибкие и мощные средства его настройки и управления не только на стадии выполнения, но и стадии разработки посредством свойств, методов и событийных "зацепок". Это вам уже не библиотека и не пакет подпрограмм с жестким интерфейсом и функциональностью и принципом использования "Все или ничего; Так или никак". Кроме того, разработка компонентов мало чем отличается от разработки программ, правда, требует большего профессионализма.

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

Третье кардинальное изменение - объектно-ориентированное программирование.

Объектно-ориентированное программирование стоит на трех китах:

    • Инкапсуляции объектов.

    • Наследовании свойств и поведения объектов.

    • Полиморфизме объектов.

Инкапсуляция (или упрятывание информации) означает разделение внешних аспектов объекта (его интерфейса, "лица"), которые доступны другим объектам, от внутренних деталей его реализации (его "кухни"), которые прячутся от других объектов. Инкапсуляция предохраняет программу от влияния малых изменений в программе на ее остальную часть. К примеру, реализация объекта с целью улучшения производительность или исправления ошибок может быть изменена без изменения других объектов. Инкапсуляция не является уникальной особенностью объектно-ориентированного подхода, однако, объединение структуры данных с процедурами в единую сущность делает инкапсуляцию более мощной, чем в других методологиях.

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

Полностью объектно-ориентированная среда и компоненты Delphi, в отличие от всего лишь объектной среды и компонентов Visial Basic, реализуют все достоинства объектно-ориентированного программирования . Вы можете от любого класса VCL и компонента Delphi с минимальными усилиями построить свой класс, настроенный на ваши потребности. При этом не надо знать внутреннюю организацию или даже иметь исходные тексты (достаточно модулей DCU и EXE), надо только знать и нельзя изменять интерфейс родительских свойств и методов. Вы просто доопределяете родительский класс и не затрагиваете его внутреннюю реализацию. И все работает и прежние объекты класса и ваши новые! Использование этой же методология внутри одного проекта позволяет строить гибкие, легко расширяемые и модифицируемые и более надежные системы. Повторноиспользуемость лучше всякой оптимизации.

Полиморфизм - это фактически следствие свойства наследования. Полиморфный в переводе с греческого означает много форм. Технически это означает, что специализированные объекты-потомки и родительские объекты имеют одноименные синтаксически и семантически методы (к примеру, рисовать для геометрических фигур), реализующие собственные различные операции объекта или дополняющие в чем-то наследуемые методы. Принципиально это означает, что объект родительского класса может выступать в роли любого из объектов классов потомков, принимая их обличье и становясь тем самым полиморфным. Когда он в роли одного потомка его одноименный метод реализуется методом данного потомка.

Итак, третий вывод. Только полностью объектно-ориентированная среда визуального программирования позволяет обеспечить повторноиспользуемость программного кода, его расширяемость, модульность и модифицируемость и тем самым преодолеть новый барьер сложности программных систем и обеспечить поддержку сборочного программирования. Это объясняет трудности и малую эффективность использования просто объектных ЯП и является исходной точкой для великой заповеди объектно-ориентированного программирования: "Если только все окружение не является объектно-ориентированным, объекты создают гораздо больше проблем, чем они того стоят".

И наконец последнее кардинальное изменение - интеграция инструментария, технологий и информационных сред.

С появлением языков визуального программирования наконец-то преодолено искусственное разделение ЯП на процедурные и обработки баз данных. Теперь не обязательно и может быть даже нежелательно для разработки информационных систем использовать СУБДовские инструментальные системы. Использование машин баз данных (МБД) обеспечило возможность в ЯВП работать одновременно с локальными БД различной архитектуры, использовать SQL и работать с разнородными и разноплатформенными серверами БД. Технология клиент-сервер и МБД делает практически независимой среду реализации клиентской части. Графическая среда Windows и средства внедрения и связи разнородных объектов OLE и DDE позволяют совместно использовать и работать практически во всех информационных средах, в том числе мультимедийных и интернетовских.

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

Резюме о методологии. Как видим, в визуальном программирование происходит крутой поворот в парадигме программирования и стиле программного мышления, по сравнению с которым прежний переход от бессистемного кодирования к структурному программированию кажется просто игрушкой. Структурное программирование никто не отменяет - это просто нижний слой объектно-ориентированного программирования. По сути объектно-ориентированное программирование является его дальнейшим развитием. Это уже структуризация не только кода процедур, но и данных и операций по объектам, которые ближе соответствуют структуре приложения и обеспечивают большую и более логичную модульность и соответственно понятность, расширяемость и модифицируемость кода. Естественно за один присест все не осилить и освоение визуального программирования лучше выполнять в два этапа:

  1. Освоить событийное управление и направляемое событиями программирование, используя при создании методов традиционное структурное процедурное программирования и вникнув в понятие объекта при использовании готовых компонент ЯВП. Это тоже не так просто, если до этого вы работали только в DOS.

  2. Изучить и освоить объектно-ориентированнное проектирование и программирование, научиться мыслить объектно-ориентированно. Это наиболее сложная и перспективная часть визуального программирования и отдельный большой предмет.

Начальные шаги технологии визуального программирования определяются оболочкой самой среды визуального программирования. Сначала создаются экранные формы простейшей буксировкой мыши. В инспекторе объектов производится настройка их свойств путем заполнения отдельных полей. На главную форму помимо визуальных компонент наносятся невизуальные компоненты. Формы объединяются в единый проект. Далее в соответствии со сценарием диалога программируются методы события основной и подчиненных форм. Программы "пустых" методов событий появляются в окне редактора после нажатия соответствующих клавиш или действий мыши. "Пустые" методы дополняются определенными операторами активации и дезактивации форм. По окончании начальных шагов получается работающий "скелет" программы с источниками данных из файловых баз данных и со сгенерированными формами документов, выводимых на печать. Исследователь (Browser) обеспечивает визуализацию схемы иерархии классов полученного "скелета" программы. Другими словами, технический проект реализованной части программы формируется автоматически.

Дальнейшая разработка программы ведется по технологии объектно-ориентированного программирования. Можно часть программы реализовать по технологии структурного программирования. Некоторые недостающие визуальные и невизуальные компоненты получаются модификацией исходных текстов наиболее близких прототипов имеющихся компонент. Рекомендуется новые компоненты помещать в палитру компонент. Это облегчит их повторное использование в данной или последующих разработках. Код, относящийся только к данной разработке, набирается по тексту программы.

studfiles.net

nit-for-you - Графическое программирование

Визуальное программирование — способ создания программы для ЭВМ путём манипулирования графическими объектами вместо написания её текста. Визуальное программирование часто представляют как следующий этап развития текстовых языков программирования. Наглядным примером может служить утилита Визуальный Pascal, где редактируются графические объекты и одновременно отображается соответствующий текст программы. В последнее время визуальному программированию стали уделять больше внимания - в связи с развитием мобильных сенсорных устройств (КПК, планшеты), когда использование клавиатуры не очень удобно.Необходимо различать:
  • графический язык программирования — который прежде всего язык программирования (со своим синтаксисом)
  • визуальные средства разработки — как правило, под ними подразумевают средства проектирования интерфейсов или какую либо CASE-систему для быстрой разработки приложений или SCADA-систему для программирования микроконтроллеров.
Языки визуального программирования могут быть дополнительно классифицированы в зависимости от типа и степени визуального выражения, на следующие типы:
  • языки на основе объектов, когда визуальная среда программирования предоставляет графические или символьные элементы, которыми можно манипулировать интерактивным образом в соответствии с некоторыми правилами;
  • языки, в интегрированной среде разработки которых на этапе проектирования интерфейса применяются формы, с возможностью настройкой их свойств. Примеры: Delphi и C++ Builder фирмы Borland, С#
  • языки схем, основанные на идее «фигур и линий», где фигуры (прямоугольники, овалы и т. п.) рассматриваются как субъекты и соединяются линиями (стрелками, дугами и др.), которые представляют собой отношения. Пример: UML.
В современных разработках делаются попытки интегрировать подход визуального программирования с программированием потоков данных (англ. dataflow programming), чтобы иметь непосредственный доступ к состоянию программы для онлайновой отладки, или автоматизированная генерация и документирование программы. Языки потоков данных также позволяют делать автоматическое распараллеливание, которое может стать одним из величайших достижений программирования в будущем.[1]

Графические, или визуальные, языки программирования

  • Дракон-схемы — графический язык программирования, используется для программирования в ракетно-космической технике («Буран», «Морской старт», «Тополь»). Существует бесплатный Дракон-редактор. Этот язык имеет наиболее строгое теоретическое обоснование.
  • Язык последовательных функциональных схем SFC (Sequential Function Chart) — графический язык программирования широко используется для программирования промышленных логических контроллеров PLC.
В SFC программа описывается в виде схематической последовательности шагов, объединённых переходами.
  • LD — язык релейно-контактных схем
  • FBD — язык Функциональных блоковых диаграмм.
  • Язык CFC (Continuous Flow Chart) — ещё один высокоуровневый язык графического программирования. CFC — это дальнейшее развития языка FBD. CFC был специально создан для проектирования систем управления непрерывными технологическими процессами.
  • LabVIEW — один из самых распространенных языков разработки программ, работающих с некомпьютерным оборудованием.
  • VisSim — это визуальный язык программирования предназначенный для моделирования динамических систем, а также проектирования, базирующегося на моделях, для встроенных микропроцессоров.
  • Скретч — это визуальная объектно-ориентированная среда и язык программирования для обучения школьников младших и средних классов.
Конструкторы графического программирования:http://alice.org/http://www.toontalk.com/http://www.squeak.org/http://scratch.mit.edu/http://www.greenfoot.org/overviewhttp://www.gemtree.com/peter.htmhttp://www.squeakland.org/https://lookingglass.wustl.edu/tutorials

http://www.yenka.com/http://www.kodugamelab.com/http://stencyl.com/https://www.scirra.com/http://www.robomind.net/en/index.htmlhttp://www.yoyogames.com/

http://www.simphonics.com/products/software/vplus/http://www.treelogy.ru/cd/42http://www.oxford-digital.com/graphical-programming.htm

http://drakon-practic.ru/http://thyrd.org/thyrd/http://jmcad.sourceforge.net/index_ru.shtmlhttp://sine.ni.com/np/app/main/p/docid/nav-104/lang/ru/

http://www.tersus.com/http://www.sikuli.org/http://www.limnor.com/index.htmlhttp://www.hiasm.com/ https://www.youtube.com/user/HiAsmVideo/videos - комплекс видео-уроков

http://softconstructors.com/ru/applications/stroycode/index.html

http://mql-studio.ru/index.htmhttp://msdn.microsoft.com/en-us/library/bb964572.aspxhttp://doublesvsoop.sourceforge.net/pwcthelp/main.htm

help on how to format text

nit-for-you.wikispaces.com

Визуальное программирование — Википедия

Материал из Википедии — свободной энциклопедии

Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 6 апреля 2015; проверки требуют 37 правок. Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 6 апреля 2015; проверки требуют 37 правок.

Визуальное программирование — способ создания программы для ЭВМ путём манипулирования графическими объектами вместо написания её текста. Визуальное программирование часто представляют как следующий этап развития текстовых языков программирования. Наглядным примером может служить утилита Визуальный Pascal или Microsoft Visual Studio, где редактируются графические объекты и одновременно отображается соответствующий текст программы. В последнее время визуальному программированию стали уделять больше внимания — в связи с развитием мобильных сенсорных устройств (КПК, планшеты). Визуальное программирование в основном используется для создания программ с графическим интерфейсом для операционных систем с графическим интерфейсом пользователя. Среда визуального программирования позволяет написать Веб-приложение для браузеров. Среда визуального программирования позволяет создать консольное приложение (программа без графического интерфейса и без вывода сообщений в консоль) для программирования микроконтроллеров, программируемых микросхем.

Необходимо различать:

  • графический язык программирования — который прежде всего язык программирования (со своим синтаксисом)
  • визуальные средства разработки — как правило, под ними подразумевают средства проектирования интерфейсов или какую либо CASE-систему для быстрой разработки приложений или SCADA-систему для программирования микроконтроллеров.

Языки визуального программирования могут быть дополнительно классифицированы в зависимости от типа и степени визуального выражения, на следующие типы:

  • языки на основе объектов, когда визуальная среда программирования предоставляет графические или символьные элементы, которыми можно манипулировать интерактивным образом в соответствии с некоторыми правилами;
  • языки, в интегрированной среде разработки которых на этапе проектирования интерфейса применяются формы, с возможностью настройки их свойств. Примеры: Delphi и C++ Builder фирмы Borland, С#, MS Access, C++ посредством использования wxSmith в составе свободной кроссплатформенной среды разработки Code::Blocks.
  • языки схем, основанные на идее «фигур и линий», где фигуры (прямоугольники, овалы и т. п.) рассматриваются как субъекты и соединяются линиями (стрелками, дугами и др.), которые представляют собой отношения. Пример: UML.

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

Графические, или визуальные, языки программирования[править | править вики-текст]

Список примеров в этой статье или её разделе не основывается на авторитетных источниках непосредственно о предмете статьи или её раздела. Добавьте ссылки на источники, предметом рассмотрения которых является тема настоящей статьи (или раздела) в целом, содержащие данные элементы списка как примеры. В противном случае раздел может быть удалён.
  • App Inventor — Cреда визуальной разработки android-приложений, требующая от пользователя минимальных знаний программирования.
  • Дракон-схемы — графический язык программирования, используется для программирования в ракетно-космической технике («Буран», «Морской старт», «Тополь»). Существует бесплатный Дракон-редактор. Этот язык имеет наиболее строгое теоретическое обоснование.
  • Язык последовательных функциональных схем SFC (Sequential Function Chart) — графический язык программирования широко используется для программирования промышленных логических контроллеров PLC.
  • HiAsm — это язык и среда разработки приложений, которая позволяет создавать приложения, управляя их моделью с помощью интуитивно понятного графического интерфейса HiAsm.
  • В SFC программа описывается в виде схематической последовательности шагов, объединённых переходами.
  • LD — язык релейно-контактных схем.
  • FBD — язык Функциональных блоковых диаграмм.
  • Язык CFC (Continuous Flow Chart) — ещё один высокоуровневый язык графического программирования. CFC — это дальнейшее развития языка FBD. CFC был специально создан для проектирования систем управления непрерывными технологическими процессами.
  • Язык «G» системы LabVIEW — один из самых распространенных языков разработки программ, работающих с некомпьютерным оборудованием.
  • VisSim — это визуальный язык программирования предназначенный для моделирования динамических систем, а также проектирования, базирующегося на моделях, для встроенных микропроцессоров.
  • Скретч — это визуальная объектно-ориентированная среда и язык программирования для обучения школьников младших и средних классов.
  • BluePrint — Язык скриптинга в игровом движке UnrealEngine 4
  • Кибор — Интегрированная среда создания бот программ автоматизации. Обладает визуальным инструментом для построения программ с помощью блок схем. Для визуального программирования требуется минимум навыков программирования.
Список примеров в этой статье или её разделе не основывается на авторитетных источниках непосредственно о предмете статьи или её раздела. Добавьте ссылки на источники, предметом рассмотрения которых является тема настоящей статьи (или раздела) в целом, содержащие данные элементы списка как примеры. В противном случае раздел может быть удалён.
  1. App Inventor, среда визуальной разработки android-приложений, требующая от пользователя минимальных знаний программирования
  2. AgentSheets, легкая в использовании авторская система для игр и научных расчётов
  3. Alice
  4. Analytica
  5. AppWare, also known as MicroBrew, программирование, на основе иконок для Mac OS и Microsoft Windows
  6. AudioMulch, основанная на потоке звукового сигнала, также для среда для создания музыки
  7. Automator
  8. Aviary Peacock, визуальная лаборатория на основе просмотра файлов
  9. Baltie
  10. Befunge, эзотерический текстовый язык программирования, в котором команды размещаются графически в текстовом файле
  11. CODE
  12. eXpecco, основанный на графическом потоке язык программирования и среда разработки для автоматизации тестирования
  13. Flow
  14. HiAsm, конструктор программ
  15. JMCAD среда графической разработки систем для промышленности, инженеров и учёных
  16. Kwikpoint, пиктограммный визуальный транслятор, созданный Аланом Стилманом
  17. LabVIEW, среда графического программирования, разработанная для инженеров и учёных
  18. LogicProgram, язык, среда графического программирования, позволяющая формировать матрицу отношений компонентов платформы
  19. Macromedia Authorware
  20. Miracle C Compiler, среда графического программирования, позволяющая формировать матрицу отношений компонентов платформы (сайт: http://www.c-compiler.com)
  21. MQL-Studio for HiAsm, пакет для разработки экспертов, скриптов, индикаторов на языке MQL5 в визуальном редакторе программ HiAsm.
  22. ROBO Pro
  23. Thyrd, свободная, открытая графическая среда программирования (иерархия графических примитивов) на базе языка Forth (Форт)
  24. TouchDesigner современная среда визуальной разработки широкого назначения ([1])
  25. vvvv
  26. ДРАКОН, язык, созданный для разработки советского космического корабля Буран
  27. СтройКод, визуальное программирование (сайт: http://softconstructors.com/ru/applications/stroycode/index.html)
  28. Блендер — программа 3D моделирования с открытым исходным кодом, в которой узловым редактированием осуществляется настройка материалов, текстур, постобработка, настройки окружения сцены, а также редактирование и создание геометрии при помощи системы узлов СВеРЧОК (Система векторного рабочего черчения и объектного конструирования)
  29. ИС Дракон — интегрированная среда применения языка Дракон.
  30. MexBIOS — интегрированная среда программирования цифровых сигнальных процессоров.
  31. Visual Prolog, система визуального программирования объектно-ориентированного расширения языка программирования PDC Prolog.

ru.bywiki.com

Современное визуальное программирование: классика VPL

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

Для роботов и DSP уже фактически брендовой является среда DSP Robotics Flowstone, в области веба мы можем наблюдать огромное количество CMS, а если говорить о конструкторе, то лучший и популярный — британский Serif Web Plus, в звуковых технологиях очень много продукции создается в Synth Edit и Synth Maker, разработка игр сейчас переживает очередную революцию, при этом интерактивные мультимедийные приложения можно легко и быстро создавать в Scirra Construct, Multimedia Fusion и так далее. При этом обратите внимание на то, что мы назвали ниши, в которых десять лет назад требовались серьезные программисты.

В принципе, фактически все сейчас смещается в сторону визуального программирования (VPL). Ранее мы уже рассмотрели отдельный тренд визуального программирования — сильно-визуальные языки, а теперь мы уделим наше и ваше внимание более классическим, а также узкоспециализированным средам этого течения программирования.

DSP Robotics Flowstone

Flowstone — это одна из первых ласточек, вслед за которой появилась целая плеяда схожих продуктов, а если сказать точнее, то множество ранее известных средств разработки перешли на уровень визуального проектирования и разработки по примеру данной среды. Нужно сказать, что сама программа, как и ее интерфейс, в момент первого появления не выглядели новыми, поскольку точно такое же видели многие разработчики звукового софта — в программе SynthMaker (интерфейс и библиотека стандартных компонент те же).

Но в целом мы говорим о DSP (цифровом сигнальном процессинге), поэтому сфера применения может быть различной.

DSP Robotics предложила свою среду для программирования любых DSP-систем, и что самое важное, обеспечила прямой доступ к стандартным «источникам» и «потребителям» цифровых сигналов — сенсорам, датчикам, микроконтроллерам, стандартным внешним и внутренним интерфейсам.

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

Например, в области робототехники эта среда высоко ценится за то, что в ней можно работать с различными типовыми вариантами микроконтроллеров на уровне эмуляции процессов.

Видео-плеер/рекордер (программа), созданный в Flowstone за 5 минут

В принципе, до этого существовало множество схожих сред, в которых мы могли брать программные прототипы тех же микроконтроллеров и других элементов, но в данном случае все стало более-менее упрощенным.

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

Конкуренты... Нужно сказать, что сейчас у Flowstone имеется несколько конструкторов-конкурентов, предлагающих точно такой же принцип работы, и выбор между ними сейчас, в основном, определяется в силу сравнения наборов компонент и библиотек эмулируемых/поддерживаемых устройств и интерфейсов. Flowstone, как и большинство конкурирующего софта, компилирует результаты работы в *.exe-файл.

Для новичков в области программирования DSP можно порекомендовать визуальный конструктор-обучающую систему Yenka. В ней вы можете создавать любые электрические схемы, в том числе с использованием двигателей, микроконтроллеров и т.п., а потом просто наблюдать результат. Кстати, лично мне Yenka понравилась тем, что в ней можно проектировать те же ветряные электростанции. Программа рассчитана на школьников и студентов.

Serif WebPlus

Конструктор WebPlus быстро приобрел популярность в силу того, что позволяет создавать сайты, конструировать их дизайн вообще без какого-либо знания HTML и верстки. Интерфейс напоминает Adobe Photoshop, только в панели инструментов размещен набор компонент, таких как изображения, текстовые блоки, таблицы, флэш, графические объекты и так далее. Все очень удобно и быстро работает. На страницу, которая является рабочей областью, пользователь помещает необходимое, причем располагает все в любом понравившемся месте, после чего программа генерирует код и переводит все на язык HTML с привязкой к JavaScript. У каждого объекта имеется расширенный спектр свойств, например, есть управление прозрачностью, добавление спецэффектов и так далее.

Сайт можно сохранять как на диске, так и автоматически загружать/обновлять по FTP прямо из оболочки программы. Недостатки такого конструктора были в основном актуальными раньше, поскольку страницы получались довольно-таки тяжелыми. Но с того времени многое изменилось, в том числе оптимизировался и сам алгоритм внутри WebPlus.

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

Конкуренты... Что самое интересное, конкурентов не так много, поскольку рынок средств для создания сайтов довольно-таки сильно насыщен, а создание подобного ПО является технологически сложным процессом. Но сама идея конструктора повторена и в чем-то усилена в WYSIWYG Web Builder, который тоже набрал большое количество сторонников буквально за последний год-два. Не так давно разработчики из Serif предложили пользователям бесплатную версию своего продукта, в которой доступно много полезного функционала.

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

На данный момент конструкторы имеют один существенный недостаток, и, как правильно многие смогли догадаться, — в динамике и привязке к БД. Другими словами, в этих средах очень удобно создавать статические страницы, небольшие сайты и сайты-визитки. Огромный плюс веб-конструкторов состоит в том, что они быстро осваиваются пользователями, и тем самым удобно решается вопрос обновлений.

SynthEdit

SynthEdit — это самый популярный конструктор для создания звуковых плагинов (подключаемых модулей с инструментами и эффектами для программ многодорожечной записи). Мы уже упоминали его ближайшего конкурента SynthMaker, рассказывая о Flowstone, но в данном случае выигрыш именно этой среды разработки получился в силу большей легкости освоения и одной довольно специфической вещи. Для опытных программистов (С++) есть специальный вариант программы с собственным SynthEdit SDK, в которой имеется уже множество спрограммированных алгоритмических блоков.

И это позволяет создавать профессиональные приложения уже не совсем «с нуля».

Для обычных пользователей предлагается стандартный визуальный конструктор с набором компонент, из которых можно собирать каскады любого уровня сложности и... вложенности, объединяя созданные алгоритмические блоки в контейнеры. Программе много лет, и в ней отточено практически все, в том числе, и эргономика. В данном случае ситуацию можно назвать красивым примером объектно-ориентированного проектирования (подчеркнем, именно «проектирования»). Дело в том, что во многих визуальных конструкторах не предусматривается объединение больших логических блоков в визуальные модули, что затрудняет проектирование как таковое. В целом, в SynthEdit можно проводить время сутками, даже ничего не создавая, а рассматривая готовые примеры, созданные в этой программе, коих очень много.

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

Сейчас большинство (чуть ли не 90%) аудиософта создается с помощью конструкторов. SynthEdit не является чем-то особенно удивительным для большинства пользователей звуковых технологий, потому как они все являются инженерами или инженерно мыслят. Очень много конструкторов реализовано в рамках специализированных программных оболочек. Например, в Native Instruments Reaktor вы можете создать схему любой сложности и сразу же применять ее в работе. Что касается конструкторов как отдельных программных сред для создания плагинов, то незыблема тройка: Quantum FX, SynthEdit и SynthMaker.

Scirra Construct

Scirra Construct — это, пожалуй, на сегодня один из самых популярных конструкторов для создания небольших игр и мультимедийных приложений. Популярность приобрели ранние версии продукта — Construct Classic, которые работали на базе DirectX и позволяли компилировать приложения в exe-файлы. Нынешняя версия 2 уже так не работает, поскольку не только переписана заново, но проецируется на другую технологическую нишу — HTML5. К тому же, она является платной, в отличие от предыдущих версий.

Популярность Construct пришла по трем причинам. Первая — бесплатность Construct Classic. Вторая — сравнительная легкость освоения и наличие всех необходимых атрибутов разработки (компоненты типа спрайтов, интерфейсных элементов, грамотно сделанный отладчик и т.п.). Третья — опережение ближайших конкурентов.

Например, в момент популяризации Construct известный многим Game Maker от Yo Yo Games обновлялся крайне нестабильно. Другие только начинали разворачиваться в эту сторону, эргономика большинства конструкторов оставляла желать лучшего. Сам разработчик Construct до этого трудился в команде известного Multimedia Fusion, но при этом решил сделать что-то свое по собственному усмотрению, которое оказалось более современным.

Программой предлагается так называемый принцип «программирования «без программирования», на котором мы заострим внимание чуть позже. Работа в конструкторе строится по сценам, на которые помещаются различные объекты, редактируются их свойства, и с каждой такой сценой связан собственный редактор событий. В нем прописываются необходимые условия и связанные с ними действия. Также можно оперировать глобальными/локальными переменными и так далее.

Отдельно нужно отметить качество программирования продукта, в стабильных версиях Construct ошибок и слетов фактически нет.

Конкуренты... У Construct Classic есть очень близкий и подобный по функционалу французский конкурент Game Develop. Его интерфейс, фактически, идентичен, программирование «без программирования» построено по тому же принципу. Единственная разница заключается в том, что в Game Develop чуть изменена философия — все реализуется на уровне объектов, которые включают в себя что-либо из стандартного (спрайты и т.п.).

Также стоит сказать об упомянутом выше GameMaker. А в целом, сейчас и более профессиональные среды разработки, такие как Torque или Unity, довольно близко стоят к конструкторам по легкости освоения. Для совсем новичков и детей есть очень хороший и простой визуальный конструктор игр от Microsoft — Kodu.

HiAsm Studio

Hiasm, пожалуй, одна из самых популярных (и универсальных!) программ такого рода (несмотря на название, она не имеет прямого отношения к ассемблеру, хотя её возможности более низкоуровневые по сравнению с аналогичными разработками). На ней вы можете создать даже свой собственный игровой движок. Это бесплатная среда разработки win32-приложений, PHP, html и js-скриптов и страниц, а так же приложений для КПК на базе Windows Mobile.

При разработке программ от пользователя не требуются обязательного знания языков программирования и особенностей функционирования ОС, при этом HiAsm позволяет быстро и легко писать (рисовать) небольшие программы. К ней имеется множество дополнительных пакетов, которые делают данную программу просто кладезем неограниченных возможностей.

Базовый пакет, поставляющийся вместе со средой, позволяет разрабатывать небольшие Windows-приложения с использованием любых стандартных ActiveX-компонентов Интернета, баз данных, графики (GDI и OpenGL), широких мультимедиа возможностей (звука), и многого другого, а так же менее интересные фоновые программы, апплеты панели управления, библиотеки DLL и прочее.

Я не буду здесь останавливаться на ней подробно, так как об этой среде написано ну очень много. Чтение я рекомендую начать вот с этих двух качественных источников: первое и второе; кроме того доступно очень много обучающего видео по HiAsm. Лично для меня эта среда наиболее симпатична и удобна из всех сегодня рассмотренных (может быть это следствие огромной коллекции качественных ActiveX накопленных мною за пару лет обычного программирования на Visual Studio?).

О программировании «без программирования»

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

Во-первых, программирование с помощью мыши... Думаю, что на этом моменте стоит заострить особое внимание, потому как стиль программирования в Scirra Construct, Game Develop и нескольких подобных решений наталкивает на спорные мысли. И именно он сейчас начинает распространяться на широкий спектр приложений, например, нечто подобное уже можно увидеть в нескольких новых IDE.

Во-первых, событийный редактор без выхода на код... Что это такое? Допустим, вы хотите написать условие, «если a=1 , то b=2 ». Опишем, как это делается в Construct (этот фрагмент текста за утомительностью можно и не читать). Сначала создаем глобальную переменную, а именно в окне проекта, кликаем правой кнопкой мыши над Global Variables... Add Global Variable... в появившемся окне указываем имя. Чтобы создать b производим идентичную цепочку действий.

Затем переходим на страницу событий Event Sheet Editor, создаем там новое событие, появляется окно, в котором мы выбираем System, появляется новое окно, находим там Compare Global Variable, щёлкаем, видим новое окно, выбираем из комбобокса «a», условие Equal to, указываем в окошке цифру 1. Нажимаем ОК. Условие появилось в окошке события строкой Is global variable ’a’ Equal to 1 . Напротив нее находится окно действий, кликаем на New Action, появляется окно, в нем выбираем System, кликаем, появляется следующее окно находим там Global Variables -> Set Value, нажимаем Next и в следующем окне выбираем из комбобокса «b» и вписываем двойку. Нажимаем ОК.

И как вам последовательность действий для создания простого условия!?

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

При визуальном программировании редакторы кода заменены на редакторы событий, но смысл не меняется

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

Чем больше элементов содержит файл проекта, тем больше будет требовать от ресурсов ПК

Во-первых, работа с ним. А в игровых конструкторах и еще паче — ваш исполняемый файл строится по подобию того же файла проекта. Например, вы создали один уровень либо одну страницу мультимедийного приложения и при запуске исполняемого файла программа будет занимать N памяти RAM и VRAM. Затем создаете второй уровень или сцену с другим контентом. Запускаете программу, и хотя находитесь на первой сцене, она занимает N+M  памяти, то есть, подгружаются все внутренние данные. Таким образом, по мере роста проекта можно запросто столкнуться с Out of Memory.

Большинство подобных конструкторов для неопытных пользователей предлагает единственное средство — разделение данных на внешние и внутренние, и в тех же Construct Classic, Game Develop и многих других это указывается неявно. А в менее продуманных «поделках» так и вообще все грузится во внутренние ресурсы.

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

Подытожим

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

Мы уже не раз были свидетелями того, как обычные пользовательские приложения превращались в глобальные популярные среды. Достаточно привести в пример Adobe Flash. Поэтому относиться несерьезно к тем же Scirra Construct или Game Maker все-таки не стоит — еще неизвестно, что выстрелит в итоге. Например, еще пару лет назад очень выгодно смотрелась среда для создания интерактивных мультимедийных приложений Multimedia Builder (я писал о ней ранее более подробный обзор в сравнении с почти полным аналогом — NeoBook), которая по своим возможностям и одновременно простоте и сейчас затыкает за пояс огромное количество конструкторов и новоявленных IDE. Но программа так и не получила массовой поддержки, в результате чего ее разработка была свернута. Какая причина?

На мой взгляд, очень много в Multimedia Builder (MMB) было новаторского и самостоятельного. Тот же Flash, на этапе разработки в Macromedia, изначально базировался на принципе GUI от Photoshop, на нем же построен и описанный нами выше Serif WebPlus. Flowstone также заимствовала очень многое из популярных конструкторов прошлого, в SynthEdit взят за основу принцип графического построения, известный еще с середины 90-х,Scirra Construct взял лучшее из имеющегося на рынке. То есть, везде можно наблюдать преемственность технологий. Никаких революций уже давно не происходит. А конкуренция во всех сферах сейчас очень серьезная, например, как вам вот такой вариант визуального программирования в интернете? Про два более традиционно-десктопных монстра визуального программирования FileMaker и Visual Studio LightSwitch я уже ранее писал в этом блоге достаточно подробно.

КВ, 2012

blogerator.org

FLProg — система визуального программирования для Arduino

Начав статью с обзора существующих средств разработки программ для нашедших широкое применение в профессиональ­ных и любительских разработках микроконтроллерных модулей Arduino, автор подробно рассказывает об одной из них — FLProg, предназначенной для пользователей, специализирующихся в электротехнике и электронике, но не владеющих языками про­граммирования. Все предписанные программе действия изоб­ражают в этой системе наглядными и привычными для таких спе­циалистов условными графическими обозначениями.

Официальную среду разработки про­грамм для модулей Arduino предла­гают пользователям под названием Arduino IDE (рис. 1).

Рис. 1

Программирова­ние в ней происходит на языке ProcesSing/Wiring — диалекте языка С (скорее, C++). Среда представляет собой, по сути, обычный текстовый редактор с возможностью трансляции текста про­граммы в машинные коды и их загрузки в микроконтроллер модуля. Альтерна­тива Arduino IDE — предназначенная для микроконтроллеров семейства AVR ин­тегрированная среда AVR Studio (рис. 2). Она служит для разработки и отладки программ на языке ассемблера, но к ней можно подключить и компилятор языка С. В 2006 г. она сменила название на Atmel Studio.

Рис. 2

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

  1. Средства расширенного Формати­рования обычного исходного текста раз­рабатываемой программы. Её по-преж­нему пишут на языке С, но в более на­глядном формате. Сейчас таких средств очень много. Самые яркие примеры: Scratch, S4A, Ardublock. Они хороши для начального обучения программирова­нию на языке С, поскольку отлично по­казывают структуру и синтаксис этого языка. Но большие серьезные програм­мы получаются громоздкими. На рис. 3. показан пример программы на языке Scratch.

    Рис. 3

  2. Средства, скрывающие текст и за­меняющие его графическими символа­ми. В них также повторяется структура языка программирования высокого уровня, формируются циклы, переходы, условия. Эти средства тоже очень хоро­ши для первоначального обучения по­строению алгоритмов с последующим переходом к программированию на классических языках. Но они плохо под­ходят для построения больших про­ектов ввиду громоздкости получаемых структур. Примеры таких средств — miniBloq, Algorithm Builder, Flowcode. На рис. 4 показан пример программы, разработанной в среде miniBloq.

    Рис. 4

  3. Средства, основанные на языках FBD и LAD, применяемых в промышлен­ной автоматике. Строго говоря, языки программирования, как таковые, в них не используются. Это, скорее всего, ви­зуальные среды для рисования принци­пиальных и логических схем проектиру­емых устройств. Примеры схем вычис­лительных алгоритмов, построенных с помощью сред проектирования Horizon и FLProg, показаны соответственно на рис. 5 и рис. 6. Тем, кто привык рабо­тать с цифровой техникой, больше по­нравится работать в этих средах, чем разрабатывать программы на классиче­ских языках программирования. Подоб­ные средства хорошо подходят как для изучения импульсной и релейной техни­ки, так и для создания серьёзных про­ектов. В них сконцентрирован много­летний опыт разработчиков программ для промышленных контроллеров. Но начальный уровень знаний, требующий­ся для использования таких средств, значительно выше. Нужно владеть осно­вами электротехники и принципами по­строения электрических схем. Эти сред­ства хороши для инженеров-электриков и электронщиков, которые хотят исполь­зовать микроконтроллеры в своих раз­работках, не изучая для этого классиче­ские языки программирования.

    Рис. 5

    Рис. 6

Рассматриваемая далее программа FLProg основана на языках программи­рования FBD и LAD.

FBD (Function Block Diagram) — гра­фический язык программирования стандарта МЭК 61131-3. Программа представляет собой список цепей, за­полняемый последовательно сверху вниз. Цепи образуют из библиотечных блоков. Блок (элемент) — это подпро­грамма, функция или функциональный блок (И, ИЛИ, НЕ, триггер, таймер, счёт­чик, блок обработки аналогового сигна­ла, математическая операция и т. д).

Каждую цепь составляют из отдель­ных блоков, подключая на экране ком­пьютера к выходу каждого блока вход следующего. Внутри цепи программа выполняет блоки строго в порядке их соединения. Результат, полученный на выходе последнего блока цепи, про­грамма записывает во внутреннюю пе­ременную или подаёт на выход контрол­лера. Пример визуального представле­ния программы на языке FBD показан на рис. 7.

Рис. 7

LAD (Ladder Diagram) — язык релей­ной (лестничной) логики, известный также под названиями LD и РКС.

Синтаксис этого языка удобен для опи­сания логических узлов, выполненных на релейной технике. Язык ориентиро­ван на специалистов по автоматике, ра­ботающих на промышленных предприя­тиях. Он обеспечивает наглядное ото­бражение логики работы контроллера, облегчающее не только собственно про­граммирование и ввод системы в эксплуатацию, но и быстрый поиск неполадок в подключаемом к конт­роллеру оборудовании. Программа на языке ре­лейной логики имеет на­глядный и интуитивно по­нятный инженеру-электрику вид, представляя логические операции в виде электрических цепей с замкнутыми и разомкнутыми контактами. Протекание или отсутствие тока в такой цепи соответствует результату логи­ческой операции (ток течёт — истина, ток не течёт — ложь). Пример схемы на языке LAD представлен на рис. 8.

Рис. 8

Основные элементы языка LAD — контакты, которые можно уподобить контактным парам реле или кнопок. Контактная пара отождествляется с логиче­ской переменной, а состояние этой пары — со значением пе­ременной. Различают нормаль­но замкнутые и нормально ра­зомкнутые контактные элемен­ты. Их можно сопоставить с нормально замкнутыми и нор­мально разомкнутыми кнопка­ми в электрических цепях.

Такой подход оказался очень удобным для лёгко­го вхождения инженеров-электриков в разработку систем автомати­ки. Разрабатывая проекты установок, они могут легко привязать их функ­ционирование к ал­горитмам работы контроллера. При обслуживании уста­новок на объекте очень важно, чтобы обслуживающий персонал мог легко проверить работу системы, найти и устранить проблему, не вызывая при этом по каждому пустяку программиста из "центра". Сегодня с помощью подобных средств разработки создают почти все системы промышленной автоматики.

Построенная на этих представлениях система разработки программ FLProg работает с микроконтроллерными модулями Arduino. Эти модули очень удобны для быстрой разработки и от­ладки устройств, что важно не только радиолюбителям, но и весьма полезно, например, в школьных кружках и в учеб­ных лабораториях. Одно из преиму­ществ — не требуется программатор. Достаточно подключить модуль Arduino к компьютеру и загрузить подготовлен­ную программу непосредственно из среды разработки.

В настоящее время существует бога­тый выбор как различных вариантов микроконтроллерных модулей Arduino (рис. 9), так и дополняющих их моду­лей, например, датчиков и исполнитель­ных устройств. Кроме того, в Интернете (например, на сайте http://robocraft.ru/) можно найти огромное число готовых проектов на основе этих модулей и адаптировать их под свои нужды.

Рис. 9

В настоящее время система FLProg работает со следующими версиями мо­дулей: Arduino Diecimila, Arduino Duemila-nove, Arduino Leonardo, Arduino Lilypad, Arduino Mega 2560, Arduino Micro, Arduino Mini, Arduino Nano (ATmega168), Arduino Nano (ATmega328), Arduino Pro Mini, Arduino Pro (ATmega168), Arduino Pro (ATmega328), Arduino UNO. Недавно в списке появилась и плата Intel Galileo gen2. В дальнейшем предполагается пополнение и этого списка, возможно, и добавление модулей, основанных на микроконтроллерах STM.

Для создания FLProg был использован опыт программистов фирм Siemens, ABB, Schneider Electric и наработки в их средах программирования. При этом был не­сколько расширен классический функ­ционал языков для работы с промыш­ленными контроллерами путём добавле­ния функциональных блоков, отвечающих за работу с внешними устройствами. Программа работает на компьютерах под управлением ОС Windows и Linux.

Пользовательский интерфейс FLProg устроен так, что проект представляет собой набор виртуальных плат, на каж­дой из которых собран законченный модуль разрабатываемой системы. Каждая плата имеет наименование и снабжена комментариями. Для эконо­мии места в рабочей зоне её можно свернуть, если работа над ней законче­на, а при необходимости вновь развер­нуть и внести коррективы.

Красный индикатор у наименования платы на рис. 10 указывает на то, что в её схеме обнаружены ошибки. После ис­правления ошибок индикатор станет зелёным. Стрелка рядом с комментарием предназначена для свёртки изображения.

Рис. 10

Правое окно рабочей области (рис. 11) отведено для библиотеки элементов. Добавить компонент в проект можно простым перетаскиванием, а двойной щелчок покажет информацию об эле­менте программы. Перечень блоков, предусмотренных в программе, их опи­сание и помощь по работе с програм­мой можно найти на интернет-странице [1]. На интернет-странице [2] имеется перечень периферийного оборудова­ния, поддерживаемого программой. Эти списки постоянно пополняются.

Рис. 11

По мере развития программы плани­руется организация обмена информа­цией по Bluetooth, радиоканалу и интерфейсу RS-485, работа с трехосе­вым гироскопом, люксметром и други­ми датчиками. В дальнейших планах есть разработка SCADA-системы для доступа к системам, разработанным с помощью среды FLProg, с персональ­ного компьютера или мобильного уст­ройства.

Разработанную "принципиальную схему" FLProg переводит на язык Processing/Wiring. По завершении компи­ляции автоматически открывается про­грамма Arduino IDE с загруженным скет­чем проекта. В Arduino IDE необходимо указать COM-порт компьютера, к кото­рому подключён микроконтроллерный модуль, выбрать тип модуля и загрузить программу в его микроконтроллер.

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

ЛИТЕРАТУРА

  1. Создание Help-а для программы FLProg. — URL http://flprogwiki.ru/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5Help-%DO%BO%D0%B4%D0%BB%D1%8F_%D0%8F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8BFLProg (23.06 15).
  2. Применяемое в проекте оборудование. — URL http://flprog.ru/FLProg/pid218088913/vdi194000369 (23.06 15).

Автор: С. ГЛУШЕНКО, г. Москва

meandr.org

Визуальное программирование - Gpedia, Your Encyclopedia

Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 6 апреля 2015; проверки требуют 37 правок. Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 6 апреля 2015; проверки требуют 37 правок.

Визуальное программирование — способ создания программы для ЭВМ путём манипулирования графическими объектами вместо написания её текста. Визуальное программирование часто представляют как следующий этап развития текстовых языков программирования. Наглядным примером может служить утилита Визуальный Pascal или Microsoft Visual Studio, где редактируются графические объекты и одновременно отображается соответствующий текст программы. В последнее время визуальному программированию стали уделять больше внимания — в связи с развитием мобильных сенсорных устройств (КПК, планшеты). Визуальное программирование в основном используется для создания программ с графическим интерфейсом для операционных систем с графическим интерфейсом пользователя. Среда визуального программирования позволяет написать Веб-приложение для браузеров. Среда визуального программирования позволяет создать консольное приложение (программа без графического интерфейса и без вывода сообщений в консоль) для программирования микроконтроллеров, программируемых микросхем.

Необходимо различать:

  • графический язык программирования — который прежде всего язык программирования (со своим синтаксисом)
  • визуальные средства разработки — как правило, под ними подразумевают средства проектирования интерфейсов или какую либо CASE-систему для быстрой разработки приложений или SCADA-систему для программирования микроконтроллеров.

Языки визуального программирования могут быть дополнительно классифицированы в зависимости от типа и степени визуального выражения, на следующие типы:

  • языки на основе объектов, когда визуальная среда программирования предоставляет графические или символьные элементы, которыми можно манипулировать интерактивным образом в соответствии с некоторыми правилами;
  • языки, в интегрированной среде разработки которых на этапе проектирования интерфейса применяются формы, с возможностью настройки их свойств. Примеры: Delphi и C++ Builder фирмы Borland, С#, MS Access, C++ посредством использования wxSmith в составе свободной кроссплатформенной среды разработки Code::Blocks.
  • языки схем, основанные на идее «фигур и линий», где фигуры (прямоугольники, овалы и т. п.) рассматриваются как субъекты и соединяются линиями (стрелками, дугами и др.), которые представляют собой отношения. Пример: UML.

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

Графические, или визуальные, языки программирования

  • App Inventor — Cреда визуальной разработки android-приложений, требующая от пользователя минимальных знаний программирования.
  • Дракон-схемы — графический язык программирования, используется для программирования в ракетно-космической технике («Буран», «Морской старт», «Тополь»). Существует бесплатный Дракон-редактор. Этот язык имеет наиболее строгое теоретическое обоснование.
  • Язык последовательных функциональных схем SFC (Sequential Function Chart) — графический язык программирования широко используется для программирования промышленных логических контроллеров PLC.
  • HiAsm — это язык и среда разработки приложений, которая позволяет создавать приложения, управляя их моделью с помощью интуитивно понятного графического интерфейса HiAsm.
  • В SFC программа описывается в виде схематической последовательности шагов, объединённых переходами.
  • LD — язык релейно-контактных схем.
  • FBD — язык Функциональных блоковых диаграмм.
  • Язык CFC (Continuous Flow Chart) — ещё один высокоуровневый язык графического программирования. CFC — это дальнейшее развития языка FBD. CFC был специально создан для проектирования систем управления непрерывными технологическими процессами.
  • Язык «G» системы LabVIEW — один из самых распространенных языков разработки программ, работающих с некомпьютерным оборудованием.
  • VisSim — это визуальный язык программирования предназначенный для моделирования динамических систем, а также проектирования, базирующегося на моделях, для встроенных микропроцессоров.
  • Скретч — это визуальная объектно-ориентированная среда и язык программирования для обучения школьников младших и средних классов.
  • BluePrint — Язык скриптинга в игровом движке UnrealEngine 4
  • Кибор — Интегрированная среда создания бот программ автоматизации. Обладает визуальным инструментом для построения программ с помощью блок схем. Для визуального программирования требуется минимум навыков программирования.

Визуальные средства разработки

  1. App Inventor, среда визуальной разработки android-приложений, требующая от пользователя минимальных знаний программирования
  2. AgentSheets, легкая в использовании авторская система для игр и научных расчётов
  3. Alice
  4. Analytica
  5. AppWare, also known as MicroBrew, программирование, на основе иконок для Mac OS и Microsoft Windows
  6. AudioMulch, основанная на потоке звукового сигнала, также для среда для создания музыки
  7. Automator
  8. Aviary Peacock, визуальная лаборатория на основе просмотра файлов
  9. Baltie
  10. Befunge, эзотерический текстовый язык программирования, в котором команды размещаются графически в текстовом файле
  11. CODE
  12. eXpecco, основанный на графическом потоке язык программирования и среда разработки для автоматизации тестирования
  13. Flow
  14. HiAsm, конструктор программ
  15. JMCAD среда графической разработки систем для промышленности, инженеров и учёных
  16. Kwikpoint, пиктограммный визуальный транслятор, созданный Аланом Стилманом
  17. LabVIEW, среда графического программирования, разработанная для инженеров и учёных
  18. LogicProgram, язык, среда графического программирования, позволяющая формировать матрицу отношений компонентов платформы
  19. Macromedia Authorware
  20. Miracle C Compiler, среда графического программирования, позволяющая формировать матрицу отношений компонентов платформы (сайт: http://www.c-compiler.com)
  21. MQL-Studio for HiAsm, пакет для разработки экспертов, скриптов, индикаторов на языке MQL5 в визуальном редакторе программ HiAsm.
  22. ROBO Pro
  23. Thyrd, свободная, открытая графическая среда программирования (иерархия графических примитивов) на базе языка Forth (Форт)
  24. TouchDesigner современная среда визуальной разработки широкого назначения ([1])
  25. vvvv
  26. ДРАКОН, язык, созданный для разработки советского космического корабля Буран
  27. СтройКод, визуальное программирование (сайт: http://softconstructors.com/ru/applications/stroycode/index.html)
  28. Блендер — программа 3D моделирования с открытым исходным кодом, в которой узловым редактированием осуществляется настройка материалов, текстур, постобработка, настройки окружения сцены, а также редактирование и создание геометрии при помощи системы узлов СВеРЧОК (Система векторного рабочего черчения и объектного конструирования)
  29. ИС Дракон — интегрированная среда применения языка Дракон.
  30. MexBIOS — интегрированная среда программирования цифровых сигнальных процессоров.
  31. Visual Prolog, система визуального программирования объектно-ориентированного расширения языка программирования PDC Prolog.

Примечания

Ссылки

www.gpedia.com


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