Среда программирования VisuAL. Основные понятия и возможности.

1. Понятие о визуальных языках программирования.

В данный момент времени существуют различные толкования термина "визуальные языки программирования". Как правило, когда речь заходит о визуальном программировании, то прежде всего под этим понимают программирования в средах типа Delphi или Visual Basic. Между тем, подобные среды используют визуальную технологию проектирования, а код записывается с помощью текстовых языков программирования. В иностранных источниках визуальные языки программирования (ВЯП) делят на три категории:

  •  
    • Для обработки визуальной информации;
    • Для поддержки визуального взаимодействия с пользователем;
    • Для программирования с помощью визуальных выражений.

Языки первой категории в основном используются для управления графическими объектами в средствах моделирования, САПР, графических редакторах. Примерами могут служить AutoCAD, 3D Studio MAX, Corel Draw. Примерами второй категории могут служить среды программирования, которые поддерживают возможности визуального дизайна прототипов форм ввода/вывода информации. Это уже названные выше среды Delphi, C++ Builder, Visual Basic. Также в эту группу попадают языки, которые предназначены для обработки объектов, которые изначально не являются визуальными изначально, а представляются в таком виде для удобства пользователей. Как правило, это расширения существующих текстовых языков программирования, таких как Lisp, Ada, Pascal. Такие языки называют языками , поддерживающими визуальное взаимодействие.

Третья группа языков объединяет собственно визуальные языки программирования. Визуальным языком программирования [1] называют совокупность визуальных предложений, построенных из икон, предоставляемых системой, по определенным семантическим и синтаксическим правилам. При анализе пространственного расположения икон выявляется лежащая в основе синтаксическая структура. При семантическом анализе визуальное выражение интерпретируется для определения его смысла. Одним из главнейших достоинств ВЯП является в наглядном представлении данных и структур разрабатываемых программ, предоставляемая программистам возможность работать в терминах своих представлений. В силу специфических ограничений использование ВЯП не всегда может принести ощутимую пользу. Одной из областей, где польза от их использования несомненна, является обучение, в частности, обучение алгоритмике и основам программирования. Для проверки данного положения и был разработан визуальный язык программирования VisuAL (Visual Algorithmic Language). В существующей реализации он является прототипом и будет существенно улучшен в случае подтверждения эффективности его использования в обучении.

Замечание. Поскольку VisuAL интегрирован со средой программирования, которая предоставляет сервисные функции, то в дальнейшем наряду с термином "визуальный язык программирования" будем употреблять термин "среда визуального программирования".

2. Базовые понятия программирования, которые поддерживаются VisuAL.

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

3. Процесс создания программ в VisuAL.

Термин "программа" определяется как алгоритм, подготовленный для реализации компьютером. Т.е. программа - это алгоритм, записанный на языке, понятном компьютеру. Такая трактовка предполагает знание некоторых внутренних особенностей используемых компьютерных систем. В начале компьютерной эры языки программирования были привязаны к архитектуре компьютера, но в ходе развития все больше поднимались по лестнице абстракции "от компьютера - к человеку". Представление, используемое в VisuAL скорее можно назвать алгоритмом, нежели программой. Возможности, предоставляемые средой, позволяют решать задачи, сосредоточиваясь именно на алгоритме, а не на особенностях машинной реализации. Процесс решения задачи в VisuAL, с такой точки зрения, можно назвать процессом построения алгоритма, а не процессом программирования компьютера. В качестве прототипа представления структуры алгоритмов были взяты, хорошо зарекомендовавшие себя при обучении, структурные диаграммы Несси-Шнейдермана. Каждая составная структура разрабатываемого алгоритма, представлена в VisuAL отдельным блоком. Такими блоками могут быть последовательная, разветвляющаяся, повторяющаяся структуры, а также подпрограммы. Это позволяет, по нашему мнению, сделать структуры алгоритма "осязаемыми", наочными. В каждом блоке (которые можно назвать сложными командами) размещаются простые команды. Каждая команда (простая или сложная) представлена отдельной иконой. Вследствие того, что кроме изображения и текстовой информации каждая такая икона содержит еще некоторые, специфические именно для нее возможности, то понятие иконы расширено нами до понятия Графический Визуальный Объект (ГВО). Таким образом, алгоритм, построенный с помощью VisuAl, представляет собой набор ГВО сгруппированных в отдельных блоках-структурах. Набор ГВО предоставляется системой. Не поддерживаются пользовательские компоненты так как их с успехом могут заменить подпрограммы, которые запоминаются в хранилище для повторного использования в других проектах. Процесс построения алгоритма в VisuAL сводится к выбору с помощью курсора "мыши" необходимого ГВО, его расположению в нужном блоке-структуре и настройке его свойств. Поскольку этот процесс поддерживается "экспертами настройки", которые следят за корректностью введенных параметров, то синтаксические ошибки в программах полностью отсутствуют. Пример такого эксперта приведен на рисунке 1. Данный эксперт призван контролировать процесс ввода выражения. Выражение должно быть введено синтаксически правильно. В противном случае эксперт не допустит размещение ГВО в структуре алгоритма.

Рисунок 1. Пример эксперта

Проиллюстрируем процесс создания алгоритма на примере решения задачи о нахождении большего числа из двух целых чисел. Выбираем пункт меню "Проект > Новый". Сразу же получаем каркас минимальной рабочей программы (рисунок 2).

Рисунок 2. Каркас программы

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

Рисунок 3. Таблица переменных

Поскольку нам нужно ввести два числа, с которыми будет алгоритм, то воспользуемся командой "Введения значения переменной" блока команд "стандартные" панели ГВО (рисунок 4, команда выделена красным кружком).

Рисунок 4. Панель ГВО

Допустим, что по умолчанию число b больше нежели a. Организуем с помощью команды ветвления проверку этого допущения. В случае, если a больше b присвоим переменной b значение переменной a (рисунок 5).

Рисунок 5. Реализация ветвления

После нахождения большего из двух чисел, выведем его значение. Для введения - выведения значений переменных служит таблица, которая называется консоль. Таким образом можно говорить "данные считываются с консоли", "данные выводятся в консоль". Окончательный вариант программы показан на рисунке 6, а результат работы представлен на рисунке 7.

Рисунок 6. Реализация ветвления


Рисунок 7. Результат работы программы

Визуальные языки программирования, вследствие особенностей графического представления, сложнее описать, нежели показать. Но, как показывает практика, ученикам 7-го класса достаточно одного часа для объяснения принципов работы в среде. После этого VisuAL превращается в инструмент творчества и исследования алгоритмов.

Источники
1. Chang Shi-Kuo. Visual languages: a tutorial and survay // IEEE Software. 1987. V.4. №1. P. 29-39.
2. Хлебцевич Г.Е., Цыганкова С.В. Визуальный стиль программирования: понятия и возможности // Программирование. - 1990. - №4. - С.68-79.