Язык "дракон" - учебные пособия. Цикл со стрелкой. Язык «дракон» и система образования

Last edited by PBworks 12 years, 3 months ago

ИЗЮМИНКИ ЯЗЫКА ДРАКОН

КРИТИКА БЛОК-СХЕМ

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

Если до 1980 г. блок-схемы были наиболее широко применяемым средством, то сегодня они “больше не считаются необходимыми и их популярность падает”. Хотя имеются отдельные попытки приспособить блок-схемы к современным нуждам (язык SDL и др.), однако в целом блок-схемы явно оказались на обочине бурно развивающегося процесса визуализации программирования, а их громадные потенциальные возможности фактически не используются. Язык ДРАКОН позволяет устранить или существенно ослабить отмеченные недостатки блок-схем.

Для обозначения блок-схем, построенных по правилам языка ДРАКОН, используется термин “дракон-схемы”.

ПРЕИМУЩЕСТВА ДРАКОН-СХЕМ

Чем же отличаются дракон-схемы от блок-схем? Блок-схемы не обеспечивают автоматическое преобразование алгоритма в машинный код. Дракон-схемы, напротив, пригодны для формализованной записи, автоматического получения кода и исполнения его на компьютере. Однако более важным является второе (когнитивное) отличие. Хотя блок-схемы порою действительно улучшают понимаемость программ, однако это происходит не всегда, причем степень улучшения невелика. Кроме того, есть немало случаев, когда неудачно выполненные блок-схемы запутывают дело и затрудняют понимание. В отличие от них дракон-схемы удовлетворяют критерию сверхвысокой понимаемости.

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

ИКОНЫ И МАКРОИКОНЫ

Графоэлементы (графические буквы) языка ДРАКОН называются иконами (рис. 1). Подобно тому, как буквы объединяются в слова, иконы объединяются в составные иконы - макроиконы (рис. 2).

Соединяя иконы и макроиконы по определенным правилам, можно строить разнообразные алгоритмы, примеры которых показаны на рис. 3, 4, 6, 8-11.

Шампур-блок - часть дракон-схемы, имеющая один вход сверху и один выход снизу, расположенные на одной вертикали. Примерами шампур-блоков являются иконы И3 - И10, И12 - И16, И18, И20, И21 (рис. 1) и макроиконы 2-20 (рис. 2).

ЗАЧЕМ НУЖНА ВЕТКА?

Когда принцесса Анна развелась с маркизом Ле-Шателье, возник спор о разделе имущества. Судья потребовал указать, какие покупки принцесса сделала до замужества, а какие - после.

А теперь забудем об этой семейной драме и сравним между собой рис. 3а и 3б. Легко видеть, что первый не позволяет ответить на вопрос судьи. Что касается второго, то он, наоборот, содержит нужную информацию. Более того, алгоритм на рис. 3б нарочно нарисован так, что покупки, сделанные до и после замужества, четко делятся на два списка. Эти списки зрительно и пространственно разнесены, поэтому деление алгоритма на две части независимо от воли читателя буквально бросается в глаза. Такой прием называется разбиением алгоритма на смысловые части по принципу “взглянул - и сразу стало ясно!” А сами смысловые блоки именуются ветками.

Слово “ветка” имеет два значения. С одной стороны, это смысловой “кусок” алгоритма. Например, алгоритм на рис. 3б имеет две ветки (“Покупки до замужества” и “Покупки после замужества”). На рис. 4 - четыре ветки (“Подготовка к ловле”, “Ожидание клева”, “Рыбацкая работа”, “Обратная дорога”). С другой стороны, ветка - составной оператор языка ДРАКОН, который не имеет аналогов в известных языках. Оператор “ветка” состоит из трех частей: начала ветки (икона “имя ветки”), тела ветки (которое может содержать большое число икон) и конца ветки (который содержит одну или несколько икон “адрес” либо икону “конец”).

Итак, зачем нужна ветка? Чтобы помочь работнику умственного труда, программисту и разработчику технологии формализовать смысловое разбиение проблемы, программы или техпроцесса на части и дать частям удобные смысловые названия. При этом разделение проблемы на N смысловых частей реализуется путем разбиения алгоритма на N веток.

КАК РАБОТАЕТ ВЕТКА?

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

Выходом из ветки служит икона “адрес”, в которой записывается имя следующей по порядку исполнения ветки. Икона “адрес” - это замаскированный оператор перехода (gоtо), однако он передает управление не куда угодно, а только на начало выбранной ветки. Вход в ветку возможен только через ее начало. Выход из последней ветки осуществляется через икону “конец”.

КАК СЛЕДУЕТ РАСПОЛАГАТЬ ВЕТКИ В ПОЛЕ ЧЕРТЕЖА?

Ветки упорядочены двояко: логически и пространственно. Логическая последовательность исполнения веток определяется метками, записанными в иконах “адрес”. Однако логический порядок - это еще не все. На рис. 5 показаны три разных способа пространственного расположения веток, которые имеют один и тот же логический порядок. Чтобы устранить пространственную неоднозначность и облегчить понимание смысла дракон-схемы, вводится правило “чем правее - тем позже”. Оно означает: ветка, нарисованная правее, работает позже всех веток, находящихся левее.

Алгоритм, нарисованный согласно правилу “чем правее - тем позже”, считается хорошим, эргономичным (рис. 5в). Схемы, где это правило нарушается, объявляются плохими (рис. 5а,б), их использование запрещено.

В разрешенных (эргономичных) алгоритмах имеет место следующий порядок работы (рис. 3, 4, 5в, 6а):

  • первой работает крайняя левая ветка, последней - крайняя правая;
  • остальные ветки передают управление друг другу слева направо (при этом может случиться так, что некоторые ветки будут пропущены);
  • иногда образуется так называемый “веточный цикл”. Это происходит, когда в иконе “адрес” указано имя собственной или одной из левых веток. На рис. 4 и 6а веточный цикл помечен черными треугольниками.

ЧТО ТАКОЕ ШАПКА?

С точки зрения читателя, любой незнакомый или забытый нетривиальный алгоритм - чрезвычайно сложная проблема, которую он отчаянно пытается понять, преодолевая мощное “сопротивление материала”. Чтобы упростить дело и облегчить задачу понимания, нужно, чтобы читатель “прозрел” и, расчленив проблему на части, увидел ее смысловую структуру в терминах предметной области. Причем увидел не в фигуральном смысле слова, не с помощью воображения, не духовным оком, а своими двумя глазами - на бумаге или экране.

Но как это сделать? Трудность в том, что ни один из существующих языков не предоставляет читателю, изучающему сложную программу или технологию, эффективной помощи, позволяющей моментально (за несколько секунд) уяснить ее структуру, т. е. деление на смысловые блоки. В языке ДРАКОН имеются специальные средства, обеспечивающие решение задачи.

Шапкой называется верхняя часть дракон-схемы (рис. 4), которая включает заголовок алгоритма и комплект икон “имя ветки”. Назначение шапки - помочь читателю мгновенно (не более чем за несколько секунд) сориентироваться в проблеме и получить мощную подсказку - ответ на три наиболее важных вопроса:

  1. как называется проблема?
  2. из скольких частей она состоит?
  3. как называется каждая часть?

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

Вот ответы для рис. 4.

  • Как называется проблема? Рыбная ловля.
  • Из скольких частей состоит проблема? Из четырех.
  • Как называется каждая часть? 1. Подготовка к ловле. 2. Ожидание клева. 3. Рыбацкая работа. 4. Обратная дорога.

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

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

ЧТО ЛУЧШЕ: ПРИМИТИВ ИЛИ СИЛУЭТ?

Дракон-схема с ветками называется силуэтом , без веток - примитивом. Силуэт, представленный на рис. 6а, можно изобразить в виде примитива (рис. 6б). Примитив есть последовательное соединение иконы “заголовок” шампур-блоков и иконы “конец”. У примитива иконы “заголовок” и “конец” обязательно лежат на одной вертикали, которая называется шампуром. На этой же линии лежат главные вертикали шампур-блоков. Образно говоря, шампур пронизывает иконы примитива (возможно, не все) подобно тому, как настоящий шампур пронизывает кусочки шашлыка.

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

Например, алгоритм на рис. 6б выглядит громоздким и неоправданно сложным для восприятия. Это вызвано тем, что он содержит 19 икон, однако изображен в виде примитива. Криминал в том, что схема на рис. 6б не позволяет читателю мгновенно (за несколько секунд) распознать визуально-смысловую структуру алгоритма. В самом деле, из скольких частей состоит решаемая проблема? Глядя на рис. 6б, ответить на этот вопрос довольно трудно, а быстро ответить - невозможно. Положение в корне меняется, когда мы смотрим на рис. 6а, где тот же самый алгоритм изображен в виде силуэта. Тут, как говорится, и ежу ясно: алгоритм состоит из четырех частей: “поиск автобуса”, “ожидание посадки”, “посадка в автобус”, “поездка”. Однако это не все: не менее важно и то обстоятельство, что запутанность зрительного рисунка исчезла и схема приобрела новое эстетическое (эргономическое) качество: элегантность, ясность и прозрачность.

Таким образом, в сложных случаях силуэт позволяет существенно уменьшить интеллектуальные усилия, затрачиваемые на понимание алгоритма. В силуэте крупные структурные части программы (ветки) четко выделены, они пространственно разнесены в поле чертежа, образуя вместе с тем легко узнаваемый, стабильный, предсказуемый и целостный зрительный образ. А в примитиве структурные части не выделены и перемешаны (“всё в одной куче”), что затрудняет чтение и анализ сложных алгоритмов. Однако для простых случаев (менее 5...15 икон) примитив, как правило, оказывается более предпочтительным.

