Визуальный язык ДРАКОН

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

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

Инструменты сайта


texnojazyk_i_shampur-metod_-_suschnost_preemstvennost_razvitie

Это старая версия документа.


Техноязык и шампур-метод - сущность, преемственность, развитие

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

«Задача формализации и унификации множества профессиональных языков с целью обеспечить эффективное взаимопонимание между специалистами любых профессий, включая программистов, является, хоть и важной, но, увы, неразрешимой. Положение в корне меняется, если ограничиться императивными профессиональными знаниями. Именно эту задачу решает язык ДРАКОН. Он построен путём формализации, неклассической структуризации и эргономизации блок-схем алгоритмов и программ, описанных в стандартах ГОСТ 19.701-90 и ISO5807-85.» (Паронджанов В.Д. Как улучшить работу ума, с. 36)

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

Исчисление, разработанное для ДРАКОНа, называется шампур-методом. Оно основано на следующих принципах:

  • формальной эргономизации лексики — определения состава вершин и их графики с учётом реальных операторов и директив языков программирования; при этом среди вершин выделяются нелинейные, с участием которых образуются подграфы, построенные из знаков алфавита и словаря, даваемые как единицы лексики языка схем. Такой подграф называется атомом и всегда имеет один вход и один выход; также даются исходные конфигурации схем - заготовки (см. Тезисы 1..8, 11..14 шампур-метода);
  • вложения - схема наращивается вводом атомов; среди рёбер атомов и заготовок выделены такие, что допускают замену на тот или иной атом — т.н. рёбра ввода; рёбра указываются вершинами - точками ввода (см. Тезисы 9..10, 15..25, 36, 37 шампур-метода);
  • «шампура» - расположения входа и выхода линейной вершины и атома на одной оси, направленной всегда сверху вниз и упорядочения вершин при следовании по вертикали так, что они лежат на одной оси (см. Тезисы 2, 6, 8 шампур-метода);
  • главной/побочной осей — выделения в нелинейной вершине (подграфе) из ряда входов (выходов) главного и упорядочения остальных (называемых побочными) вправо от него (см. Тезисы 7, 8 шампур-метода);
  • силуэтной укладки - разделения схемы, называемой «силуэтом», на блоки-ветки, в тела которых уложены цепи схемы на плоскости без пересечений; промежуточные выходы веток связываются со входами через особую структуру — петлю силуэта - и вершины-соединители (см. Тезис 2 шампур-метода);
  • лианного вывода — представления неструктурных топологий схем (которые невозможно получить путём вложения) через операции переноса точек соединения без образования пересечений и/или новых входов в ветки силуэта и/или в циклы (любой формы схемы) (см. Тезисы 26..29 шампур-метода).

В нелинейном подграфе имеется две и более осей следования.

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

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

При лианном выводе может получиться лианный, а в силуэте - также и адресный макроблок (см. Паронджанов В.Д. Как улучшить работу ума. Алгоритмы без программистов - это очень просто! М.: Дело, 2001. — С. 259-261.) Также может получиться и структура, выводимая вложением (Паронджанов называет этот тип макроблока структурным; можно также атомарным).

На базе этих принципов определены правила вывода схем как теорем исчисления из выбранной аксиомы-заготовки в лексике атомов.

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

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

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

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

Здесь можно сказать, что техноязык отличается от языка, заданного стандартами на блок-схемы (далее - БС), тем, что:

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

Можно раскрыть эти отличия (а также сходства, оставшиеся с БС) и одновременно оценить шампур-метод (далее - ШМ) и язык, возможности его развития.

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

Предварительно следует сказать кое-что и о понимании сути визуализации и вообще формализации. Удобно это сделать в связи с «исправлением имён» шампур-метода. Так, здесь мы не говорим об иконах. Тому две причины. Во-первых, такое название как краткий синоним для пиктограммы пришло из культуры в религиозном смысле протестантской (антикатолически-реформатской ветви западного христианства) — представленной прежде всего носителями английского и немецкого языка. Там иконы как предмет культа не приняты, и это слово сакрального смысла, в сущности, не имеет. Носители русского языка существенно разноконфессиональны, и восточное христианство (в частности, русское православие) вводит иконы как предмет культа и сакрализует это слово. На возможный конфликт его «мирского» употребления с чувствами соответственно верующих (которые м.б. и сочинителями, и читателями описаний на техноязыке) указал Д.В. Барановский — один из практиков дракон-визуализации — см. здесь.

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

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

В силу всего сказанного, мы называем вершины, имеющие операторный смысл, виопами (от ВИзуальный ОПератор), а не имеющие такого смысла (или в общем смысле) — просто вершинами.

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

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

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

Часто мы будем говорить о смысле частей схем. Под этим понимается интерпретация получателем сообщения, написанного на данном языке (в нашем случае — на ДРАКОНе). Принцип интерпретации можно найти у В.Ш. Кауфмана в книге «Языки программирования. Концепции и принципы» (п. 1.3). Здесь под получателем будем подразумевать машину для переработки данных (также называемую информатической) — по сути своей формально-языковую, т.е предназначенную для работы с неким математически определимым языком. Ту самую, которую обычно называют «компьютером» (но это не более чем жаргонное словцо, передающее лишь часть возможностей таких машин). Но не каждую информашину, а такую, устройство и принцип действий которой можно описать моделью, известной как «машина Тьюринга» (или аналогичной моделью - «машиной Поста»). В основе своей такая модель несложна для понимания — с ней можно познакомиться по книжке В.А. Успенского «Машина Поста» или в учебнике В.А. Острейковского «Информатика» (п. 3.1). Всё распространённые информашины (включая ПК) описываются этой моделью. Главное, что нам надо знать — пространство для переработки данных в такой машине разбито на ячейки, упорядоченные в линию и снабжённые номерами-адресами.

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

Продолжение следует...

Вершины и линии схем: смысл — в ГРАФике И Тексте

Вложение и структурные изменения на графах

Упорядочение маршрутов: чем правее, тем... придумай сам

texnojazyk_i_shampur-metod_-_suschnost_preemstvennost_razvitie.1333790605.txt.gz · Последние изменения: 2012/04/07 13:23 — Владислав Жаринов