Умеренно быстрое начало | Введение в методологию ДРАКОН
Цель изучения цикла – стать начинающими разработчиками (мы будем говорить сочинителями, как в /2/) алгоритмов. В связи с этим рассмотрим некоторые общие вопросы.
Содержание
Основы структуризации импер-языков
Вообще-то на этот вопрос можно ответить по-разному. В мифологии бывают драконы и одноглавые, и стоглавые. Если обратиться к нашему предмету, то создатель техноязыка указывает, что «...язык ДРАКОН выполняет две принципиально разные функции. Для большинства работников он является новым средством повышения эффективности интеллектуального труда, причём у этого средства практически нет аналогов в мировой практике. В этом качестве ДРАКОН не имеет ни малейшего отношения к программированию. ...Вторая функция состоит в том, что для программистов ДРАКОН действительно является языком программирования. Таким образом, ДРАКОН имеет две головы, обращённые к совершенно разным аудиториям. причём каждая голова пытается угадать сокровенные потребности своей аудитории и по возможности удовлетворить их наилучшим образом.» /1, с.26/.
Казалось бы, ответ получен. Но здесь вспомним, что цель создания языка – формализация знаний, да не простая, а когнитивная, т.е. опирающаяся на особенности информационной деятельности человека. По сути, под названием ДРАКОН скрывается новая методология формализации (автоформализации) знаний, прежде всего профессиональных. И «головы», т.е. базовые элементы структуры, имеет смысл выделять применительно к ней.
Общие принципы структуризации МФЗ рассмотрены в этом пункте.
Не забудем, что ДРАКОН формализует импер-знания (технологические), т.е. состоящие из действий (движений, операций). На любом уровне формализации алгоритм, следуя Паронджанову, считаем частным случаем техпроцесса, когда предмет труда – данные.
Идея техноязыка в том, что маршрутный подъязык имеет графическую основу и унифицированный синтаксис, тогда как остальные подъязыки выбираются относительно свободно.
Процесс составления ГСА по правилам ДРАКОНа именуется визуализацией деятельности (импер-знаний), а ГСА в техноязыке – дракон-схемами.
ДРАКОН претендует на универсальность, однако сам является нотацией для представления части содержания деятельности в одной из возможных форм записи. Чтобы понять это, нужно рассмотреть структуру самих формализуемых знаний. Паронджанов сделал это в /1, с.191-193/, а мы здесь приведем несколько уточнённую классификацию (см. след. стр.), где формы представления исходят из когнитивной эргономичности.
Классификация форм представления знаний (уточнённая)
Итак, полный ЯПЗ должен распадаться на четыре подъязыка; два из них определены Паронджановым, а два других представляют детализацию того, что он определил как декларативные знания и на этом остановился. Это вполне понятно; ДРАКОН предназначен для формализации импер-знаний, и в его рамках в структуру деклар-знаний вдаваться необязательно. Но это необходимо при составлении инфор-модели (программы, строгой инструкции человеку) как целостного описания деятельности.
А как насчёт двух голов – «для программистов» и «для большинства», – с которых мы начали? Вместо этого можно говорить о двух «обличьях» нашего «трёхглавого» ДРАКОНа. Они меняются в зависимости именно от немаршрутных подъязыков (командного и атрибутивного), употребляемых при визуализации, образуя:
неформальный язык – для профессионалов своего дела (носителей знаний предметной области), определён как версия ДРАКОН-1 и называется псевдоязыком;
формальный язык – для профессионалов информатизации того или иного дела (ИТ-специалистов, таких как программисты, системные аналитики), это визуальный язык программирования (версия ДРАКОН-2).
Более точно, следует разделять различия в формальности языка и разнообразие его специализаций; это две разных точки зрения.
С т. зр. формальности, возможны наборы языков разной строгости для одной и той же специализации. Для первого «гардероба» их происхождение очевидно; некий процесс (допустим, педагогический) можно вначале описывать «своими словами», а по мере уяснения переходить к «более научной» форме. Во втором «гардеробе» можно выделить гибридные техноязыки, построенные на базе языков программирования различного уровня (ДРАКОН-Си и т.п.), вплоть до языка кодирования икон на Ассемблере конкретной модели информашины.
Итак, ДРАКОН – это целое семейство техноязыков, употребляемых на всех этапах формализации императивных знаний. При этом неформальные техноязыки (псевдоязыки) образуют подмножество (продолжая биологические аналогии – «отряд») ДРАКОН-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, Гл.11/.
Изменённый формат имён выбран по следующим соображениям. Если строго следовать единству представления деятельности на разных уровнях формализации, то объекты должны иметь один и тот же формат имён от первоначальной визуализации до исходного текста программы. Однако в современных объектных языках программирования точка используется для иных целей, чем просто разделитель частей сложносокращённого имени: обычно она отделяет имена свойств объекта друг от друга и от его имени. Поэтому части имени объекта (свойства) мы пишем слитно, а для разделения используем их капитализацию. Это облегчит и восприятие подстановки в тексты объектных дракон-программ кратких имён (алиасов) вместо длинных, как предложено в /1, с.185/.
На этом предварительные рассуждения о методологии ДРАКОН можно завершить. Структуризация позволила нам одновременно раскрыть семантику (значение) ряда операторов техноязыка, поэтому далее мы можем сосредоточиться на описании его синтаксиса.
Здесь мы ввели базовые термины формализации знаний и ДРАКОНа; остальные будут вводиться по ходу документа, преимущественно на рисунках. Кроме «взрослых» терминов, мы также пользуемся «детскими», которые создатель ДРАКОНа ввёл в пособии /2/.
Данный курс ориентирует на визуализацию в среде машинного документооборота (офисных пакетов); поэтому он в основном состоит из иллюстраций, подготовленных в редакторе рисунков. Кроме того, как можно видеть, предпринята эргономизация текста на базе возможностей форматирования в используемом офисном пакете (правда, во многом интуитивная).
Следуя положениям когнитивной эргономики, а также преследуя цель краткого описания ДРАКОНа, мы будем по возможности шире использовать графическое представление и максимально включать в иллюстрации текст, активно применяя метод КогниСтиль, более подробно о котором здесь.
В начало страницы | Оглавление | Версия для печати
Copyright © Жаринов В.Н.