КАК ОПИСАТЬ СИЛУЭТ С ПОМОЩЬЮ ТЕКСТОВОГО ЯЗЫКА?

Из рис. 7 видно, что для описания веток в текстовый язык пришлось внести ряд изменений. В частности, появились два новых текстовых оператора, отсутствующие в традиционных языках:

ВЕТКА < идентификатор ветки >

АДРЕС < идентификатор ветки >

Оператор текстового языка ВЕТКА объявляет название ветки (записываемое на визуальном языке внутри иконы “имя ветки”). Оператор АДРЕС безусловно передает управление на текстовый оператор ВЕТКА, имя которой записано справа от оператора АДРЕС.

Рассмотрим задачу. В запутанном лабиринте, соединяющем начало и конец сложного алгоритма, нужно выделить один-единственный маршрут - “путеводную нить”, с которой можно зрительно сравнивать все прочие маршруты, чтобы легко сориентироваться в проблеме и не заблудиться в путанице развилок. Эта путеводная нить (назовем ее “главный маршрут”) должна быть визуально легко различимой. Иными словами, бросив беглый взгляд на дракон-схему, мы должны обнаружить четкие ориентиры, благодаря которым можно сразу и безошибочно увидеть “царский” маршрут и упорядоченные относительно него остальные маршруты.

Для этого вводится правило: “главный маршрут примитива должен идти по шампуру”. Меняя местами слова “да” и “нет” в развилках и варианты в переключателях (а также присоединенные к ним гирлянды икон), следует добиться, чтобы на царском пути оказался тот выход развилки или переключателя, который ведет к наибольшему успеху (рис. 8). А побочные маршруты нужно расположить по правилу: “чем правее - тем хуже” (рис. 9). Если эти правила нарушены, дракон-схема считается плохой (рис. 10а). Однако ее всегда можно превратить в хорошую (рис. 10б).

В тех случаях, когда признак “лучше-хуже” не работает, вместо него следует выбрать какой-либо другой разумный критерий, чтобы смещение вправо от главного маршрута всегда было не произвольным и хаотичным, а продуманным и упорядоченным. Например, при решении математических задач выходы развилки и варианты переключателя можно расположить слева направо в порядке увеличения или уменьшения математической величины (характеристики), соответствующей этим выходам (рис. 11, 12).

ГЛАВНЫЙ МАРШРУТ СИЛУЭТА

В предыдущем параграфе мы узнали, как упорядочить маршруты примитива. Теперь настала очередь силуэта.

Шампуром ветки называется вертикаль, соединяющая икону “имя ветки” с иконой “адрес”, а если у ветки несколько выходов - с левым из них. Для ветки сохраняют силу оба “царских” правила:

  • главный маршрут ветки должен идти по шампуру;
  • побочные маршруты ветки следует упорядочить слева направо по какому-либо критерию.

Предположим, в качестве критерия выбран принцип “чем правее - тем хуже”. В этом случае каждая ветка силуэта должна быть построена по единому правилу: чем правее (чем дальше от шампура данной ветки) расположена очередная вертикаль, тем менее успешные действия она выполняет.

Например, на рис. 6а ветка “посадка в автобус” имеет три вертикали. Левая вертикаль (главный маршрут) описывает наибольший успех, так как вы будете ехать в автобусе сидя. Правая вертикаль означает наименьший успех, поскольку вы вышли из автобуса и поездка откладывается. Средняя вертикаль (расположенная выше иконы “Есть желание ехать стоя?”) занимает промежуточное положение, потому что - в зависимости от ответа - может иметь место либо частичный успех (вы будете ехать, но не сидя, а стоя), либо неудача, поскольку вы выходите из автобуса несолоно хлебавши.

Главный маршрут силуэта - последовательное соединение главных маршрутов поочередно работающих веток. Таким образом, ДРАКОН позволяет читателю моментально увидеть главный маршрут любого, сколь угодно сложного и разветвленного алгоритма и, сверх того, делает смещение всех побочных маршрутов относительно “царского” не случайным, а осмысленным и предсказуемым, т. е. легким для восприятия.

ПЕРЕСЕЧЕНИЯ ЛИНИЙ? - БОЖЕ УПАСИ!

Некоторые специалисты, склонные к резким выражениям, называют традиционные блок-схемы алгоритмов “помоечными блок-схемами”, потому что изображенные на них хитросплетения блоков, соединенные хаосом куда угодно гуляющих рваных линий больше напоминают кучу мусора, нежели регулярную структуру. ДРАКОН выгодно отличается тем, что его графический узор имеет строгое математическое и когнитивно-эргономическое обоснование и подчиняется жестким и тщательно продуманным правилам. Среди них особое место занимает правило: “пересечения и обрывы соединительных линий запрещены”.

При вычерчивании обычных блок-схем допускаются два типа пересечения линий: явное, изображенное крестом линий, и замаскированное, выполняемое с помощью так называемых соединителей. Как известно, соединитель “используется для обрыва линии и продолжения ее в другом месте... для избежания излишних пересечений”.

В языке ДРАКОН все перечисленные ухищрения (пересечения, обрывы, соединители) по эргономическим соображениям считаются вредными и категорически запрещены, так как они засоряют поле чертежа ненужными деталями, создают визуальные помехи для глаз и отвлекают внимание от главного.

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

Теорема 1. Любая структурная программа может быть изображена на языке ДРАКОН двумя способами: в виде примитива и в виде силуэта.

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

Чтобы прояснить вопрос, обратимся к примерам. На рис. 13а приведена запрещенная дракон-схема: примитив, в котором имеется неустранимое (без введения дополнительных переменных) пересечение. На рис. 13б изображен силуэт, который, как нетрудно убедиться, эквивалентен примитиву на рис. 13а и вместе с тем не содержит ни одного пересечения. Таким образом, пример на рис. 13 подтверждает справедливость теоремы 2 1 .

ВИЗУАЛЬНЫЙ И ТЕКСТОВЫЙ СИНТАКСИС ДРАКОНА

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

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

СЕМЕЙСТВО ДРАКОН-ЯЗЫКОВ

ДРАКОН - не один язык, а целое семейство, все языки которого имеют одинаковый визуальный синтаксис (что зрительно делает языки семейства почти близнецами) и отличаются текстовым синтаксисом.

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

ДРАКОН-2 - язык визуального программирования реального времени. Он является элементом CASE -технологии для разработки программного обеспечения систем управления ракет и космических объектов, а также атомных электростанций, нефтехимических и металлургических заводов, биотехнологических производств и т. д.

Кроме того, семейство включает гибридные визуальные языки программирования: ДРАКОН-БЕЙСИК, ДРАКОН-ПАСКАЛЬ, ДРАКОН-СИ и т. д. Чтобы получить гибридный язык, например, ДРАКОН-СИ, необ-ходимо взять визуальный синтаксис ДРАКОНА и присоединить к нему по определенным правилам текстовый синтаксис языка СИ.

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

В настоящей книге основное внимание уделяется визуальному псевдоязыку ДРАКОН-1. Что касается остальных языков ДРАКОН-семейства, даются лишь краткие пояснения.

ВЫВОДЫ

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

  1. Сложный алгоритм следует рисовать в виде силуэта, простой - в виде примитива.
  2. В иконе “заголовок” запрещается писать слово “начало”; вместо этого следует указать понятное и точное название алгоритма.
  3. Разбейте сложный алгоритм на части, каждую часть изобразите в виде ветки. Дайте частям доходчивые и четкие названия и запишите их в иконах “имя ветки”.
  4. Вход в ветку возможен только через ее начало.
  5. В иконе “адрес” разрешается писать имя одной из веток, другие надписи запрещены.
  6. Ветки следует располагать в пространстве согласно правилу: чем правее, тем позже. Наличие веточного цикла модифицирует это правило.
  7. Примитив обязательно имеет шампур. Это значит, что у примитива иконы “заголовок” и “конец” всегда лежат на одной вертикали, которая и называется “шампур”.
  8. Каждая ветка обязательно имеет шампур. У правой ветки шампур - это вертикаль, соединяющая иконы “имя ветки” и “конец”. У остальных веток шампуром служит вертикальная линия, соединяющая иконы “имя ветки” и “адрес”, а если адресов несколько - с левым из них.
  9. Алгоритм всегда имеет главный маршрут, который должен идти по шампуру.
  10. Побочные маршруты должны быть упорядочены слева направо согласно одному из выбранных критериев, например: чем правее - тем хуже.
  11. В иконе “конец” следует писать слово “конец”.
  12. Соединительные линии могут идти либо горизонтально, либо вертикально. Наклонные линии не допускаются.
  13. Пересечения линий запрещены.
  14. Обрывы линий запрещены.
  15. Использование соединителей запрещено.

История создания языка "ДРАКОН"

Язык ДРАКОН был создан прежде всего как инструмент, обеспечивающий безукоризненное взаимопонимание между людьми. Он возник в результате обобщения опыта, накопленного при проектировании космического корабля «Буран».

Графический язык ДРАКОН специально сконструирован, чтобы превратить сложный алгоритм в простую картинку(дракон-схему), обеспечивающую быстрое и легкое понимание по принципу «Взглянул - и сразу понял»! Часть 1. ДРАКОН родился в космической колыбели
Часть 2. Язык ДРАКОН открывает калитку в царство понятных алгоритмов
Часть 3. Путь к мудрости. Язык ДРАКОН и фундаментальные проблемы цивилизации

Часть 1. Язык «ДРАКОН» родился в космической колыбели, но очень скоро вырос из «коротких космических штанишек»


`` Слайд 1. Графический язык ДРАКОН специально сконструирован, чтобы превратить сложный алгоритм в простую картинку(дракон-схему), обеспечивающую быстрое и легкое понимание по принципу «Взглянул - и сразу понял»! ’’

Николай Пилюгин и его детище.

