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

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

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

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


Command disabled: media
razmetka_sxem_i_gibridnye_texnojazyki_-_drakon_nachinaet_grafit_vyigryvaet

Разметка схем и гибридные техноязыки

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

  • для выходов развилок — надписями «да»/«нет» при выходных рёбрах;
  • для веточных макроциклов (ВМЦ) — какими-нибудь индексами, позволяющими отличить разные ВМЦ в одном силуэте.

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

Второй тип может иметь синтаксис, предложенный некоторыми пользователями техноязыка и показанный у Паронджанова(см. выдержку в этом сообщении). В веточные соединители добавляется поле индекса ВМЦ.

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

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

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

Управляющие знания логически есть одна часть из двух (структурной и атрибутивной) в одной составляющей из четырёх (императивной, декларативной, активностной и обобщающей). Это следует из известного тезиса Н. Вирта (программа = алгоритм + структура данных + систематическое представление об исполнителе; см. в этой статье), а также из факта существования т.н. парадигмы программирования как способа увязки частей описания программы (по Вирту) в единое целое. Однако синтаксический объём этих частей в разных языках не обязательно одинаков. Существует и подход В.Ш. Кауфмана — язык программирования определяет данные, операции и их связывание.

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

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

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

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

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

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

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

Преодолеть недостатки частной гибридизации можно следующим образом:

  • визуализировать в каждой составляющей текстового языка её структурную часть;
  • рассматривать парадигмы «ЧТО-формализации» на предмет выделения их структурной части и нахождения структур графов, формально и эргономично представляющих эту часть;
  • выявлять содержание, не отражённое в конкретном языке явно, и находить средства его выражения.

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

Безусловно, путь, намеченный Ермаковым, требует и теоретических изысканий, на что он также указывал.

Техпроцесс гибридизации: ДРАКОН начинает, ГРАФИТ выигрывает

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

В случае симультанного дело обстоит внешне просто :). Берём определение исходного языка, выделяем в нём составляющие согласно [http://grafit-basis.narod.ru/L2/gen_struct_dan.html|генклассификации] и совместно переводим определения структуры каждой составляющей (ген-смысла, «интегральной», парадигмо-зависимой - и частно-«дифференциальных» - импер-, деклар-, актив-) на графовую основу. В выбранном для данной части роде топологии граф-схем - структур-классе в терминах графит-метода - м.б. заданном по собственному усмотрению. Ну и атрибутивные определения сопоставляем вершинам (м.б. и рёбрам) схем как разметку.

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

При сукцессивном пути качественно порядок таков:

  • А) Берём ту составляющую, для которой у нас сложилось графовое представление, и переводим её структурную часть на граф-базу. А весь остальной объём языка оставляем в тексте.

Т.е. у нас только один вид графов (по несомому смыслу) будет основой представления всей модели.

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

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

В общем, получается формально, но ещё не эргономично.

  • Б) Определяем для каждой оставшейся составляющей граф-представление и переводим её структуру на него. Теперь уже и эргономично.

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

Можно изложить это и как рекурсивный алгоритм :):

