Дополнительное пояснение для Алексея ДонскогоЦитата:
Двумерное структурное программирование
Императивная (процедурная) часть языка ДРАКОН опирается на новую парадигму программирования — двумерное (графическое) структурное программирование[65][66].
Р-технология программирования
Первый шаг по направлению к двумерному структурному программированию был сделан в СССР в рамках Р-технологии производства программ, или «технологии двумерного программирования»[67], созданной в Институте кибернетики имени В. М. Глушкова в 1970 годах[68].
Графическая система Р-технологии программирования закреплена в стандартах ГОСТ 19.005-85[69], ГОСТ Р ИСО/МЭК 8631—94[70].
Автор Р-технологии программирования доктор физико-математических наук профессор Игорь Вельбицкий предложил пересмотреть понятие «структура программы». По его мнению, «структура — понятие многомерное. Поэтому отображение этого понятия с помощью линейных текстов (последовательности операторов) сводит практически на нет преимущества структурного подхода.
Огромные ассоциативные возможности зрительного аппарата и аппарата мышления человека используются практически вхолостую — для распознавания структурных образов в виде единообразной последовательности символов»[71].
Правила двумерного структурного программирования существенно отличаются от классического одномерного (текстового) структурного программирования[65].
Идеи классического структурного программирования разрабатывались, когда компьютерная графика фактически ещё не существовала и основным инструментом алгоритмиста и программиста был одномерный (линейный или ступенчатый) текст. До появления компьютерной графики методология классического структурного программирования была наилучшим решением.
Замена ключевых слов на управляющую графику
С появлением компьютерной графики ситуация изменилась. Используя выразительные средства графики, появилась возможность видоизменить, развить и дополнить три базовые (текстовые) управляющие конструкции (последовательность, ветвление, цикл), а также полностью отказаться от ключевых слов if, then, else, case, switch, break, while, do, repeat, until, for, foreach, continue, loop, exit, when, last и т. д. и заменить их на управляющую графику, то есть использовать двумерное структурное программирование[65][66].
По мнению разработчиков языка ДРАКОН, чтобы добиться улучшения, надо перейти от одномерного (классического) структурного программирования к двумерному (графическому) структурному программированию.
Многие ограничения и запреты, неизбежные при текстовом структурном программировании, во многих случаях противоречат здравому смыслу, затрудняют понимание алгоритмов и программ, искажают нормальный ход человеческой мысли. Недопустимо запрещать правильный процесс мышления. Его надо разрешить. Шампур-метод и язык ДРАКОН устраняют этот недостаток[K 8].
При использовании шампур-метода набор управляющих ключевых слов (идентификаторов) текстового структурного программирования становится ненужным. При визуальном структурном подходе программист работает только с чертежом программы (дракон-схемой), не обращаясь к её текстовому представлению. Точно так же программист, работающий, например, на Дельфи, не обращается к ассемблеру и машинному коду — они для него просто не существуют.
Во многих случаях (список которых ещё предстоит уточнить) желательно отказаться от текстовых управляющих структур, заменив их управляющей графикой[K 9].
Фактически, ДРАКОН — это не просто новый язык (новое семейство языков), а новый взгляд на императивное (процедурное) программирование и новое мировоззрение[K 10].
Наибольшую трудность в течение длительного времени представляли математика и эргономика блок-схем. Нужно было создать математически строгий метод формализации блок-схем, позволяющий превратить блок-схемы в программу, пригодную для ввода в компьютер и трансляции в объектный модуль программы.
При создании языка ДРАКОН эта задача была решена с помощью визуального логического исчисления (исчисления икон)[2][74], которое лежит в основе графического синтаксиса языка ДРАКОН[75]; метода Ашкрофта-Манны[76], который является математическим обоснованием дракон-схемы «силуэт»; двумерного структурного программирования[77].
Одновременно была решена задача эргономизации блок-схем, то есть задача приспособления блок-схем для наиболее удобного человеческого восприятия и понимания[78][K 11].
Графический и текстовый синтаксис языка ДРАКОН
ДРАКОН — графический (визуальный) язык, в котором используются два типа элементов:
— графические фигуры (иконы);
— текстовые надписи, расположенные внутри или снаружи икон (текстоэлементы)[8][80].
Поэтому язык ДРАКОН имеет не один, а два синтаксиса: графический и текстовый.
Графический (визуальный) синтаксис охватывает алфавит икон, правила их размещения в поле чертежа и правила связи икон с помощью соединительных линий.
Текстовый синтаксис задает алфавит символов, правила их комбинирования и привязку к иконам (привязка необходима потому, что внутри разных икон используются разные типы выражений)[81][27