Истоки «дракона»

Язык ДРАКОН разработан совместными усилиями Российского космического агентства (Научно-производственный центр автоматики и приборостроения имени академика Н.А. Пилюгина, г. Москва) и Российской академии наук (Институт прикладной математики имени академика М.В. Келдыша, г. Москва).

Академик Николай Пилюгин (1908-1982) - основоположник автономных (полностью автоматических) систем управления ракетно-космических систем. Будучи одним из пионеров космонавтики, он создал первый в нашей стране институт, в котором разрабатывались автономные системы управления для ракет-носителей, разгонных блоков и других космических объектов.

В один из юбилеев шефа прозвучали посвященные ему строки:

Ракета - она как слепая коза!

Чтоб был в ней и смысл, и лоск,

Ракете нужно иметь глаза

И самое главное - мозг!

И вы среди вечных забот и шума,

Как первенца учит мать,

Учили ракеты смотреть и думать,

А это значит - летать!

Запуск первого спутника в 1957 году потряс весь мир и застал американцев врасплох. Полет Юрия Гагарина в 1961 году стал триумфом советской науки. Воплотились в жизнь и стали явью фантастические проекты национального героя СССР - легендарного конструктора Сергея Королева. Интеллектуальную поддержку его дерзких проектов обеспечивала «нервная система» ракеты - бортовая система управления, созданная Николаем Пилюгиным.

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

Вскоре обнаружилось неожиданное препятствие - в дело вмешался человеческий фактор.Чем больше усложнялись космические системы, тем сильнее была нужда в безупречном взаимопонимании между разработчиками. Отсутствие взаимопонимания болезненно сказывалось на ходе крупных ракетных проектов. Особенно остро проблема взаимопонимания проявила себя при создании космического комплекса «Энергия–Буран».

Забегая вперед, скажем, что язык ДРАКОН был создан прежде всего как инструмент, обеспечивающий безукоризненное взаимопонимание между людьми. Он возник в результате обобщения опыта, накопленного при проектировании космического корабля «Буран».

