Д Р А К О Н О Г Р А Ф И К А

Умеренно быстрое начало | Введение в методологию ДРАКОН

Цель изучения цикла – стать начинающими разработчиками (мы будем говорить сочинителями, как в /2/) алгоритмов. В связи с этим рассмотрим некоторые общие вопросы.


Содержание

Сколько голов у ДРАКОНа?

Основы структуризации импер-языков

О структуризации техноязыка

Сколько голов у ДРАКОНа?

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

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

Общие принципы структуризации МФЗ рассмотрены в этом пункте.

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

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

Процесс составления ГСА по правилам ДРАКОНа именуется визуализацией деятельности (импер-знаний), а ГСА в техноязыке – дракон-схемами.

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

Классификация форм представления знаний (уточнённая)

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

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

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

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

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

В начало страницы

Основы структуризации импер-языков

В основе методологии ДРАКОН лежит ряд идей, обеспечивающих удобство и точность описания алгоритмов в форме, пригодной для человеческого восприятия; в /1, с.337/ она названа знаковой, но мы будем говорить о символической (понятие «знак» уж очень широко используется в других значениях); в первую очередь преследовалась цель строго формализовать описание структуры деятельности, чтобы её можно было впоследствии однозначно переводить в форму, представимую в машинах – предметную (практически – в программный код).

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

В рамках ДРАКОНа ход выполнения визуала можно отображать положением т.н. рабочей точки (в терминах /2/ – «дракон-поезда») на той или иной вершине дракон-схемы; в этой точке как бы находится исполнитель алгоритма при выполнении конкретной иконы.

В начало страницы

О структуризации техноязыка

С учётом сказанного выше, выделим основные структурные черты ДРАКОНа по намеченному плану.

Можно выделить следующие ключевые идеи представления времени в ДРАКОНе.

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

2. Разные возможности учёта времени. Хронизация возможна по принципу паузы либо таймера; в разных практических применениях тот или иной принцип более удобен.

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

Ключевые идеи представления движения в ДРАКОНе:

1. Различные способы формализации холостого оператора:

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

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

3. Формализация всех типов перехода, причём графически они представлены (визуализированы) следующим образом:

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

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

Употребление безусловных переходов в ДРАКОНе строго формализовано петлёй силуэта и ограничено; в частности, не допускается БП назад и с пересечением пути другого БП. Логически пространство деятельности в ДРАКОНе – это множество визуальных операторов, т.н. икон, образующих алфавит техноязыка. Некоторые иконы употребляются не самостоятельно, а лишь в составе конструкций-макроикон (входящих как подсхемы в дракон-схему); макроиконы образуют исходный словарь техноязыка. Иконы и макроиконы описаны в п.1.2.2 Приложения 1 в виде толкового словаря (с определениями).

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

Создатель техноязыка указывает на необходимость единых правил построения объектных имён, информативных и удобных для восприятия; для этого нужна и достаточная длина имени: «...множество 32-символьных идентификаторов образует весьма выразительный, хотя и своеобразный, язык, законы и правила оптимизации которого ещё предстоит открыть, обсудить и подвергнуть экспериментальной проверке.» /1, с.163/.


Ключевые пространственные идеи ДРАКОНа.

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

2. Эргономизация изображения алгоритма. С этой целью вводятся некоторые базовые правила изображения структуры:

Они же служат общими правилами перехода от блок-схем к дракон-схемам (вывода вторых из первых). Для отдельных конструкций справедливы также частные правила перехода (вывода).

Также введены топологические запреты на:

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

Разрывы исключаются использованием вставок, т.е. фактически иерархической декомпозицией алгоритма.

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

На практике все компоненты импер-знаний было принято описывать посредством текста; поэтому существуют в основном текстовые языки программирования (ТЯП). При этом структуры управления в ТЯП описываются нестрого из-за неформальных правил употребления безусловных переходов. В техноязыке же введены однозначные ограничения на такие переходы, что органично совмещается с графическим представлением структур алгоритмов. Именно поэтому ДРАКОН позволяет алгоритмизовать формально (так, чтобы получить однозначную структуру) и в то же время эргономично, т.е. удобно для любого человека. Более подробно о текстовом и графическом структурном кодировании алгоритмов см /1, Гл.16/.

3. Эргономизация изображения визуальных операторов. Для этого создателем языка:

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


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

Изменённый формат имён выбран по следующим соображениям. Если строго следовать единству представления деятельности на разных уровнях формализации, то объекты должны иметь один и тот же формат имён от первоначальной визуализации до исходного текста программы. Однако в современных объектных языках программирования точка используется для иных целей, чем просто разделитель частей сложносокращённого имени: обычно она отделяет имена свойств объекта друг от друга и от его имени. Поэтому части имени объекта (свойства) мы пишем слитно, а для разделения используем их капитализацию. Это облегчит и восприятие подстановки в тексты объектных дракон-программ кратких имён (алиасов) вместо длинных, как предложено в /1, с.185/.

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

Здесь мы ввели базовые термины формализации знаний и ДРАКОНа; остальные будут вводиться по ходу документа, преимущественно на рисунках. Кроме «взрослых» терминов, мы также пользуемся «детскими», которые создатель ДРАКОНа ввёл в пособии /2/.

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

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


В начало страницы | Оглавление | Версия для печати

Copyright © Жаринов В.Н.