ЗАДАЧА Гибридизировать текстовый инфор-язык (* сокращённо - ТИЯ*) ПАРМ Определение ТИЯ, Определение ГИЯ, Опыт гибридизации; НАЧ Определение ТИЯ имеет формальный синтаксис?=ДА; НАЧ В определении ТИЯ выделены составляющие по генклассификации?=ДА; ПОКА В определении ТИЯ НЕ исчерпаны составляющие по генклассификации?=ДА ПОВТОРЯТЬ ВЗЯТЬ очередную составляющую; ВЫДЕЛИТЬ её структурную часть И её атрибутивную часть (как дополнение); ПЕРЕВЕСТИ структурную часть из текстовой формы в графовую; СОПОСТАВИТЬ атрибутивную часть графу как текстоэлементы разметки вершин/рёбер; УСТАНОВИТЬ связи данной составляющей с другими заново; СЧИТАТЬ результат ЗА Определение ГИЯ; СОХРАНИТЬ Опыт гибридизации . Определения; КЦ ПОКА ЕСЛИ Структура связей в языке сложна для понимания?=ДА ТО ПОКА В определении ТИЯ НЕ исчерпаны аспекты сложности структуры?=ДА ПОВТОРЯТЬ ВЗЯТЬ очередной аспект; ВЫДЕЛИТЬ его структурную часть И его атрибутивную часть (как дополнение); ПЕРЕВЕСТИ структурную часть из текстовой формы в графовую; СОПОСТАВИТЬ атрибутивную часть графу как текстоэлементы разметки вершин/рёбер; УСТАНОВИТЬ связи данного аспекта с составляющими определения; СЧИТАТЬ результат ЗА Определение ГИЯ; СОХРАНИТЬ Опыт гибридизации . Сложности; КЦ ПОКА ВСЁ ЕСЛИ ЕСЛИ Когнитивное качество определения достаточно?=НЕТ ТО ВЫЗОВ Гибридизировать текстовый инфор-язык (Определение ТИЯ, Определение ГИЯ, Опыт гибридизации) ВСЁ ЕСЛИ КОН Определение изоморфно формальному синтаксису ТИЯ?=ДА; КЗ Гибридизировать текстовый инфор-язык.

Оно, конечно, немного шутливое, но частично информатизует суть дела.

Заметим ещё вот какие обстоятельства:

  1. За начальную гибридизируемую при сукцессивном пути можно выбрать любую составляющую смысла целевого инфор-языка. Паронджанов выбирает императивную, т.к. разработал изначально визуализацию её как дракон-схем. Валерий Лаптев выбрал ген-составляющую, имея понимание, как визуализировать её в форме АСД. Можно также взять деклар-составляющую, скажем, как АТ-схемы; кто поразмыслит над этим примером - сообразит, куда «приткнуть» и импер-, и актив-составляющие в форме текста :). Можно пойти и от актив-составляющей; здесь путь указывают соображения alexus. -
  2. Как представляется, есть предпочтительный род топологии для отражения каждой составляющей; своё видение отразил в назначении структур-классов в графит-методе. М.б. где-то он не единственный.

Доалгоритмическая формализация: хороший командир указывает, ЧТО, но не указывает, КАК

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

«ЧТО»-язык отражает некие сущности решаемой задачи и её предметной области (не обязательно объекты алгоритма) и некие отношения между ними. Такие языки тоже бывают как чисто текстовыми, так и графитными. Пример последнего — язык информационного моделирования IDEF1X. Он отражает только систему отношений между сущностями. Для записи преобразований (отдельно или вместе с сущностями-отношениями) существуют другие языки — скажем, т.н. функционального или логического программирования. Ряд таких языков имело бы смысл «графитизировать» — но делать это нужно по иным принципам, чем для императивных языков. Примером могут служить языки схем зависимостей, потоков данных, такие как функциональные схемы, ДПД, Анимо. Следует выработать эргономические оптимальные правила организации таких схем. В чём-то может помочь опыт эргономизации системных схем, частично зафиксированный в стандартах на такие схемы (типа ЕСКД).

Условия применения «ЧТО»-описаний хорошо сформулированы у Кауфмана:

Людей как исполнителей характеризует прежде всего наличие у них модели реального мира, в достаточной мере согласованной с моделью мира у создателя плана <т.е. описания поведения исполнителя>. Поэтому в плане для людей можно указывать цели, а не элементарные действия. (ЯП. Концепции и принципы, с. 31)

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

В более практическом смысле дескриптивные языки можно применять для более качественной постановки задач. А их графические разновидности — и для эргономизации представления «ЧТО»-описаний.

razmetka_sxem_i_gibridnye_texnojazyki_-_drakon_nachinaet_grafit_vyigryvaet.txt · Последние изменения: 2012/04/07 21:48 — Владислав Жаринов