` Слайд 2. Американский Спейс Шаттл и советский Буран - сверхсложные космические проекты. Они стимулировали творческий поиск во многих областях науки и высоких технологий, в частности, в области создания новых алгоритмических языков. В нашей стране конечным результатом этих усилий стал язык ДРАКОН, который очень скоро вырос из «коротких космических штанишек». Сегодня ДРАКОН - мощное средство для улучшения работы ума, пригодное для описания структуры человеческой деятельности и алгоритмов. ’’

Что такое интеллектуальное

взаимопонимание?

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

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

Логично спросить: в чем причина неприятностей? Не слишком ли большие ресурсы (людские, материальные, финансовые и временные) приходится затрачивать для обеспечения эффективного взаимодействия специалистов, участвующих в совместной работе? Почему крупные исследования и разработки нередко затягиваются на месяцы, а то и на годы?

С такими или примерно такими проблемами столкнулись разработчики орбитального корабля Буран. Опыт Бурана показывает, что вопрос об интеллектуальном взаимопонимании специалистов зачастую играет ключевую, основополагающую роль и во многом определяет успех дела. При создании сложнейшего комплекса бортовых и наземных программ Бурана приходится расплетать хитроумный клубок донельзя запутанных проблем. Поэтому в бой вступает целая армия специалистов разных профессий из множества разных организаций. На начальном этапе работ эти люди очень плохо понимают друг друга. Это именно тот случай, когда запредельная сложность проблемы и связанная с нею узкая специализация приводят к смешному, но, увы, реальному парадоксу, когда «специалисты по клизме» не понимают «специалистов по наконечнику».

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

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


`` Слайд 3. Понимание следует рассматривать как труд. Необходимо кардинально увеличить производительность этого труда (возможно, на порядок). Именно эту задачу решает «ДРАКОН». ’’

С чего началась история «дракона»?

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

По его инициативе - совместно с Институтом прикладной математики Академии наук СССР - были созданы три языка: ПРОЛ2 (для разработки бортовых комплексных программ Бурана), ДИПОЛЬ (для создания наземных программ Бурана) и ЛАКС (для моделирования). Работу вели три коллектива программистов под руководством Виктора Крюкова, Владимира Луциковича и Константина Федорова. Это была, так сказать, предыстория ДРАКОНА.

Хотя языки успешно решали поставленные задачи, стало ясно, что узкая специализация языков мешает делу. В связи с этим в 1986 году Юрий Трунов вызвал к себе начальника лаборатории комплексной разработки вычислительной системы Бурана Владимира Паронджанова и поручил ему создать универсальный язык, способный заменить три вышеназванных.

Гуманитарные требования к языку «Дракон»

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

В связи с этим при создании языка ДРАКОН были выдвинуты необычные для программистов, математиков и «технарей» гуманитарные требования.

1. Улучшить работу человеческого ума.

2. Предложить эффективные средства для описания структуры человеческой деятельности.

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

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

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

6. Добиться кардинального улучшения качества программного обеспечения по критерию «понимаемость алгоритмов и программ».

`` Слайд 4. Многие программисты жалуются, что свою собственную программу они с трудом понимают через полгода, а то и через месяц. А если речь идет о чужой программе? Тогда становится совсем тяжко. Нередко бывает легче написать свою программу, нежели разобраться в том, что делает чужая. Поэтому среди требований, предъявляемых к современным алгоритмическим языкам, на первое место все чаще выходит удобопонимаемость программ (comprehensibility) . Последняя определяется как свойство программы минимизировать интеллектуальные усилия, необходимые для ее понимания. Язык ДРАКОН призван обеспечить максимально возможную понимаемость алгоритмов и программ. По мнению разработчиков, он может стать «чемпионом мира» среди алгоритмических языков по этому критерию. ’’

Научные основы языка «Дракон»

ДРАКОН имеет принципиально новый научный фундамент. Он опирается на «вывернутую наизнанку» классическую теорему Ашкрофта-Манны. Владимир Паронджанов доказал, что графический синтаксис языка ДРАКОН представляет собой графическое логическое исчисление («исчисление икон»).

Однако главное не в этом. Любой язык имеет ту или иную математическую изюминку. Математическая строгость - это обязательное требование для проектировщиков языка. Так что математикой нынче никого не удивишь.

Принципиальная особенность ДРАКОНА, отличающая его от всех известных языков, состоит в том, что он имеет не только математический, но и надежный когнитивно-эргономический фундамент. Заслуга Паронджанова в том, что он впервые показал:

Для создания хорошего языка одной математики мало;

Надо добавить к ней идеи когнитивной эргономики;

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

Опираясь на эти соображения, Паронджанов предложил положить в основу языка ДРАКОН методы когнитивно-эргономической формализации профессиональных знаний.

`` Слайд 5. Понимание алгоритмов и сложных трудовых процессов можно значительно облегчить, если использовать для их описания язык ДРАКОН. Эргономика – наука о человеческих факторах. Когнитивная эргономика помогает создать принципиально новые визуальные формы представления профессиональных знаний, создающие максимальный интеллектуальный комфорт для работы глаза и мозга. ’’

Слайд 6. Язык ДРАКОН обеспечивает исключительную ясность и беспрецедентную наглядность алгоритмов. В этих условиях вероятность скрытых алгоритмических ошибок и вызванных ими неприятностей и аварий уменьшается во много раз. Образно говоря, затаившаяся в алгоритме ошибка как бы выпрыгивает из алгоритмического чертежа (дракон-схемы), бьет разработчика кулаком в нос и громовым голосом кричит: «Заметь меня!».

Кто разработал системное программное обеспечение «дракона»?

Развивая идеи Виктора Крюкова и Владимира Луциковича (Институт прикладной математики), сотрудники Пилюгинского центра приступили к разработке трансляторов и других системных программ ДРАКОНА. Работа велась в отделе Константина Федорова. Наибольший творческий вклад внес начальник лаборатории системного программирования Владислав Балтрушайтис, а также Сергей Кашинский, Александр Семенов и другие.

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

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

`` Слайд 7. Язык Дракон универсален и может использоваться в любых областях человеческой деятельности, например, в медицине. На слайде представлен медицинский алгоритм «Первая помощь при химическом ожоге глаза жидкостью», написанный на языке ДРАКОН. Этот алгоритм интересен тем, что не требует трансляции. Перед нами инструкция для семейного врача (врача общей практики), который должен оказать первую помощь при химическом ожоге глаза. Говорить о трансляции в данном случае бессмысленно. До сих пор программисты и математики игнорировали подобные инструкции - это, дескать, не алгоритмы. С точки зрения философии языка ДРАКОН, дело обстоит иначе. Подобные инструкции целесообразно рассматривать как неклассические алгоритмы (которые нуждаются в эргономичной формализации). Принципиальная новизна ДРАКОНА заключается в том, что он предоставляет стандартные изобразительные средства как для классических алгоритмов (когда трансляция необходима), так и для неклассических (когда трансляция не нужна). ’’

Раскол в стане разработчиков «дракона»

Между тем напряжение нарастало. Идейные разногласия достигли небывалой остроты и привели к расколу. Группу «диссидентов» возглавили Геннадий Гуленков (Пилюгинский центр) и Леонид Эйсымонт (Институт прикладной математики). Вместе с ними работали начальник сектора Владимир Гора, Людмила Власова, Сергей Щербаков, Лариса Тюрина, Александр Копылов, Виктор Миронов, Александр Русанов, Сергей Шмаков и другие.

В чем суть разногласий? Группа Федорова–Балтрушайтиса защищала упрощенный вариант языка ДРАКОН (который получил название Графит).

«Диссидентская» группа Гуленкова–Эйсымонта (поддержанная одним из руководителей Пилюгинского центра Владимиром Морозовым) отстаивала полноразмерный проект ДРАКОНА. Этот вариант, несомненно, был более перспективным.

Развал СССР подрезал дракону крылья

К сожалению, «диссидентов» постигла катастрофа. Именно в этот момент рухнула одна из величайших держав мира (СССР). Экономика новой России лежала в руинах. После первого блестящего полета Бурана события приняли неожиданный оборот. Накануне полной готовности ко второму полету сверху пришел трагический приказ: «Полет отменить!». Из-за нехватки денег все работы по проекту «Буран-Энергия» были сначала законсервированы, а затем и вовсе прекращены. Навсегда. Навечно.

Финансирование космических разработок в новой России упало почти до нуля. Теснейшее сотрудничество между Пилюгинским центром и Институтом прикладной математики РАН, которое строилось десятилетиями, было почти полностью разрушено. Стоит напомнить, что фирма Пилюгина долгие годы была надежным источником финансирования для Института прикладной математики, получая взамен бесценные интеллектуальные услуги и разработки.

Но теперь этому пришел конец. Денежный кран был перекрыт. Пилюгинский центр стал почти банкротом. Он больше не мог подкармливать Институт математики. В итоге группа программистов Леонида Эйсымонта (ИПМ) осталась без средств к существованию. И была вынуждена прекратить работы по ДРАКОНУ, переключившись на платежеспособных заказчиков.

`` Слайд 8. Прекращение работ по Бурану больно ударило
по разработчикам ДРАКОНА. Ситуация стала критической. ’’

Дракон восстал из пепла, как птица феникс

Впрочем, нет худа без добра. В этот период руководителем комплексного подразделения Пилюгинского центра стал Владимир Морозов. Он назначил начальником отдела программирования энергичного руководителя Германа Косточкина. Работы по созданию программного обеспечения ДРАКОНА стали резко набирать обороты. Оставшись без помощи со стороны Института прикладной математики, Владислав Балтрушайтис и его коллектив решили покорить вершину самостоятельно. Это было невероятно трудно. Но они сделали невозможное.

К 1998 году все работы по системному программированию были завершены. На базе ДРАКОНА была построена автоматизированная технология проектирования программных систем (CASE -технология) под рабочим названием «Графит-Флокс». ДРАКОН-технология включает обширный комплекс программных средств: процедурный редактор, декларативный редактор, базу данных, транслятор, анализатор, кодогенератор и т.д.

`` Слайд 9. Алгоритм «Первая помощь при химическом ожоге глаза жидкостью» состоит из трех веток. Ветка - наиболее крупная алгоритмическая конструкция языка ДРАКОН. Она не имеет аналогов в других языках. Ветка обеспечивает очень удобную и наглядную структуризацию алгоритма.

(Мы продолжаем рассматривать медицинский алгоритм, чтобы продемонстрировать способность ДРАКОНА описывать алгоритмы и процедурные профессиональные знания в любых областях профессиональной деятельности, а не только в космонавтике).





Боевое крещение дракона

Разработка ДРАКОНА продолжалась около пятнадцати лет. Отдельные элементы дракон-технологии использовались уже на Буране. Но это был, в основном, «бумажный» ДРАКОН. Алгоритмы составлялись на бумаге в виде дракон-схем, а программирование велось на языках ПРОЛ2, ДИПОЛЬ и ЛАКС.

Впервые автоматическая дракон-технология была опробована при разработке программного обеспечения автономных и комплексных испытаний международного космического проекта «Морской старт» (Sea Launch).

В проекте участвовали США, Норвегия, Россия и Украина. Пуски ракет производились с плавучей стартовой платформы, размещенной на экваторе в западной части Тихого океана в районе островов Кирибати. Управление пуском осуществлялось с находящегося поблизости сборочно-командного судна. Для каждого пуска стартовая платформа и сборочно-командное судно совершали морской рейс с базы, расположенной на западном побережье США, к островам Кирибати, а затем возвращались обратно.

Результаты применения дракон-технологии оказались блестящими. Они превзошли все ожидания.

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

`` Слайд 13. Графический алфавит языка ДРАКОН. Он содержит всего двадцать три графоэлемента (23 иконы). Однако этого количества вполне достаточно, чтобы отобразить в виде наглядного чертежа процедурные профессиональные знания и алгоритмы, относящиеся к любой области профессиональной деятельности. ’’

В ЧЕМ изюминка ДРАКОНА?

Недостаток традиционного подхода состоит в том, что создатели языков и компьютерных систем нередко приступают к работе не с того конца и ставят телегу впереди лошади. Как подчеркивает психолог Дональд Норман, они «слишком часто начинают с машины, а о человеке думают только в конце, когда уже поздно».

Чтобы избежать подобных ошибок, в ходе разработки языка ДРАКОН был выбран совершенно иной подход. Была объявлена стратегическая цель: создать наиболее комфортные условия для работы человеческого интеллекта, обеспечить наилучшие воз можности для повышения эффективности коллективного разума специа листов.

В соответствии с этой программной установкой была поставлена задача: создать общедоступный, предельно легкий в изучении и удобный в работе язык, позволяющий решать алгоритмические проблемы ценою минималь ных интеллектуальных усилий. Язык, который в силу своей изначаль ной ориентации на человека мог бы стать подлинно «народным», т. е. «родным» для специалистов практически любого профиля (а не только программистов).

Благодаря этому ДРАКОН способен играть роль «языка эсперанто для делового мира». Взаимопонимание профессионалов можно значительно улучшить, если представители разных специальностей будут отображать свои процедурные знания на языке ДРАКОН.

программирование без программистов

ДРАКОН - очень легкий язык. Настолько легкий, что разработку многих компьютерных программ для космических ракет на практике ведут не программисты, а обычные специалисты (комплексники). Они действуют по принципу «программирование без программистов».

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

Это позволяет значительно сократить издержки, улучшить показатель «затраты-результат», ускорить ход работ. И полностью избавиться от ошибок «испорченного телефона», вызванных взаимным непониманием между ПРОГРАММИСТАМИ и СПЕЦИАЛИСТАМИ.

`` Слайд 14. Фигуру человека мы воспринимаем симультанно, т.е. одномоментно, целиком и очень быстро. В нашем мозгу есть нейронные механизмы, обеспечивающие такое восприятие. Эти же механизмы используются при восприятии дракон-схем. ’’

`` Слайд 15. Дракон-схема отчасти похожа на фигуру человека. У нее тоже сверху - шапка, а снизу - «ботинки». Разница лишь в том, что «ботинки» имеют другое название - «адреса» ’’

`` Слайд 16. Шапка дракон-схемы - чрезвычайно эффективный инструмент, обеспечивающий структуризацию дракон-схемы и разбиение алгоритма на смысловые части - ветки. Эргономическая хитрость состоит в том, что шапка, угадывая тайное желание читателя, дает ему мощную подсказку - ответ на все «царские» вопросы. Вот ответы для медицинского алгоритма. ’’

Как называется задача? (Читаем заголовок алгоритма). Первая помощь при химическом ожоге глаза жидкостью.

Из скольких частей она состоит? (Считаем иконы «Имя ветки»). Из трех.

Как называется каждая часть? (Читаем текст в иконах «Имя ветки»). 1. Промывание глаза водой. 2. Промывание глаза нейтрализатором. 3. Лекарственная обработка.

Дополнительные эргономические удобства связаны с тем, что шапка занимает «парадное» место в верхней части чертежа, а названия смысловых частей помещены внутри особых рамок уникальной формы, которые легко отыскать взглядом. Благодаря этому шапка моментально приковывает к себе внимание читателя без всяких усилий с его стороны. Это очень важно, так как читателю не приходится рыскать глазами по темным закоулкам алгоритма, пытаясь выудить нужную информацию.

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

Дракон полностью изменил взаимодействие Разработчиков-комплексников и программистов

Раньше работа была организована так. Комплексник выдавал в отдел программирования бумажный документ - исходные данные на разработку программ и согласовывал его с программистом. Затем программист на основании этого документа разрабатывал программу.

На комплексном стенде обычно выяснялось, что программа работает неправильно. Кто же допустил ошибку: комплексник или программист? Чтобы выяснить это, обращаются к документу - исходным данным на разработку программы. Тут-то и возникает немая сцена. Выясняется, что в документе про это ничего не сказано. Или написано настолько коряво и двусмысленно, что понять можно и так и эдак.

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

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

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

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

Благодаря ДРАКОНУ комплексник получил драгоценную возможность ценой минимальных усилий самостоятельно разработать и во всех деталях проанализировать свой алгоритм, то есть осуществить формализацию своих профессиональных знаний.

Таким образом, при использовании ДРАКОНА реализуется мудрый принцип: кто обладает знаниями, тот и должен их формализовать . Знаниями о физике и порядке работы ракетного комплекса обладает специалист-комплексник, а никак не программист. Поэтому комплексник и должен свои знания формализовать. В этом случае бесконечная игра в «испорченный телефон» между комплексником и программистом полностью исключается.

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

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

От «паскаля» к «дракону»

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

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

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

Сегодня эта роль переходит к графическому языку ДРАКОН. Именно ДРАКОН становится самым легким и логически стройным языком, с которого надо начинать изучение алгоритмизации и программирования.

Язык «дракон» и система образования

Уже говорилось, что практическая полезность ДРАКОНА получила высокую оценку. Министерство образования включило изучение языка ДРАКОН в программу курса информатики высшей школы (см.: «Примерная программа дисциплины “Информатика”. Издание официальное. - М.: Госкомвуз, 1996».

Ведется подготовка учебных книг для средней и высшей школы. Уже издана первая из них - игровое учебное пособие для детей младшего и среднего школьного возраста: см. « В.Д. Паронджанов. Занимательная информатика: Волшебный Дракон в гостях у Мурзика. - М.: Росмэн, 1998, 2000. 160с. 200 иллюстраций».

`` Слайд 18. В языке ДРАКОН используются два очень удобных, но необычных понятия. Шампур - вертикальная линия, соединяющая начало и конец алгоритма (или ветки). Главный маршрут - путь от начала до конца алгоритма, ведущий к наибольшему успеху. ’’

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

`` Слайд 19. С логической точки зрения оба алгоритма эквивалентны. Но с эргономической точки зрения левая схема лучше, так как главный маршрут не имеет изломов. ’’

`` Слайд 20. Дракон-схема упорядочена слева направо
согласно принципу: «Чем правее, тем хуже». ’’

Слайд 21. Графическая математическая формула, обосновывающая операцию «Рокировка». Она служит математическим обоснованием для двух изложенных выше правил: ’’

Главный маршрут должен идти по шампуру (см. слайд 19, слева).

Побочные маршруты рисуют справа от главного по принципу: «Чем правее, тем хуже» (см. слайд 20).

Часть 2

Язык « ДРАКОН» ОТКРЫВАЕТ КАЛИТКУ в ЦАРСТВО ПОНЯТНЫХ АЛГОРИТМОВ

критерий сверхвысокого понимания

Главным требованием к языку ДРАКОН является улучшение взаимопонимания между людьми, облегчение сложного умственного труда, улучшение понимаемости алгоритмов. Для обозначения данного требования вводится понятие «критерий сверхвысокого понимания».

Считается, что язык удовлетворяет этому критерию, если написанные на нем планы, алгоритмы и процессы обладают наивысшим когнитивно-эргономическим качеством.

эргономичные алгоритмы

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

Чтобы создать подобную легкость, нужны новые, скажем прямо, непривычные для математиков, но понятные «для народа» правила записи алгоритмов.

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

Эпоха понятных алгоритмов

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

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

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

`` Слайд 23. Две равносильные логические формулы. Слева - традиционная текстовая формула (схема «ИЛИ»), понятная узкому кругу математиков и программистов. ’’

Справа - «демократическая» графическая формула (графическая схема «ИЛИ»), записанная на языке ДРАКОН. Она понятна значительно более широкому кругу работников. Как показывает практика, правая формула доступна даже тем людям, которые испытывают огромные затруднения при работе со сложной левой формулой.

Следует подчеркнуть: ДРАКОН не запрещает работать с левой формулой. Но тем, для кого она трудна, он предлагает более гуманный и легкий вариант.

`` Слайд 24. Две равносильные логические формулы. Слева - традиционная формула (схема «И»), понятная далеко не всем. ’

Формула справа (графическая схема «И»), написанная на языке ДРАКОН, намного легче для понимания. Она становится еще более наглядной, если заменить абстрактные буквы A , B , C , F на конкретные производственные понятия. Например:

А = норма подачи топлива С = норма электропитания;

В = норма зажигания F = включить двигатель.

Часть 3

Путь к мудрости

Язык ДРАКОН и фундаментальные проблемы цивилизации

что нас ждет в будущем?

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

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

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

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

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

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

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

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

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

Что важнее: компьютер или человеческий мозг?

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

Однако почивать на лаврах рано. Стало ясно, что этого совершенно недостаточно. Почему?

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

важнейшая характеристика цивилизации?

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

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

На пороге новой интеллектуальной революции

Чтобы заострить проблему, зададим вопрос. Как работает мозг людей после автоматизации, т.е. после передачи компьютерам ряда интеллектуальных задач? Удалось ли создать наилучшие условия для работы ума? Если нет, как добиться, чтобы продуктивность мозга стала максимальной?

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

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

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

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

Язык ДРАКОН - первый научно-обоснованный шаг в этом направлении. Можно сказать и по-другому. ДРАКОН - это первая ласточка, которая показывает правильный - когнитивно-эргономический - путь к повышению творческой продуктивности мозга. (Более подробную аргументацию на эту тему можно найти в монографии «В.Д. Паронджанов. Как улучшить работу ума: Алгоритмы без программистов - это очень просто! М.: Дело, 2001. 360с.»).

Интеллектуальная история человечества и суперязыки

Интеллектуальная история человечества неразрывно связана с совершенствованием языка. В истории языка можно выделить четыре частично перекрывающиеся этапа:

Звуковые (устные) языки дописьменной эпохи;

Письменные языки (клинопись, иероглифы, алфавитное письмо);

Искусственные языки (чертежи, графики, химические и математические формулы, логико-математические исчисления, языки программирования);

Эргономичные суперязыки.

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

Изобретение письменных языков символизировало второй гигантский скачок в эволюции интеллекта. Данное событие можно охарактеризовать как превращение дикаря в человека. Письменность дала людям власть над информацией. Рождение письма - это начало писаной истории, зачатие цивилизации.

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

Вспомним слова Николая Лобачевского:

«Чему одолжены своими блестящими успехами науки - слава нынешних времен, торжество ума человеческого? Без сомнения, искусственному языку своему!».

Мы подошли к самому интересному месту. В наши дни прирост интеллектуального могущества человечества во многом осуществляется за счет создания и использования самых разнообразных искусственных языков. Однако на этом пути возникает неожиданная трудность. Она заключается в эргономическом несовершенстве существующих языков. Они слишком трудны. Трудны для человеческого восприятия. Нынешние языки доступны лишь немногим избранным и непригодны для массового использования. Это обстоятельство серьезно сдерживает дальнейший рост интеллектуальных возможностей людей.

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

Рассмотрим одну из важнейших интеллектуальных проблем - проблему программирования. Вспомним слова академика Андрея Ершова:

«Человек неизмеримо усилит свой интеллект, если сделает частью своей натуры способность планировать свои действия … одним словом, сделается программистом».

Прав ли уважаемый академик? Нет сомнения: умение хорошо программировать значительно расширяет умственные возможности специалистов, позволяя оптимизировать работу ума и использовать компьютер на порядок эффективнее. Однако здесь есть одно «но». На практике предложенный Ершовым путь улучшения интеллекта - увы! - не работает. Он просто-напросто закрыт для подавляющего большинства желающих. Почему?

Неприятность в том, что все без исключения известные языки программирования слишком сложны и недоступны «для народа». Они предназначены для узкой касты знатоков и больше ни для кого. Интеллектуальные трудозатраты на освоение программирования недопустимо велики.

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

Наряду с классом языков программирования и другими искусственными языками (которые, разумеется, должны продолжать функционировать в культуре) необходимо создать класс принципиально новых языков, для обозначения которых предлагается термин «суперязыки интеллектуального общения» (для краткости - суперязыки).

дракон - первый в истории суперязык

(и не последний)

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

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

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

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

Язык ДРАКОН можно охарактеризовать как первый в истории эргономичный суперязык, так как он разработан с помощью научно-обоснованных методов эргономического проектирования.

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

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

Заглядывая в будущее, можно, вероятно, предположить, что с появлением суперязыков перед человечеством открывается новый путь познания - путь, ведущий к подлинной мудрости.
(тщательно стыбрено с сайта transhumanism-russia.ru)

Last edited by PBworks 12 years, 2 months ago

ДРУЖЕЛЮБНОЕ ПРОГРАММИРОВАНИЕ

ГИБРИДНЫЙ ЯЗЫК ПРОГРАММИРОВАНИЯ ДРАКОН-СИ

Предположим, нужно построить систему визуального программирования на гибридном языке ДРАКОН-СИ. Задачу можно решить, например, с помощью трех программ: дракон-редактора, дракон-конвертора и компилятора языка СИ. Пользователь с помощью дракон-редактора рисует на экране компьютера программу на языке ДРАКОН-СИ (рис. 90, правая графа). Затем дракон-конвертор преобразует внутреннее представление графических кодов в исходный текст языка СИ (рис. 90, средняя графа), после чего стандартный компилятор СИ превращает исходный текст в объектный код.

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

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

ГИБРИДНЫЙ ЯЗЫК ПРОГРАММИРОВАНИЯ

ДРАКОН-МОДУЛА

Обратимся к верхнему примеру на рис. 91. В средней графе представлена программа на языке МОДУЛА-2, в правой - эквивалентная ей программа на языке ДРАКОН-МОДУЛА. В левой графе приводится список ключевых слов, которые используются в модула-программе и являются “жизненно необходимыми” для языка МОДУЛА, но которые совершенно не нужны в дракон-программе.

С эргономической точки зрения, эти и многие другие ключевые слова, присутствующие в текстовых языках, есть не что иное как визуальные помехи, притягивающие к себе внимание читателя и отвлекающие его внимание от содержательной стороны дела. Эргономическое преимущество ДРАКОНА состоит в том, что вместо ключевых слов используется визуальный образ, который воспринимается читателем бессознательно, на интуитивном уровне, в то время как канал сознательного внимания действует более продуктивно - для восприятия наиболее важных, содержательных аспектов задачи.

ПРИМЕР ЭРГОНОМИЧЕСКОЙ ОПТИМИЗАЦИИ

ПРОГРАММЫ

На рис. 91 (внизу, в средней графе) написана программа на языке ПАСКАЛЬ. Действуя по аналогии с предыдущими примерами, ее можно легко преобразовать в программу на языке ДРАКОН-ПАСКАЛЬ. Для этого нарисуем визуальный оператор “развилка” и в иконе “вопрос” поместим запись

K = 1 OR K = 2

Нижний выход иконы “вопрос” пометим словом “да” и присоединим к нему переключатель с двумя иконами “вариант”, а правый выход (ответ “нет”) подключим к иконе “вывод”, в которой сверху напишем WRITELN, снизу - ОШИБКА. В итоге получим дракон-схему, которая несомненно является совершенно правильным решением поставленной задачи. (Для наглядности советуем читателю выполнить описанные построения на бумаге.)

А теперь изменим условие задачи. Попытаемся создать программу, которая была бы не только эквивалентной паскаль-программе на рис. 91, но и эргономически оптимальной для русскоязычного читателя. Искомая программа, написанная на языке ДРАКОН-2, представлена на том же рисунке внизу справа.

Бросается в глаза структурное различие между программами. Паскаль-программа содержит две конструкции: if-then-else и case-of . Эргономическая оптимизация состоит в том, что в дракон-программе используется всего один визуальный оператор (переключатель с тремя вариантами), который тем не менее “в одиночку” выполняет те же самые функции, что и два текстовых оператора языка ПАСКАЛЬ. В итоге сложное условие K = 1 OR K = 2 и другие излишества паскаль-программы устраняются, а дракон-схема заметно упрощается и становится лаконичной, прозрачной, элегантной.

ДИАЛОГОВЫЕ ПРОГРАММЫ

Продолжим изложение одного из возможных подходов к построению языка программирования ДРАКОН-2. Еще раз напомним: читатель не найдет здесь описания языка. Наша цель гораздо скромнее: показать, что формализация текстового синтаксиса для языка ДРАКОН вполне осуществима, и привести несколько примеров, подтверждающих эту мысль.

Рассмотрим диалоговые программы на рис. 92 и 93, имеющие улучшенные дидактические (педагогические) характеристики. Для этого применяется обширный набор эргономических средств. В частности, при заполнении иконы “комментарий” используется зонирование текста . Текст комментария для облегчения восприятия пространственно делится на две зоны, которые, во-первых, имеют четко очерченные и легко различимые границы, во-вторых, отличаются по цвету фона (белый и серый). В серой зоне помещается текст, появляющийся на экране компьютера, в белой - пояснения к нему. Отграничение экранного текста от пояснений облегчает чтение комментариев и улучшает их понимаемость.

Эргономический прием “зонирование текста” полезно использовать не только в комментариях, но и в других случаях, например в операторах ввода-вывода.

Оператор “Сообщение”

Оператор “Сообщение” служит для вывода информации на экран компьютера. Он содержит икону “вывод”, на верхнем этаже которой помещают ключевое слово “Сообщение”, на нижнем - выводимую информацию. При описании последней применяется зонирование текста: в серой зоне пишут имена переменных или выражения (значения которых следует вывести на экран), в белой зоне - постоянную информацию (которая выводится на экран без изменений). Признаком новой строки служит черный кружок. Например, на рис. 92 с помощью оператора “Сообщение” на экран выводится фраза “Сумма чисел равна” и значение выражения m + n.

Оператор “Запрос”

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

Предположим, нужно ввести значения m = 23 и n = 45 (рис. 92). Делается это, например, так: подводят курсор в зону m, набирают на клавиатуре число 23 и нажимают клавишу “возврат каретки”. При этом зона m на экране гаснет и вместо нее загорается число 23. Значение n вводится аналогично. Таким образом, оператор “Запрос” запрашивает у пользователя значения переменных, записывает их в память и одновременно отображает на экране вместе с постоянной информацией (если последняя указана на нижнем этаже оператора “Запрос” в белой зоне).

Описание данных

Для описания данных служит икона “полка”. На верхнем этаже пишут ключевое слово “Данные”, на нижнем - описание данных. Например, на рис. 92 в иконе “полка” указано, что переменные m и n имеют тип “целый”.

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

ИДЕНТИФИКАТОРЫ

Приведем правила записи идентификаторов.

  • Длина идентификатора 1...32 символа.
  • Разрешается использовать любые русские и латинские буквы, цифры, точку и, возможно, специальные символы.
  • Первый символ должен быть буквой (не цифрой и не точкой).
  • Внутри идентификатора запрещается использовать пробелы.
  • Слова следует разделять точками, чтобы облегчить чтение.
  • Запрещается использовать сокращение слов, если длина идентификатора меньше 32 символов.
  • Если длина идентификатора больше 32 символов, надо заменить некоторые слова сокращениями или уменьшить число слов.
  • Нужно стремиться придумывать доходчивые идентификаторы, позволяющие легко уяснить смысл понятия, чтобы читатель быстро понял суть дела.

Примеры правильных идентификаторов

Номер.вагона.скорого.поезда

Номер.вагона.пассажир.поезда

Цена.билета.поездом.до.Магадана

Цена.билета.самолет.до.Магадана

Примеры неправильных идентификаторов

Пример сокращения длины сложного понятия

Предположим, нужно создать идентификатор для следующего понятия: “Радиус-вектор центра Земли в центре взлетно-посадочной полосы в посадочной системе координат”. Словесное описание понятия содержит 92 символа. Задача состоит в том, чтобы сократить 92-символьное описание до 32-символьного, сохранив по возможности ясный смысл понятия.

Сокращение проведем по следующему плану:

  • “Радиус-вектор центра Земли” заменим на “Радиус.земли”.
  • Вместо “В центре взлетно-посадочной полосы” напишем “на.полосе”.
  • “В посадочной системе координат” заменим на ПСК, поскольку такое сокращение является общеупотребительным в коллективе разработчиков данной системы.

В итоге получим 26-символьный идентификатор

который сохраняет почти все опорные слова исходного понятия и обеспечивает довольно высокую понимаемость.

Правила записи арифметических выражений

в операторах присваивания

Следует различать два случая. Если выражение простое, рекомендуется использовать 32-символьные идентификаторы и “вертикальную” запись математических формул, как показано на рис. 94 и 95.

Однако если речь идет о сложных математических вычислениях, описанный способ не годится, поскольку “вертикальные” формулы с 32-символьными идентификаторами не позволяют читателю увидеть математическую структуру вычислений, отвлекая его внимание на чтение длинных идентификаторов, которые парадоксальным образом превращаются из полезной подсказки в свою противоположность и начинают играть негативную роль визуальной помехи. Таким образом, возникает эргономический тупик: короткие идентификаторы не позволяют быстро уяснить смысл понятий, а длинные - затемняют структуру сложных формул.

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

  • Для каждого математического понятия предусматриваются два идентификатора: длинный (32-символьный) и короткий (алиас).
  • В арифметических выражениях используются только алиасы, что делает структуру формул прозрачной.
  •  В начале программы предусматривается икона “комментарий”, в которой размещается таблица соответствий между алиасами и длинными идентификаторами. Эта таблица играет роль шпаргалки, которая находится в одном поле зрения с операторами присваивания и позволяет быстро вспомнить, что означает тот или иной алиас.

ОБРАБОТКА МАССИВОВ

На рис. 94 и 95 даны примеры программ, в которых имеются операции с массивами.

Описание данных размещается на нижнем этаже иконы “полка”.

означает, что задан одномерный массив с именем “Вес.кролика”, содержащий 100 элементов, каждый из которых является вещественным числом.

Основным элементом обеих программ служит цикл ДЛЯ. Рассмотрим правила оформления цикла. В иконе “начало цикла ДЛЯ” в верхней строке пишут слово “Цикл” и после пробела односимвольный алиас, обозначающий переменную цикла (буква k на рис. 94, 95). В нижней строке указывают диапазон ее изменения, например,

Знак тождественного равенства ≡ показывает, что после него следует имя-комментарий, т. е. комментарий, который пишется по правилам записи идентификаторов.

Эргономический “навар” формализованного комментария включает два преимущества. Во-первых, он позволяет устранить традиционную “забывчивость” программистов и по-человечески объяснить читателю смысл абстрактного идентификатора: дескать, k - это номер кроличьей клетки. Во-вторых, что немаловажно, объяснение размещается на поле чертежа именно там, где нужно (в иконе “начало цикла ДЛЯ”), по принципу “дорого яичко ко Христову дню”. Это значит, что читатель получает ответ моментально - в ту самую секунду, когда он впервые увидел алиас k и в его голове забрезжил вопрос: а что такое k?

В иконе “конец цикла ДЛЯ” делают запись

Смысл операторов, организующих обработку массивов, ясен из рис. 94 и 95 и не требует пояснений.

АБСТРАКТНЫЕ ДРАКОН-СХЕМЫ

В этом параграфе мы рассмотрим преобразование визуальной программы на языке ДРАКОН-2 в текстовую программу на БЕЙСИКе. Это преобразование полезно в двух отношениях: оно позволит глубже уяснить суть визуализации и познакомиться с важным понятием абстрактной дракон-схемы.

В качестве примера возьмем школьную программу под названием “Игра.угадайка” и напишем ее на языке ДРАКОН-2 (рис. 96). Затем полностью устраним из нее текст и получим чертеж-слепыш, который называется “абстрактная дракон-схема” (рис. 97). Эта схема представляет собой инвариант программы, который можно за два шага преобразовать в программу на любом языке программирования.

Выберем в качестве цели язык БЕЙСИК и приступим к делу. На первом шаге заполним пустые иконы абстрактной схемы текстом на языке БЕЙСИК. В результате получится эквивалентная программа на языке ДРАКОН-БЕЙСИК (рис. 98). На втором шаге переходим к обычной бейсик-программе (мы сознательно выбрали старомодную версию БЕЙСИКа, чтобы для разнообразия продемонстрировать использование операторов goto при описании эквивалента дракон-программы) - см. рис. 99.

ФИЛОСОФИЯ ЯЗЫКА ДРАКОН

Любой императивный язык (СИ, ПАСКАЛЬ, АДА, МОДУЛА, БЕЙСИК и т. д.) можно разбить на три части, три относительно самостоятельных языка: маршрутный, командный и декларативный.

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

Поясним сказанное на примере. Абстрактная дракон-схема, приведенная на рис. 97, есть некоторая “фраза” маршрутного языка. Чтобы сделать ее содержательной, внутри икон следует поместить текст. Этот текст пишется на командном языке. Однако описания данных и классов иногда целесообразно вынести за рамки дракон-схемы и поместить их где-нибудь в другом месте, например, в виде отдельной записи или таблицы.

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

Конструируя очередной язык дракон-семейства, можно выбирать командный и декларативный подъязыки любым способом (заимствуя из других языков или выдумывая заново). Благодаря этому обеспечивается богатство возможностей ДРАКОНА и гибкая настройка на различные приложения. Таким образом, дракон-семейство имеет только одно жесткое звено - маршрутный язык, который есть не что иное, как визуальные компоненты ДРАКОНА (визуальный синтаксис и семантика).

Маршрутный язык - это визуальный стандарт дракон-семейства, поддерживаемый визуальным дракон-редактором (см. гл. 14), который имеет небольшие размеры и легко запоминается. Он является неизменной визитной карточкой ДРАКОНА, его стандартизованным зрительным образом (рис. 97).

КЛАССИФИКАЦИЯ ЗНАНИЙ

Любая программа есть некоторая сумма знаний, которую можно расчленить на императивную и декларативную часть. Изложенные выше соображения позволяют уточнить этот тезис. Новый взгляд на проблему представлен на рис. 100 и сводится к следующему:

  •  Для анализа знаний, содержащихся в исходном тексте компьютерной программы, написанной на императивном языке, целесообразно использовать две классификации: базовую и альтернативную./li>
  • Базовая классификация состоит в том, что все знания, содержащиеся в исходной программе, разбиваются на императивные и декларативные.
  • В свою очередь императивные знания делятся на управляющие и командные.
  • В качестве критерия для альтернативной классификации предлагается вопрос: какие средства лучше использовать для представления знаний - графику или текст?
  • Ответ состоит в следующем. Для представления управляющих знаний лучше применять графику (маршрутный язык), для командных и декларативных знаний - текст.
  • Таким образом, при альтернативной классификации знания делятся на визуальные (управляющие) и текстовые (командные и декларативные).

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

ВЫВОДЫ

  1. Если в нашем распоряжении имеется формальный визуальный синтаксис, то для построения визуального языка программирования достаточно построить формальный текстовый синтаксис. Мы убедились, что эта задача вполне разрешима, причем несколькими способами. В итоге образуется семейство языков программирования как оригинальных (ДРАКОН-2), так и гибридных (ДРАКОН-СИ, ДРАКОН-МОДУЛА, ДРАКОН-ПАСКАЛЬ, ДРАКОН-БЕЙСИК и т. д.).
  2. Можно утверждать, что понимаемость визуальных языков существенно выше, чем понимаемость их текстовых собратьев. Поэтому во всех случаях, когда понимаемость рассматривается как главный критерий качества программ (а таких случаев немало), визуальные языки оказываются вне конкуренции. Здесь уместна оговорка: сам по себе термин “визуальный” ничего не гарантирует. Успех дела достигается за счет тщательного и скрупулезного применения методов науки о человеческих факторах (эргономики). Если говорить точнее, речь идет о синтезе методов информатики и эргономики, формировании нового междисциплинарного направления - инфоэргономики, перестройке всего здания современного программирования на эргономической основе.
  3. Создание любого языка программирования следующего поколения должно начинаться с анализа эргономических требований и заканчиваться оценкой полученных эргономических характеристик языка. Одно из основных препятствий для реализации этого плана состоит в инерции мышления многих специалистов, недооценке важности эргономических методов. Чтобы изменить сложившиеся стереотипы мышления, нужно внести серьезные изменения в программу и методы преподавания информатики в школе и вузе.

Вы что-нибудь слышали о языке программирования ДРАКОН? Мы - нет. Но вот наш читатель утверждает, что ДРАКОН уже внесён в программу курса информатики высшей школы.

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

В 1976 году в СССР в обстановке строжайшей секретности началась разработка многоразового транспортного космического корабля Буран в рамках проекта "Буран-Энергия". Это был грандиозный проект. В его создании принимали участие 86 министерств и ведомств и 1286 предприятий СССР (всего около 2,5 миллиона человек).

Свой первый и единственный космический полёт "Буран" совершил 15 ноября 1988 года. Орбитальный корабль был запущен c космодрома Байконур при помощи ракеты-носителя "Энергия". После облёта Земли Буран произвёл посадку на специально оборудованном аэродроме "Юбилейный" на Байконуре. Полёт прошёл без экипажа, полностью в автоматическом режиме. В отличие от американского Шаттла, который может совершать посадку только на ручном управлении. В связи с распадом СССР и трудностями переходного периода в 1990 году работы по программе "Энергия—Буран" были приостановлены, а в 1993 программа окончательно закрыта.

Разработка языков программирования для Бурана

При разработке Бурана проблема разработки и отработки программного обеспечения считалась одной из наиболее сложных. Первоначально предполагалось, что для решения задачи потребуется несколько тысяч программистов. Следует учесть, что наши программисты привыкли писать программы на ассемблере, так как объем памяти бортового компьютера "Бисер-4" в тот период был очень ограниченным.

В материалах Института прикладной математики им. М.В. Келдыша РАН о трудностях и свершениях того периода говорится так:

"В 1983 году разработчики космического корабля Буран обратились в Институт [прикладной математики] с просьбой помочь в разработке бортового программного обеспечения и программного обеспечения наземных испытаний корабля. По их оценкам для этой работы требовалось несколько тысяч программистов. После изучения задачи было решено разработать проблемно-ориентированные языки, основанные на терминах, понятиях и форме представления алгоритмов управления и испытаний, используемых разработчиками корабля. Реализация этих языков позволила привлечь к созданию бортового и испытательного программного обеспечения самих разработчиков корабля - авторов алгоритмов управления и испытаний. Разработка языков и соответствующих инструментальных средств была выполнена небольшим коллективом высококвалифицированных программистов Института прикладной математики в чрезвычайно сжатые сроки. Для разработки бортового программного обеспечения был создан специализированный язык реального времени ПРОЛ2 и базирующаяся на нем система автоматизации программирования и отладки САПО ПРОЛ2… Для разработки программного обеспечения наземных испытаний корабля был создан проблемно-ориентированный язык ДИПОЛЬ и базирующаяся на нем система автоматизации программирования и отладки"…

Таким образом, чтобы решить проблему нехватки программистов при создании Бурана по нашей просьбе Институт прикладной математики РАН создал два русскоязычных языка:

  • язык реального времени ПРОЛ2 для разработки бортовых комплексных программ (автор Виктор Крюков)
  • проблемно-ориентированный язык для разработки программ наземных испытаний ДИПОЛЬ (автор Владимир Луцикович)

Кроме того, в Пилюгинском центре под руководством Константина Федорова был разработан язык ЛАКС для моделирования. Таким образом, появились три новых языка: ПРОЛ2, ДИПОЛЬ и ЛАКС.

Язык ДРАКОН родился в космической колыбели

Хотя языки успешно решали поставленные задачи, стало ясно, что узкая специализация языков мешает делу. Эту мысль в 1986 году высказал начальник комплексного отделения Юрий Трунов (впоследствии Генеральный конструктор и Генеральный директор Пилюгинского центра). Трунов вызвал к себе начальника лаборатории комплексной разработки вычислительной системы Бурана Владимира Паронджанова и поручил ему создать универсальный язык, способный заменить три вышеназванных. Однако Паронджанов решил поставить задачу иначе. Он полагал, что новый язык должен не только удовлетворять практическим нуждам космической техники, но и решать предельно широкий круг задач, выходящих далеко за рамки традиционного программирования.

В связи с этим при создании языка ДРАКОН были выдвинуты необычные для программистов, математиков и "технарей" гуманитарные требования.

1. Улучшить работу человеческого ума.
2. Предложить эффективные средства для описания структуры человеческой деятельности.
3. Предоставить человеку такие языковые средства, которые резко упрощают восприятие сложных процедурных проблем и общение с коллегами, делают непонятное понятным и за счет этого буквально заставляют человека мыслить отчетливо, глубоко и продуктивно. В этих условиях вероятность заблуждений, просчетов и ошибок неизбежно падает, а производительность растет.
4. Радикально облегчить межотраслевое и междисциплинарное общение между представителями разных организаций, ведомств, отделов, лабораторий, научных школ и профессий.
5. Устранить или уменьшить барьеры взаимного непонимания между работниками различных специальностей (врачами и физиками, математиками и конструкторами, биологами и экономистами и т. д.), а также программистами и теми, у кого аллергия к любому программированию.
6. Добиться кардинального улучшения качества программного обеспечения по критерию "понимаемость алгоритмов и программ".

Разработка языка ДРАКОН и его программных средств

Разработка нового языка и системы программирования началась в 1986. Через 11 лет на базе ДРАКОНА была построена автоматизированная технология проектирования алгоритмов и программ (CASE-технология) под названием "ГРАФИТ-ФЛОКС".

Все работы были завершены к 1996 году. Затем язык ДРАКОН и система ГРАФИТ-ФЛОКС поступили в эксплуатацию. С их помощью были разработаны алгоритмы и программы доразгонного модуля космических аппаратов Международного проекта Морской старт. В общей сложности на разработку и отработку программного обеспечения и других элементов системы управления ушло три года. К 1999 году все работы были закончены. Система была готова к старту.

Первый пуск ракетного комплекса "Морской старт" состоялся 28 марта 1999 года. Он произошел в 5 час. 30 мин. по московскому времени (27 марта 1999 г. в 18 час. 30 мин. по тихоокеанскому времени) cо стартовой платформы "Одиссей" в Тихом океане в районе островов Кирибати.

Этот пуск был боевым крещением языка ДРАКОН и технологии создания программ "Графит-Флокс". Он убедительно продемонстрировал их эффективность и надежность. С тех пор по программе Морской старт проведено 29 ракетных пусков. Последний пуск состоялся 24 сентября 2008.
 Язык ДРАКОН успешно используется и во многих других космических программах:

  • разгонный блок космических аппаратов "Фрегат";
  • модернизированная ракета-носитель "Протон-М";
  • доразгонный модуль космических аппаратов ДМ-SL-Б (проект "Старт в пустыне", или "Наземный старт") и др.

Поскольку результаты использования Дракона были стабильно высокими, руководство Пилюгинского центра приняло решение об использовании дракон-технологии во всех последующих проектах.

Программирование без программистов

ДРАКОН - очень легкий язык. Настолько легкий, что разработку многих компьютерных программ для космических ракет на практике ведут не программисты, а инженеры - по принципу "программирование без программистов". Причина отказа от программистов проста. При решении практических прикладных задач инженеры досконально владеют материалом и прекрасно знают постановку задачи. В отличие от них программисты не знают "физику процесса" и становятся "лишними людьми", без которых в ряде случаев (хотя и не всегда) вполне можно обойтись.

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

Секреты космических разработок - народному хозяйству

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

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

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

Сегодня эта роль переходит к визуальному языку ДРАКОН. Именно ДРАКОН становится самым простым, легким, удобным и логически стройным языком, с которого надо начинать изучение алгоритмизации и программирования.

Дракон в системе образования

В 1996 году Государственный комитет по высшему образованию Российской Федерации включил изучение языка ДРАКОН в программу курса информатики высшей школы. Этот факт нашел отражение в документе Госкомвуза под названием:

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

Алгоритмы без программистов — это очень просто!

НА ПОДСТУПАХ К НОВОМУ ЯЗЫКУ

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

Джордж Паджет Томсон

ЗАЧЕМ НУЖЕН ЯЗЫК ДРАКОН?

ДРАКОН — это алгоритмический язык, обладающий необычным свойством: одновременно он является языком для описания структуры деятельности, языком понимания и взаимопонимания, языком развития интеллекта. Как язык программирования, он удовлетворяет требованиям математической строгости, позволяющим из исходного текста однозначно получать объектный код (машинный код для компьютера). Но главное не в этом. При создании ДРАКОНА основное внимание уделялось человеческому фактору, улучшению наглядности и доходчивости технических и социальных проектов и технологий, повышению эргономических характеристик алгоритмов, чтобы не на словах, а на деле превратить ДРАКОН в язык для улучшения работы ума, язык пони-мания и взаимопонимания.

Хотя ДРАКОН внешне очень напоминает обычные блок-схемы алгоритмов и программ, фактически он является оригинальной разработкой. Наиболее близким функциональным аналогом ДРАКОНА следует считать схемы действий (action diagrams) и схемы деятельности (activity diagrams).

Для дотошных читателей, которые любят подробности, аналогами ДРАКОНА — в той или иной степени — можно назвать и более дальних “родственников”. К их числу относятся: диаграммы Несси—Шнейдермана, HOS-схемы, схемы “гринпринт” , SPD-диаграммы фирмы NEC, PAD-схемы фирмы Хитачи, деревья и таблицы решений, схемы декомпозиции, схемы зависимости, язык SDL и его производные, систему BLS, созданную А. Смоляниновым из Санкт-Петербургского электротехнического университета, R-схемы И. Вель-бицкого, схемы В. Прохорова и т. д.

В ЧЕМ СЕКРЕТ ДРАКОНА? — В КОГНИТИВНОМ ПОДХОДЕ

Впрочем, сравнение с аналогами в данном случае малопродуктивно, так как оно не позволяет раскрыть наиболее существенную особенность ДРАКОНА, которая называется “когнитивный подход”. Термин “когнитивный” (познавательный) пока еще не получил широкого распространения среди проектировщиков, разработчиков, инженеров и программистов, однако он является тайным паролем нового могущественного научного ордена, вернее сказать, знаменем двух новых, бурно развивающихся направлений в психологии и науке об интеллекте, известных как когнитивная психология и когнитивная наука.

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

Под когнитивным фактором в данной книге понимаются познавательные, интеллектуальные, мыслительные, творческие аспекты деятельности ученых, специалистов и учащихся. Чем сложнее объект технического и социального проектирования, тем важнее делать акцент на необходимости тщательного учета когнитивных характеристик деятельности людей. Академик П. Симонов подчеркивает: для разработчиков систем “чрезвычайно важно знание правил, следуя которым живой мозг воспринимает, обрабатывает, фиксирует и использует вновь полуенную информацию. Сведения о таких правилах, выявленных в эксперименте, поставляет когнитивная психология”.
Использование названных правил позволяет получить практический результат — повысить производительность умственного труда.

ПОЧЕМУ ЛЮДИ НЕ ИНТЕРЕСУЮТСЯ СОБСТВЕННЫМ МОЗГОМ?

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

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

Думается, этот вывод справедлив и в других случаях. Игнорирование закономерностей работы мозга, недостаточное внимание к ког-нитивным вопросам приводит к неприятным последствиям: взаимному непониманию между соавторами сложных проектов, серьезным заблуждениям в научном по-знании, крупным научно-тех¬ническим просчетам, устранение которых требует значительных материальных издержек (связанных с дорогостоящими конструкторскими доработками и трудоемкими переделками программного обеспечения), а также к ощутимому снижению результирующей производительности труда разработчиков и других участников технических и социальных проектов.

Наука о человеческих факторах называется эргономикой. Когнитивные проблемы — важная часть эргономики. Чтобы вычленить когни-тивную группу среди других эргономических вопросов, иногда употребляют термины “когнитивная эргономика” и “когнитивно-эргономические проблемы”.

СТАНЕТ ЛИ ДРАКОН ЧЕМПИОНОМ МИРА ПО КРИТЕРИЮ “ПОНИМАЕМОСТЬ АЛГОРИТМОВ”?

Данная книга имеет сугубо практический характер. Ниже будет показано, что когнитивный подход — это рабочий метод, дающий полезные плоды: улучшение понимаемости алгоритмов и программ, проектов и технологий, повышение производительности сложного интеллектуального труда. Мы постараемся обосновать этот тезис, постепенно раскрывая особенности языка ДРАКОН.

Как и все прочие языки, ДРАКОН опирается на математику и логику. Однако сверх того, он самым тщательным образом учитывает когнитивные вопросы. Благодаря систематическому использованию когнитивно-эргономических методов ДРАКОН приобрел уникальные эргономические характеристики. Можно предположить, что в будущем ДРАКОН сможет претендовать на звание чемпиона по критерию “понимаемость алгоритмов и программ” (в классе императивных языков).

ДРАКОН можно определить как общедоступный визуальный язык, предназначенный для описания структуры деятельности, для систематизации, структуризации, наглядного представления и формализации императивных знаний, а также для проектирования, программирования, моделирования и обучения. Это универсальный межотраслевой язык делового мира, служащий для описания научно-технических, медицинских, биологических, экономических, социальных, учебных и иных задач. ДРАКОН позволяет упорядочить и представить решение любой, сколь угодно сложной императивной (процедурной, деятельностной, технологической, рецептурной, алгоритмической) проблемы в виде наглядных чертежей, выполненных по принципу “взглянул — и сразу понял! ”.

Человечность языка ДРАКОН, стремление создать максимальный комфорт для работы человеческого мозга, всемерная забота о повышении творческой продуктивности персонала позволяет надеяться, что ДРАКОН получит самое широкое применение в народном хозяйстве, бизнесе, обороне, науке и системе образования. Используя не просто наглядные, а предельно наглядные формы представления знаний, об-легчая работу мозга, ДРАКОН обеспечивает заметный рост производительности интеллектуального труда.
В основе языка ДРАКОН лежит идея когнитивной формализации знаний, позволяющая сочетать строгость логико-математической формализации с точным учетом когнитивных (познавательных) характеристик человека. В результате удалось кардинальным образом упро-стить и облегчить процедуру описания структуры деятельности, форма-лизацию профессиональных знаний специалистов, стандартизовать ее и сделать пригодной для массового практического использования. Это в равной степени касается как компьютерной, так и “бескомпьютерной” интеллектуальной деятельности людей.

Таким образом, основная цель создания языка ДРАКОН — обеспечить качественный скачок в повышении продуктивности сложного интеллектуального труда за счет увеличения интеллектуальной производительности человеческого мозга, выявления и более полного использования резервов человеческого интеллекта, создания когнитивных предпосылок для существенного повышения эффективности информационных технологий.

НА КОГО РАССЧИТАН ЯЗЫК ДРАКОН?

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

ПЕРЕЧЕНЬ ЗАДАЧ, РЕШАЕМЫХ С ПОМОЩЬЮ ЯЗЫКА ДРАКОН

Язык ДРАКОН может быть использован при решении следующих задач:

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

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

Стратегический обзор функций корпораций (strategic overview of corporate functions);
- описание логических отношений между процессами (logical relationship among processes);
- описание укрупненной структуры программ (overall program structure);
- описание детальной логики программ (detailed program logic);
- полная декомпозиция программ (ultimate decomposition), начиная от укрупненной логики и кончая деталями кода, что в равной мере полезно при проектировании как сверху вниз (top-down design), так и снизу вверх (bottom-up design);
- проектирование программ до последнего момента может вестись независимо от языка и лишь на последнем этапе осуществляется переход к нужному языку;
- обучение конечных пользователей, стимулирующее их анализировать и проектировать детальную логику процессов (detailed process logic);
- описание процедур организационного управления (management procedures);
- описание компьютерных методологий (computer methodologies);
- описание методологий информационной техники (methodologies of information engineering).

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

ВЫВОДЫ

1. Традиционные цели и методы создания искусственных языков, в частности языков программирования, следует признать во многом устаревшими.

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

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

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



Понравилась статья? Поделиться с друзьями: