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

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

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

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


vershiny_i_linii_sxem_-_smysl_v_grafike_i_tekste

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
Последняя версия Следующая версия справа и слева
vershiny_i_linii_sxem_-_smysl_v_grafike_i_tekste [2012/04/07 12:43]
Владислав Жаринов [Вершины и линии схем: смысл — в ГРАФике И Тексте]
vershiny_i_linii_sxem_-_smysl_v_grafike_i_tekste [2012/09/09 12:13]
Владислав Жаринов [Начало азбуки ДРАКОНа-1: вроде, как в БС... да не как в БС]
Строка 13: Строка 13:
 В части второго предшествующие события представляются фигурами,​ расположенными ближе к началу шампура;​ кроме того, можно использовать уровни глубины,​ если допускать частичное перекрытие фигур в вершине. В части второго предшествующие события представляются фигурами,​ расположенными ближе к началу шампура;​ кроме того, можно использовать уровни глубины,​ если допускать частичное перекрытие фигур в вершине.
  
-Можно видеть,​ что в ШМ принято единственное правило — располагать фигуры вершины «лесенкой» всегда справа налево и направленные формы фигур направо - более простое,​ но менее информативное.+Можно видеть,​ что в ШМ принято единственное правило — располагать фигуры вершины «лесенкой» всегда справа налево и направленные формы фигур направо - более простое,​ но не использующее информативность графики полностью. 
 + 
 +Имеется в виду, что для графики вершин схем можно выделить ​информативные признаки её расположения: 
 +  * направленность фигур — при наличии шампура существенна в направлении,​ перпендикулярном ему; 
 +  * порядок следования нескольких фигур вершины (в направлении шампура);​ 
 +  * относительная глубина фигур (проявляется,​ если фигуры могут перекрываться).
  
 Также алфавит БС функционально шире, чем в ДРАКОНе. Блок-схемы предназначены для представления содержания всей программы (в смысле расширенного тезиса Вирта). Поэтому,​ кроме подалфавита импер-части (называемой в БС «схема алгоритма»),​ предусмотрен также подалфавит для деклар-части («схемы данных»). Имеются также средства для представления материальных действий («техпроцессов» по Паронджанову) и структур (актив-части). Однако назначение ДРАКОНа — представлять только императивные знания;​ поэтому остальной алфавит здесь не нужен. Также алфавит БС функционально шире, чем в ДРАКОНе. Блок-схемы предназначены для представления содержания всей программы (в смысле расширенного тезиса Вирта). Поэтому,​ кроме подалфавита импер-части (называемой в БС «схема алгоритма»),​ предусмотрен также подалфавит для деклар-части («схемы данных»). Имеются также средства для представления материальных действий («техпроцессов» по Паронджанову) и структур (актив-части). Однако назначение ДРАКОНа — представлять только императивные знания;​ поэтому остальной алфавит здесь не нужен.
Строка 33: Строка 38:
 Для уточнения (расширения) смысла вершины,​ включённой в шампур,​ в шампур-методе используют добавочные вершины-боковики,​ присоединяемые справа и/или слева к вершине,​ находящейся на шампуре (в цепочке следования). Возможность присоединения мы показываем отрезком линии сбоку. Так же показываются точки включения в вертикаль (вход и/или выход[ы] вершины). Для уточнения (расширения) смысла вершины,​ включённой в шампур,​ в шампур-методе используют добавочные вершины-боковики,​ присоединяемые справа и/или слева к вершине,​ находящейся на шампуре (в цепочке следования). Возможность присоединения мы показываем отрезком линии сбоку. Так же показываются точки включения в вертикаль (вход и/или выход[ы] вершины).
  
