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

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

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

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


ocenka_texnojazyka_i_shampur-metoda

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
Следующая версия Следующая версия справа и слева
ocenka_texnojazyka_i_shampur-metoda [2012/04/05 11:42]
Владислав Жаринов [Вершины и линии схем: смысл — в ГРАФике И Тексте]
ocenka_texnojazyka_i_shampur-metoda [2012/04/05 11:45]
Владислав Жаринов [Содержание]
Строка 156: Строка 156:
  
 Таков пролог нашей истории... :) Таков пролог нашей истории... :)
-====== Содержание ====== +
-Следующие разделы размещены на отдельных страницах;​ дальше идёт только их перечень со ссылками.+
 ===== Вершины и линии схем: смысл — в ГРАФике И Тексте ===== ===== Вершины и линии схем: смысл — в ГРАФике И Тексте =====
-[[Серия_1|Серия 1]]+По идее когнитивной формализации знаний,​ в ШМ графика должна прежде всего удобно вмещать текст (и/или таблицы,​ если они допустимы как содержание вершины некоторого типа). Поэтому из БС-графики заимствуются только такие формы икон и их частей,​ которые и наглядны сами по себе, и удобно и экономично вмещают текст. 
 + 
 +Как следствие,​ по сравнению с блок-схемами некоторые формы блоков получают новые значения (к примеру,​ форма-трапеция – как основа хронизаторов реального времени),​ а другие (скажем,​ ромб) не используются. 
 + 
 +В то же время композиция многофигурных вершин м.б. более стройной,​ если ввести общие законы их построения. Возможны следующие:​ 
 +вертикалей окружения — вводятся условные оси, параллельные шампуру схемы и представляющие совокупные потоки управления процессов,​ взаимодействующих с алгоритмическим процессом,​ описываемым схемой;​ 
 +событийного следования — фигуры в вершине и/или части её содержания упорядочиваются по шампуру в порядке исполнения. 
 + 
 +В части первого нужно раздельно представлять процессы того же исполнителя и процессы его внешней среды; поэтому следует ввести оси по обе стороны шампура;​ фигуры,​ представляющие связь с соответствующей категорией процессов,​ для удобства чтения нужно сделать как по форме направленными на ось, так и по положению смещёнными к ней. 
 + 
 +В части второго предшествующие события представляются фигурами,​ расположенными ближе к началу шампура;​ кроме того, можно использовать уровни глубины,​ если допускать частичное перекрытие фигур в вершине. 
 + 
 +Можно видеть,​ что в ШМ принято единственное правило — располагать фигуры вершины «лесенкой» всегда справа налево и направленные формы фигур направо - более простое,​ но менее информативное. 
 + 
 +Также алфавит БС функционально шире, чем в ДРАКОНе. Блок-схемы предназначены для представления содержания всей программы (в смысле расширенного тезиса Вирта). Поэтому,​ кроме подалфавита импер-части (называемой в БС «схема алгоритма»),​ предусмотрен также подалфавит для деклар-части («схемы данных»). Имеются также средства для представления материальных действий («техпроцессов» по Паронджанову) и структур (актив-части). Однако назначение ДРАКОНа — представлять только императивные знания;​ поэтому остальной алфавит здесь не нужен. 
 + 
 +Важно понимать,​ что графика шампур-схемы представляет лишь часть формализуемого знания о предмете шампур-визуализации. Остальная часть представляется содержанием вершин (и, возможно,​ рёбер). Т.е. за схемой всегда стоит некий целостный язык представления (ЯПЗ), изначально полностью текстовый. Именно на него мы и указываем префиксом. Не принимать во внимание этот язык можно, лишь рассматривая абстрагированные шампур-схемы (литеральные и «слепыши»). Конкретный же графит-язык «гибриден»,​ т.е. образуется «скрещиванием» ЯПЗ с шампур-языком (схем-«слепышей»). При этом часть синтаксиса текстового ЯПЗ представляется графикой вершин и рёбер, а часть — их содержанием (как ещё говорят,​ разметкой графа). Образуется т.н. гибридный язык — который д.б. эквивалентен чисто текстовому. 
 + 
 +Если же мы не указываем ЯПЗ, но считаем,​ что схема конкретная (гибридная) — это лишь значит,​ что мы принимаем для содержания её рёбер и/или вершин синтаксис некоего гибридного ЯПЗ, выбираемого «по умолчанию». Разумно считать таким естественный язык описания деятельности,​ родной для сочинителя (и, конечно,​ читателя) схемы. Однако этот язык для удобства дальнейшей формализации обычно как-то структурируется (ограничивается). Как — покажем при определении лексики языка. 
 + 
 +Далее рассмотрим дракон-алфавит с позиций структурного анализа и синтеза. 
 + 
 +==== Начало азбуки ДРАКОНа-1: вроде, как в БС... да не как в БС ==== 
 + 
 +С учётом определения «от блок-схем» начать,​ конечно,​ стоит с вершин,​ представляющих эквиваленты БС-алфавита. Их определения даны на рисунке ниже. 
 + 
 +{{ :​jazyk:​soobschenija_o_jazyke_i_metode_ischislenija_ikon:​st_drakonsu_-_ocenka_texnojazyka_i_ishm_html_m6dbf46c5.gif?​ |}} 
 + 
 +Видно, что дракон-алфавит богаче БС уже в этой части. Причиной тому в первую очередь разнообразие способов представления ветвлений (т.н. предикатных вершин в терминах блок-схем). 
 + 
 +Для уточнения (расширения) смысла вершины,​ включённой в шампур,​ в шампур-методе используют добавочные вершины-боковики,​ присоединяемые справа и/или слева к вершине,​ находящейся на шампуре (в цепочке следования). Возможность присоединения мы показываем отрезком линии сбоку. Так же показываются точки включения в вертикаль (вход и/или выход[ывершины). 
 + 
 +Возвращаясь от формы к сути, заметим для начала,​ что алфавитные знаки индексируются не так, как в исходном техноязыке. Это связано и с их смысловой группировкой,​ и с тем, что ДРАКОН — лишь один из нужных для визуализации языков. Это следует из упомянутых классификаций — уже в ГРАФИТ-ФЛОКС,​ как было сказано,​ имеется два языка. Поэтому же в текст вершины ''​Заголовок''​ включён префикс языка — каждая схема составляется на одном языке, но языков,​ у потребляемых для описания одного и того же предмета,​ м.б. более одного... Почему - сказано выше в "​Отступлении о языках..."​. 
 + 
 +Далее, в техноязыке принято включать в заголовок имя схемы. По сути, это имя алгоритмического процесса. Имеющего некий внешний контекст,​ в котором он вызывается,​ для чего создаётся собственный контекст процесса. Для указания контекста в техноязыке обычно используют боковики. 
 + 
 +Процесс может и не иметь конца — тогда говорят,​ что он «зацикленный». В техноязыке в этм случае используют специальную форму дракон-схемы,​ которую рассмотрим в другом разделе. 
 + 
 +Возможно,​ что два и более алгопроцессов взаимодействуют друг с другом. Тогда возникает некая организация дракон-схем в систему,​ которую можно назвать "​дракон-моделью"​. Представляемые схемами модели процессы могут находиться либо в отношении «главный-подчинённый» (иерархическая,​ или ранговая модель),​ либо в отношении «партнёров» (одноранговая,​ или диспозитивная модель). По порядку же возникновения всегда существует первичный процесс,​ который для другого данного процесса бывает:​ 
 + 
 + 
 +  * вызывающий — когда данный процесс был вставкой (во вставку во вставку и т.д... - если уровней вызова много) в другой процесс;​ 
 + 
 + 
 +  * «родительский» - когда данный процесс порождён как часть системы т.н. совместно протекающих взаимодействующих процессов (как ещё говорят,​ асинхронных или параллельных — понятие см. в Ч.I, Гл. 6 «Концепций и принципов...» В.Ш. Кауфмана). 
 + 
 +В ранговой модели существует только одна рабочая точка. Она последовательно проходит процессы,​ начиная с первичного вызывающего. Там, где указана вставка другого процесса,​ совершается переход на его схему. Когда эта схема пройдена до конца — переход обратно на место указания вставки. В совокупности эти переходы образуют т.н. переход с возвратом (у Паронджанова также называется «акробатический прыжок»). Первичный процесс здесь понимается как головной. 
 + 
 +Суть асинхронности (параллелизма) — в допущении более чем одной «рабочей точки» для системы процессов. Каждая точка развёртывает свою схему, и при необходимости процессы взаимодействуют. Первичный процесс в этом случае понимается как базовый;​ он может контролировать ход порождённых им процессов и при необходимости «снимать» их — досрочно прекращать исполнение. 
 + 
 +Понятно,​ что в обоих моделях в каждом процессе,​ если он нелинейный,​ проходится один маршрут. Также понятно,​ что в ранговой модели ни один процесс,​ кроме первичного,​ не м.б. «зацикленным». 
 + 
 +В определении действия мы видим повторяющуюся структуру. Хотя бы одно действие всегда записано в вершине;​ но можно записать два и больше. Это удобно для смысловой группировки цепочки действий в одной или более вершинах. При этом считаем,​ что действия выполняются в том порядке,​ как они написаны в вершине. 
 + 
 +Что такое маршруты процесса?​ Это возможные цепочки действий от начала до конца процесса. На дракон-схеме маршрут получается,​ если пройти путь от начала её к концу. Если такой путь м.б. только один, то процесс (и маршрутная структура) //​**линейный**//​. Однако в жизни чаще одного результата можно ( или нужно) достигать разными путями — вспомним о существовании условий решения задачи. Они м.б. начальными (грубо говоря,​ когда стоит начинать процесс и что при этом нужно «принять по умолчанию») и граничными — что нужно соблюдать в процессе решения (возможно,​ когда прекратить процесс,​ не дойдя до результата). 
 + 
 +В //​**нелинейных**//​ процессах и структура маршрута нелинейна. Чтобы её выразить,​ используется прежде всего условный (т.н. предикатный,​ как говорят математики) тип вершин. В условной вершине выбирается один из возможных маршрутов. В техноязыке для этого служит виоп ''​Развилка''​. 
 + 
 +Уточним,​ что в РБНФ-итераторах (как помним из определения РБНФ-метаязыка,​ так называется операция,​ обозначаемая фигурными скобками) N служит обозначением натурального (иногда — целого,​ т.е. включающего и ноль) числа — предела повторений вхождения. Число это каждый раз м.б. разным — на что указывает конкретизирующий индекс при N. 
 + 
 +В нелинейной схеме «самый-самый» по какому-то критерию (или ряду критериев) маршрут удобно принять за **//​главный//​**. В шампур-методе принято,​ что он всегда идёт по прямой — т.е. через главные выходы всех развилок. Как упорядочиваются остальные маршруты — поговорим дальше. 
 + 
 +С использованием двух следующих вершин строится дракон-переключатель — иная форма визуализации условия ветвления. 
 + 
 +Какие конструкции можно строить из этих «кубиков»?​ Чтобы это понять,​ далее рассмотрим следующую группу знаков и конструкций шампур-схем. 
 + 
 +Детальное определение (раскрытие текста действия) фактически вводит три уровня формальности языка. Мы уже их обсудили выше. 
 + 
 +В определении развилки мы снова видим разные уровни формальности. Правда,​ здесь выделены только два, дабы не перегружать читателя подробностями. Однако математический уровень существует — обычно представляется в виде функций исчисления высказываний (т.н. предикатов — откуда и название условных вершин в БС-языке). В практике алгоритмизации пока ещё принято «пропускать» этап выделения условных функций. Но для надёжной (гарантоспособной) формализации он необходим — их формулирование даёт возможность понимать логику формирования маршрутов и проверять её.
  
-----+Понятно,​ что уровни формальности содержания вершин д.б. согласованы в пределах схемы (по крайней мере, законченной). Вряд ли есть смысл для исполнителя информатически строгого (реальной машины или её абстракции типа «машины Тьюринга») в действиях и вопросах,​ представленных как функции и/или неформальные предложения... ;-)
  
 +То же касается и согласования репертуара,​ багажа и реквизита схемы и предполагаемого исполнителя при должном уровне формальности языка.
  
 ==== Азбука ДРАКОНа-1 — сложные схемы и их описание ==== ==== Азбука ДРАКОНа-1 — сложные схемы и их описание ====
ocenka_texnojazyka_i_shampur-metoda.txt · Последние изменения: 2012/05/21 19:43 — Владислав Жаринов