-Возвращаясь от формы к сути, заметим для начала,​ что алфавитные знаки индексируются не так, как в исходном техноязыке. Это связано и с их смысловой группировкой,​ и с тем, что ДРАКОН — лишь один из нужных для визуализации языков. Это следует из упомянутых классификаций — уже в ГРАФИТ-ФЛОКС,​ как было сказано,​ имеется два языка. Поэтому же в текст вершины ''​Заголовок''​ включён префикс языка — каждая схема составляется на одном языке, но языков,​ у потребляемых для описания одного и того же предмета,​ м.б. более одного... Почему - сказано ​выше в "​Отступлении о языках..."​.+Возвращаясь от формы к сути, заметим для начала,​ что алфавитные знаки индексируются не так, как в исходном техноязыке. Это связано и с их смысловой группировкой,​ и с тем, что ДРАКОН — лишь один из нужных для визуализации языков. Это следует из упомянутых классификаций — уже в ГРАФИТ-ФЛОКС,​ как было сказано,​ имеется два языка. Поэтому же в текст вершины ''​Заголовок''​ включён префикс языка — каждая схема составляется на одном языке, но языков,​ у потребляемых для описания одного и того же предмета,​ м.б. более одного... Почему - сказано ​ранее в "[[http://​drakon.su/​texnojazyk_i_shampur-metod_-_suschnost_preemstvennost_razvitie#​otstuplenieformalizacija_i_jazyki_predstavlenija_znanij|Отступлении о языках...]]".
  
 Далее, в техноязыке принято включать в заголовок имя схемы. По сути, это имя алгоритмического процесса. Имеющего некий внешний контекст,​ в котором он вызывается,​ для чего создаётся собственный контекст процесса. Для указания контекста в техноязыке обычно используют боковики. Далее, в техноязыке принято включать в заголовок имя схемы. По сути, это имя алгоритмического процесса. Имеющего некий внешний контекст,​ в котором он вызывается,​ для чего создаётся собственный контекст процесса. Для указания контекста в техноязыке обычно используют боковики.
Строка 39: Строка 44:
 Процесс может и не иметь конца — тогда говорят,​ что он «зацикленный». В техноязыке в этм случае используют специальную форму дракон-схемы,​ которую рассмотрим в другом разделе. Процесс может и не иметь конца — тогда говорят,​ что он «зацикленный». В техноязыке в этм случае используют специальную форму дракон-схемы,​ которую рассмотрим в другом разделе.
  
-Возможно,​ что два и более алгопроцессов взаимодействуют друг с другом. Тогда возникает некая организация дракон-схем в систему,​ которую можно назвать "​дракон-моделью"​. Представляемые схемами модели процессы могут находиться либо в отношении «главный-подчинённый» (иерархическая,​ или ранговая модель),​ либо в отношении «партнёров» (одноранговая,​ или диспозитивная модель). По порядку же возникновения всегда существует первичный процесс,​ который для другого данного процесса бывает:​+Возможно,​ что два и более алгопроцессов взаимодействуют друг с другом. Тогда возникает некая организация дракон-схем в систему,​ которую можно назвать "​дракон-моделью"​. Представляемые схемами модели процессы могут находиться либо в отношении «главный-подчинённый» (иерархическая,​ или ​//ранговая// модель),​ либо в отношении «партнёров» (одноранговая,​ или ​//диспозитивная// модель). По порядку же возникновения всегда существует ​//первичный// процесс,​ который для другого данного процесса бывает:​
  
  
Строка 45: Строка 50:
  
  
-  * «родительский» - когда данный процесс порождён как часть системы т.н. совместно протекающих взаимодействующих процессов (как ещё говорят,​ асинхронных или параллельных — понятие см. в Ч.I, Гл. 6 «Концепций и принципов...» В.Ш. Кауфмана).+  * «родительский» - когда данный процесс порождён как часть системы т.н. совместно протекающих взаимодействующих процессов (как ещё говорят,​ асинхронных или параллельных — понятие см. в [[http://​drakon.su/​biblioteka/​start#​knigi|Ч.I, Гл. 6 «Концепций и принципов...»]] В.Ш. Кауфмана).
  
-В ранговой модели существует только одна рабочая точка. Она последовательно проходит процессы,​ начиная с первичного вызывающего. Там, где указана вставка другого процесса,​ совершается переход на его схему. Когда эта схема пройдена до конца — переход обратно на место указания вставки. В совокупности эти переходы образуют т.н. переход с возвратом (у Паронджанова также называется «акробатический прыжок»). Первичный процесс здесь понимается как головной.+В //**ранговой**// модели существует только одна рабочая точка. Она последовательно проходит процессы,​ начиная с первичного вызывающего. Там, где указана вставка другого процесса,​ совершается переход на его схему. Когда эта схема пройдена до конца — переход обратно на место указания вставки. В совокупности эти переходы образуют т.н. переход с возвратом (у Паронджанова также называется «акробатический прыжок»). Первичный процесс здесь понимается как головной.
  
-Суть асинхронности (параллелизма) — в допущении более чем одной «рабочей точки» для системы процессов. Каждая точка развёртывает свою схему, и при необходимости процессы взаимодействуют. Первичный процесс в этом случае понимается как базовый;​ он может контролировать ход порождённых им процессов и при необходимости «снимать» их — досрочно прекращать исполнение.+В //​**диспозитивной**//​ модели суть асинхронности (параллелизма) — в допущении более чем одной «рабочей точки» для системы процессов. Каждая точка развёртывает свою схему, и при необходимости процессы взаимодействуют. Первичный процесс в этом случае понимается как базовый;​ он может контролировать ход порождённых им процессов и при необходимости «снимать» их — досрочно прекращать исполнение.
  
-Понятно,​ что в обоих моделях в каждом процессе,​ если он нелинейный,​ проходится один маршрут. Также понятно,​ что в ранговой модели ни один процесс,​ кроме первичного,​ не м.б. «зацикленным».+Понятно,​ что в обоих моделях в каждом процессе,​ если он нелинейный,​ проходится один маршрут. Также понятно,​ что в ранговой модели ни один процесс,​ кроме первичного,​ не м.б. «зацикленным». Взаимодействие же в диспозитивной модели м.б. как //​прямым//​ - через управление ходом процесса,​ так и //​опосредованным//​ - через передачи чего-либо или использование в условиях одного процесса величин,​ на значения которых могут влиять другие процессы.
  
 В определении действия мы видим повторяющуюся структуру. Хотя бы одно действие всегда записано в вершине;​ но можно записать два и больше. Это удобно для смысловой группировки цепочки действий в одной или более вершинах. При этом считаем,​ что действия выполняются в том порядке,​ как они написаны в вершине. В определении действия мы видим повторяющуюся структуру. Хотя бы одно действие всегда записано в вершине;​ но можно записать два и больше. Это удобно для смысловой группировки цепочки действий в одной или более вершинах. При этом считаем,​ что действия выполняются в том порядке,​ как они написаны в вершине.
Строка 61: Строка 66:
 Уточним,​ что в РБНФ-итераторах (как помним из определения РБНФ-метаязыка,​ так называется операция,​ обозначаемая фигурными скобками) N служит обозначением натурального (иногда — целого,​ т.е. включающего и ноль) числа — предела повторений вхождения. Число это каждый раз м.б. разным — на что указывает конкретизирующий индекс при N. Уточним,​ что в РБНФ-итераторах (как помним из определения РБНФ-метаязыка,​ так называется операция,​ обозначаемая фигурными скобками) N служит обозначением натурального (иногда — целого,​ т.е. включающего и ноль) числа — предела повторений вхождения. Число это каждый раз м.б. разным — на что указывает конкретизирующий индекс при N.
  
-В нелинейной схеме «самый-самый» по какому-то критерию (или ряду критериев) маршрут удобно принять за **//​главный//​**. В шампур-методе принято,​ что он всегда идёт по прямой — т.е. через главные выходы всех развилок. Как упорядочиваются остальные маршруты — поговорим дальше.+В нелинейной схеме «самый-самый» по какому-то критерию (или ряду критериев) маршрут удобно принять за **//​главный//​**. В шампур-методе принято,​ что он всегда идёт по прямой — т.е. через главные выходы всех развилок. Как упорядочиваются остальные маршруты — поговорим дальше ​(в [[http://​drakon.su/​uporjadochenie_marshrutov_-_chem_pravee_tem..._pridumaj_sam|этой статье]]).
  
 С использованием двух следующих вершин строится дракон-переключатель — иная форма визуализации условия ветвления. С использованием двух следующих вершин строится дракон-переключатель — иная форма визуализации условия ветвления.
Строка 203: Строка 208:
  
 Для верхней всё не столь тривиально — но это имеет смысл рассмотреть отдельно для различных случаев употребления. Не забывая,​ как обычно,​ о тексте... Для верхней всё не столь тривиально — но это имеет смысл рассмотреть отдельно для различных случаев употребления. Не забывая,​ как обычно,​ о тексте...
 +
 +В целом случаи определяются логикой выбора выходов верхней гребёнки. Она возможна по И, ИЛИ, Исключающему ИЛИ.
 +
 +Как известно,​ такой выбор подчиняется одной из стратегий:​
 +
 +  * «ленивой» — условия выбора вычисляются последовательно;​
 +  * «усердной» - вычисляются все условия (м.б. одновременно).
 +  ​
 +Любая стратегия требует правил вычисления и отбора результатов. ​ При «лени-
 +вой» устанавливается порядок просмотра входов,​ который завершается при числе ​
 +вариантов,​ допустимом по смыслу узла. При «усердной» выбирается столько ва-
 +риантов,​ сколько допустимо по смыслу узла (случайно или по к.-л. критериям).
  
 Конечно,​ содержание вершин и/или линий не всегда нужно учитывать. Поэтому дальше мы будем использовать и абстрактные схемы («слепыши»). Конечно,​ содержание вершин и/или линий не всегда нужно учитывать. Поэтому дальше мы будем использовать и абстрактные схемы («слепыши»).
  
-Итак, мы кое-что знаем о визуализации разветвляющихся и циклических конструкций алгоритмов. А какие конструкции нужно строить?​ По теории алгоритмов,​ любой алгопроцесс можно построить из структур следования (цепочек вершин типа действия) и циклов. Менее строго можно допустить ветвления. На сей счёт была доказана т.н. теорема Б<​о|ё>​ма-Джакопини. Интересующиеся могут найти её в[[http://www.ozon.ru/context/​detail/​id/​3056680/|этой ​книге]] (как можно видеть,​ мы для примера применили РБНФ к «обыденному») тексту — чтобы указать на разночтение имени одного из соавторов :-)).+Итак, мы кое-что знаем о визуализации разветвляющихся и циклических конструкций алгоритмов. А какие конструкции нужно строить?​ По теории алгоритмов,​ любой алгопроцесс можно построить из структур следования (цепочек вершин типа действия) и циклов. Менее строго можно допустить ветвления. На сей счёт была доказана т.н. теорема Б<​о|ё>​ма-Джакопини. Интересующиеся могут найти её в[[http://drakon.su/biblioteka/start#knigi|книге ​С.З. Свердлова]] (как можно видеть,​ мы для примера применили РБНФ к «обыденному») тексту — чтобы указать на разночтение имени одного из соавторов :-)).
  
 Такое предпочтение циклам не случайно и в плане сложности описания. В самом деле, можно сказать что «цикл — это способ записать меньше,​ чем на самом деле будет сделано» (написали в теле одну цепочку команд — а выполнится она столько раз, сколько нужно). Тогда как «ветвление — способ записать больше,​ чем будет сделано» (написали и такую цепочку,​ и такую — а выполнится каждый раз только одна). Такое предпочтение циклам не случайно и в плане сложности описания. В самом деле, можно сказать что «цикл — это способ записать меньше,​ чем на самом деле будет сделано» (написали в теле одну цепочку команд — а выполнится она столько раз, сколько нужно). Тогда как «ветвление — способ записать больше,​ чем будет сделано» (написали и такую цепочку,​ и такую — а выполнится каждый раз только одна).
vershiny_i_linii_sxem_-_smysl_v_grafike_i_tekste.txt · Последние изменения: 2012/09/09 12:16 — Владислав Жаринов