DRAKON.SU
https://forum.drakon.su/

01. Просто о Силуэте
https://forum.drakon.su/viewtopic.php?f=142&t=4148
Страница 1 из 2

Автор:  ==== [ Понедельник, 12 Ноябрь, 2012 20:46 ]
Заголовок сообщения:  01. Просто о Силуэте

В схемах широко применяется "линия групповой связи" по ГОСТ 2.721-74 "ОБОЗНАЧЕНИЯ УСЛОВНЫЕ ГРАФИЧЕСКИЕ В СХЕМАХ" таблица 6в. Смотрит http://www.docload.ru/Basesdoc/4/4604/index.htm.

Применение линии групповой связи наиболее знакомо по электрическим схемам.
В Драконе схема Силуэт построена с использованием линии групповой связи в петле Силуэта, с обозначением входящих линий иконами Ветка и Адрес в разрыве линий в соответствии с таблицей 6в 1.Примечания 3.б).
Происходит графическое разветвление (слияние) линий связи в линию групповой связи.

Таким образом в Силуэте петля представляет не 1-у связь, а объединение не связанных связей.
Соответственно не правомерно применять к Силуэту схемы Ашкрофта-Манна и по той причине, что в Силуэте нет переменной i и связанной с ней логики. Схему Силуэт В.Д. Пароджанов поясняет схемой Ашкрофта-Манна на рисунке 186 в книге "Дружелюбные алгоритмы ...", в чем нет необходимости.

По выше указанной причине так же нет необходимости интерпретировать схему Силуэт автоматом. Смотрите тему ""Силуэт", автомат или нет?" http://forum.oberoncore.ru/viewtopic.php?p=17248#p17248.

Для примера, нет автомата в программной реализации схемы Силуэт в сообщении http://forum.oberoncore.ru/viewtopic.php?p=75824#p75824.

Отказ от схемы Ашкрофта-Манна и использование линии групповой связи значительно упрощает обоснование языка Дракон, упрощает его понимание, соответствует общепринятой терминологии закрепленной в стандартах.

Рассуждения В. Жаринова об "автоматности" здесь являются надуманными.

Автор:  Дмитрий_ВБ [ Вторник, 13 Ноябрь, 2012 09:10 ]
Заголовок сообщения:  Re: 01. Просто о Силуэте

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

Автор:  Владимир Паронджанов [ Вторник, 13 Ноябрь, 2012 10:19 ]
Заголовок сообщения:  Re: 01. Просто о Силуэте

Дмитрий_ВБ писал(а):
понятие "силуэт" шире понятия "автомат", но силуэт может выполнять и функцию автомата, если это будет нужно прогрммисту.
Согласен

Автор:  ==== [ Вторник, 13 Ноябрь, 2012 18:19 ]
Заголовок сообщения:  Re: 01. Просто о Силуэте

Владимир Даниелович, я вас так понял:
Вы согласны с Дмитрий_ВБ в части атоматности Силуэта и
не имеете возражений относительно
Цитата:
В Драконе схема Силуэт построена с использованием линии групповой связи в петле Силуэта, с обозначением входящих линий иконами Ветка и Адрес в разрыве линий в соответствии с таблицей 6в 1.Примечания 3.б).
Происходит графическое разветвление (слияние) линий связи в линию групповой связи.
...
Соответственно не правомерно применять к Силуэту схемы Ашкрофта-Манна и по той причине, что в Силуэте нет переменной i и связанной с ней логики.


Сам Дмитрий_ВБ пишет, с чем В.Д. Пароджанов соглашается
Цитата:
силуэт может выполнять и функцию автомата, если это будет нужно прогрммисту.
отсюда следует, если программисту нужен автомат то, он составляет Дракон схему Силуэт алгоритма автомата, а если программисту не нужен автомат, он составляет Дракон схему Силуэт алгоритма не являющегося автоматом.

Отсюда следует то, что для Силуэта отображение автомата является частным случаем и не является обязательным свойством.

Программирование по определению Грисса является целенаправленной деятельностью.


Владимир Даниелович, спасибо за поддержку применения ГОСТ 2.721-74 в части трактовки линии групповой связи, как основы схемы Силуэт.

Автор:  Владислав Жаринов [ Среда, 14 Ноябрь, 2012 10:37 ]
Заголовок сообщения:  Re: 01. Просто о Силуэте

Геннадий Николаевич совершенно прав насчёт "петли силуэта". Что получается, если её буквально трактовать по ГОСТ, как раз показано в этой статье (во второй части). Т.е. раз упрощаем сбор/расщепление веток до "гребёнок", как в переключателе - должны заложить условный выбор. Которого там на самом деле нет, а есть БП на метки - что показано на схеме в этом пункте.
Всё думал, когда же кто-нибудь на это же укажет... :)

Насчёт автоматности - слишком непределённое замечание, не ясно, к чему претензии. Если к сказанному о необходимости что-то делать с веточными соединителями при трансляции в структурный код - то в той же статье (в начале) по схемам можно понять, почему... Из сказанного Дмитрием_ВБ в этом посте, кстати, тоже...

Автор:  Владислав Жаринов [ Четверг, 15 Ноябрь, 2012 01:30 ]
Заголовок сообщения:  Просто о "петле силуэта" :)

Насчёт интерпретации "петли силуэта" (как частного случая схемного кросса - наряду с шинами ЕСКД-типа), если чуть подробнее и всё-таки принимая во внимание смысл, то можно добавить вот что.

1. Силуэтный кросс - действительно пул связей между веточными соединителями Адрес и Имя. И графическое кодирование его гребёнкой (подразумевающей "точки распайки") - да, вряд ли можно считать правомерным. В остальном же выбор обозначения для этого пула не так прост. Дело в том, что в электрических схемах (вообще материальных систем) все связи в шине (линии групповой связи) или любая их совокупность предполагаются актуальными одновременно. Тогда как силуэт - пример схемы "идеальной системы". И тут смысл в том, что актуальна одновременно одна связь - по которой переходим от "выходного разъёма" (Адрес) на "входной" (Имя) в порядке исполнения (чтения схемы) алгоритма. Вот хорошо бы как-то это представлять...
    Для себя давно принял решение - тонкие линии для такого случая сохранить, но силуэтные разъёмы ставить прямо на "питание" и "землю" (верхнюю и нижнюю горизонтали - в лист-силуэте они же левая и правая). Тем самым они скрывают "точки распайки", не акцентируя на них внимание. Но это, безусловно, паллиатив.
    Тем более, что когда "лист-схема" представляет систему связей материала (понятий) - она, по сути, становится сетью. Т.е. по смыслу ничем не отличается от материальных схем - и также требует явной шины. Каковая и употребляется (по недавно представленному "графитолковому словарю" читатель мог в этом убедиться).
Замечу, что в реальных ЕСКД-схемах также встречаются "гребёнки" в шинах (т.е. связи "не один к одному") - только неявные. Когда под одним номером связи числится более двух отводов от линии групповой связи. В т.ч. два и более входных (раздача наполнения связи) и два и более выходных ("монтажное И/ИЛИ"). Имеются в виду не "общий провод" и "уровень питания" - а именно сигнальные связи, где наполнение произвольное, динамическое. Особенно это заметно, когда надо такую схему к трассировке готовить... :) М.б. это даже нарушение ГОСТ - в такие детали не вникал.

2. Укладка в кросс по правилам "петли силуэта" также подразумевает единое направление ведения связей (по стрелке силуэта). Это приводит к тому, что и связи, по определению направленные "по шампуру", - т.е. представляющие следование, но с разрывом для силуэтной укладки на плоскости - зрительно кодируются как "зацикленные" (из-за общего ШМ-толкования стрелки как указывающей направление "против шампура"). Это и связи по главному маршруту силуэта (всегда следование), и те связи по побочным выходам неконечных веток, которые ведут также не на конечную ветку (следование или зацикливание - определяется из условий, обсуждавшихся здесь: viewtopic.php?p=70770#p70770). Отсюда и необходимость специально обозначать именно те связи от побочных выходов неконечных веток, которые дают цикл: viewtopic.php?p=73652#p73652.
    Тем не менее единое направление ведения связей субъективно довольно удобно для чтения схемы с шинами. Поэтому принял его для графит-сетей - а "зацикленность" снимается за счёт того, что стрелка ведения входит в замкнутый контур. Т.е. появляется новый вариант графического кодирования - который можно специально интерпретировать в графит-правилах.

3. О том, шире ли силуэт автомата. Да, конечно - связность по веточным соединителям ведь ограничена только "нарезкой" изоморфного примитива на ветки так, чтобы вход в каждую из них был единственным, и запретом связей иначе, чем на такой вход с выхода ветки. Потому и соединители эти имеют императивную семантику goto - только слегка ограниченную вышесказанным. Так что можно представить в принципе любые структуры управления, реализуемые на машине, описанной фон Нейманом - знай себе выбирай точки деления да раскидывай цепочки следования по веткам... :) В частности, любые переходы, возможные в таком автокоде, как ФОРТРАН... структуры управления которого (особенно в Ф-66) м.б. весьма далеки как от автоматных, так и вообще от любых, сколько-нибудь упорядочивающих представление о потоке управления (особенно замечательны дополнительные входы, кои м.б. полностью "абстрагированы" от состояния исполнения - не то, что задачные в Аде)... :wink:
Тут вспомним, что силуэт ведь использовался, в частности, для схемного представления текстовой записи потока управления на одном из диалектов ФОРТРАНа... а м.б. и был создан изначально для этого (из сказанного здесь это неясно)...

Автор:  Владимир Паронджанов [ Пятница, 23 Ноябрь, 2012 22:16 ]
Заголовок сообщения:  Re: 01. Просто о Силуэте

Уважаемый Геннадий Николаевич!

Большое спасибо за то, что Вы открыли эту тему.

1. Благодаря этому Дмитрий Владимирович Барановский сформулировал чрезвычайно важное утверждение:
Дмитрий_ВБ писал(а):
Понятие "силуэт" шире понятия "автомат", но силуэт может выполнять и функцию автомата, если это будет нужно программисту.

2. Хочу напомнить, что ранее Дмитрий Барановский предложил еще один важный термин «Силуэтное программирование».

3. «Силуэтное программирование» — это новая парадигма программирования.

Геннадий Тышов писал(а):
Сам Дмитрий_ВБ пишет, с чем В.Д. Паронджанов соглашается
Цитата:
силуэт может выполнять и функцию автомата, если это будет нужно прогрммисту.
отсюда следует, если программисту нужен автомат то, он составляет Дракон схему Силуэт алгоритма автомата, а если программисту не нужен автомат, он составляет Дракон схему Силуэт алгоритма не являющегося автоматом.

Да, это правильно. Причем ИС Дракон поддерживает обе эти функции силуэта.

Геннадий Тышов писал(а):
Владимир Даниелович, я вас так понял:
Вы не имеете возражений относительно:
Цитата:
В Драконе схема Силуэт построена с использованием линии групповой связи в петле Силуэта, с обозначением входящих линий иконами Ветка и Адрес.
Происходит графическое разветвление (слияние) линий связи в линию групповой связи.

Да, я согласен, что рамку силуэт можно трактовать как линию групповой связи. Это безусловно правильно. Но… важно ли это? Мне кажется, что это не очень важно.

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

Но большинство программистов ничего не знают о линиях групповой связи. И преподаватели курсов программирования вряд ли будут знакомить студентов с «линиями групповой связи».

Иное дело метод Ашкрофта-Манны. Это фундаментальный результат, во многом объясняющий суть силуэта как математической конструкции.

Геннадий Тышов писал(а):
не правомерно применять к Силуэту схемы Ашкрофта-Манна по той причине, что в Силуэте нет переменной i и связанной с ней логики.
Не могу с Вами согласиться. Да, действительно, в силуэте нет переменной состояния i. Но! Переменная состояния i легко (и математически строго) преобразуется в имена веток (адресов). Это легко можно проверить.

Как это можно проверить?

Очень просто. Прочитайте 12 страниц, проверьте все математические выкладки. Сравните их с преобразованиями дракон-схемы силуэт. Эти 12 страниц показывают, каким образом переменная состояния i превращается в стандартные переменные силуэта.

Глава 35. Метод Ашкрофта-Манны и алгоритмическая структура «силуэт» стр. 436–448

http://drakon.su/_media/biblioteka/chas ... drakon.pdf

Автор:  Дмитрий_ВБ [ Пятница, 11 Январь, 2013 15:15 ]
Заголовок сообщения:  Re: 01. Просто о Силуэте

Набросал для примера граф переходов (не связанный с каким-либо реальным алгоритмом)
Вложение:
graf.JPG
graf.JPG [ 54.92 КБ | Просмотров: 22304 ]

Вот таблица переходов для этого графа:
Код:
сост.     переходы
------------------------------
Начало     1
 1         2, 5, 7, 10, Конец
 2         3, 9, Конец
 3         4, 8, Конец
 4         5, 7, Конец
 5         1, 6, 8, 10, Конец
 6         1, 3, 7, 9, 10, Конец
 7         4, 8, Конец
 8         3, 6, 9, Конец
 9         2, 5, 10, Конец
10         1, 3, 5, 7, Конец
Конец

Соответствующий этому графу переходов силуэт выглядит так:
Вложение:
siluet.JPG
siluet.JPG [ 132.42 КБ | Просмотров: 22304 ]


А теперь вопрос: можно ли считать корректным для языка ДРАКОН приводимый ниже силуэт,
если считать, что адрес перехода определяется внутри блока условия переключателей
(и поэтому заголовки блока переключателей не нужны) ?
Вложение:
siluet2.JPG
siluet2.JPG [ 97.86 КБ | Просмотров: 22304 ]

Автор:  Владислав Жаринов [ Пятница, 11 Январь, 2013 15:47 ]
Заголовок сообщения:  Re: 01. Просто о Силуэте

А что Вас смущает?
В "исчислении слепышей с межстраничными соединителями веток" фактически корректность переходов по соединителям определяется только выражениями, данными на этом рисунке (прежде всего в надписях между схемами). В тезисах этого, конечно, нет, но есть же здравый смысл... :wink:
У Вас как раз наглядно видно, что значения "переменной силуэта" - это енум из индексов веток (адресов силуэтных goto)...

Автор:  Ильченко Эдуард [ Пятница, 11 Январь, 2013 22:59 ]
Заголовок сообщения:  Re: 01. Просто о Силуэте

Дмитрий_ВБ писал(а):
А теперь вопрос: можно ли считать корректным для языка ДРАКОН приводимый ниже силуэт,
если считать, что адрес перехода определяется внутри блока условия переключателей
(и поэтому заголовки блока переключателей не нужны) ?

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

Автор:  Дмитрий_ВБ [ Суббота, 12 Январь, 2013 23:28 ]
Заголовок сообщения:  Re: 01. Просто о Силуэте

Еще один вопрос:
Какой из трех силуэтов визуально воспринимается лучше ?
(пояснение:
все 3 силуэта отображают логику одной и той же процедуры из файла u_files.pas текущей версии программы dalvjaz2
от 4.12.12; в логике этой процедуры уровень для логической структуры процедуры соответствует отступу в структурированном
исходном коде программы)

Интересно что 3-й силует фактически выполняет роль просмотрщика текста процедуры, разбитого на следующие
друг за другом логические фрагменты, при помощи горизонтальной полосы прокрутки.

Вложение:
shema1.jpg
shema1.jpg [ 328.62 КБ | Просмотров: 22249 ]

Вложение:
shema2.jpg
shema2.jpg [ 237.15 КБ | Просмотров: 22249 ]

Вложение:
shema3.jpg
shema3.jpg [ 212.16 КБ | Просмотров: 22249 ]

Автор:  Владислав Жаринов [ Понедельник, 14 Январь, 2013 04:01 ]
Заголовок сообщения:  Re: 01. Просто о Силуэте

Третий... :)
А лучше всего воспринимался бы тот четвёртый (которого здесь нету :wink:), где:
    * все условия были бы представлены развилками - т.е. цепочки следования состояли бы только из действий;
    * развилки внутри ЦС-ветви шли бы "полуторамерно" (как на алгосхемах в этом примере и как описано здесь: viewtopic.php?p=73919#p73919);
    * действия при следовании были бы типизированы, что отражалось бы в графике их вершин.

Разные организации развилок отражают (хотя бы укрупнённо) подразделение пространства состояний процесса, о чём говорилось, в частности, здесь: viewtopic.php?p=76065#p76065.

Действия типизируются, как показано здесь: viewtopic.php?p=77108#p77108.

Автор:  Владислав Жаринов [ Понедельник, 14 Январь, 2013 05:57 ]
Заголовок сообщения:  Re: 01. Просто о Силуэте

Да, вспомнил, к чему ещё мысли Дмитрия. Есть вот такая книга: http://www.ozon.ru/context/detail/id/4611214/. Там автор утверждает, что для сеть-графика есть предел насыщения дугами. После чего каждая новая дуга будет идти уже не так, как думает сочинитель... :)

Автор:  Дмитрий_ВБ [ Пятница, 18 Январь, 2013 09:03 ]
Заголовок сообщения:  Re: 01. Просто о Силуэте

Привожу свое сообщение, скопированное из темы Пересмотр терминологии ДРАКОН-а,
Четверг, 17 Январь, 2013 18:28
------------------------------------------------------------------------------------------
Википедия: Силуэт - ограниченное контуром отображение чего-либо ...

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

А что касается всяких "икон", "шампуров", "лиан" - то тут я с Алексеем Донским согласен,
ну не технические это термины, да и в быту они используются совсем в других контекстах,
чем предлагает Владимир Даниелович.

Но вопрос в другом - в перечисленных плюсах и минусах "силуэта", буду называть так,
потому что это название на форуме уже устоялось.

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

И у Алексея Донского минусов больше чем плюсов.
Значит все, пиши пропало ? Но ведь люди почему-то заинтересовались.

Я думаю потому, что "силуэт" - это пробный шаг к переходу от вертикального способа просмотра
информации к горизонтальному. А саккады (непроизвольные движения глаз) являются главным
образом горизонтальными.
Так что переход к горизонтальному способу просмотра информации с точки зрения эргономики
представляется вполне оправданным - осталось только найти удобную форму отображения
информации. Возможно такой формой (в одном из его вариантов) силуэт и является.
-----------------------------------------------------------------------

А теперь пример на просмотр текста при помощи горизонтальной полосы прокрутки:
Вложение:
saltan.jpg
saltan.jpg [ 329.78 КБ | Просмотров: 22155 ]

Автор:  Владислав Жаринов [ Пятница, 18 Январь, 2013 09:54 ]
Заголовок сообщения:  Re: 01. Просто о Силуэте

Можно и так... только автоматически возникает конфликт с направлением чтения текста "по-европейски"... :) Неструктурированный текст мы читаем, как читаем... а вот если ограничиться "информатически строгим" (программой/инструкцией, только в всей полноте)... и довести его структуризацию до уровня ПЕКАНа: viewtopic.php?p=68848#p68848 (а лучше с учётом сказанного здесь: viewtopic.php?p=72538#p72538)... то тогда можно предложить читателю новые правила чтения... Но и это - только гипотеза... подлежащая проверке...

Автор:  Дмитрий_ВБ [ Пятница, 18 Январь, 2013 10:03 ]
Заголовок сообщения:  Re: 01. Просто о Силуэте

Владислав Жаринов писал(а):
Можно и так... только автоматически возникает конфликт с направлением чтения текста "по-европейски"... :)

Это проблемы европейцев
Цитата:
Неструктурированный текст мы читаем, как читаем... а вот если ограничиться "информатически строгим" (программой/инструкцией, только в всей полноте)

см. мой пост от 13 января, силуэты 1-3
Цитата:
... и довести его структуризацию до уровня ПЕКАНа: viewtopic.php?p=68848#p68848 (а лучше с учётом сказанного здесь: viewtopic.php?p=72538#p72538)... то тогда можно предложить читателю новые правила чтения... Но и это - только гипотеза... подлежащая проверке...

... а дальше будет видно, если будут свободное время и желание.

Автор:  Владислав Жаринов [ Пятница, 18 Январь, 2013 10:08 ]
Заголовок сообщения:  Re: 01. Просто о Силуэте

Так там именно программный текст представлен...

Автор:  Дмитрий_ВБ [ Четверг, 24 Январь, 2013 11:41 ]
Заголовок сообщения:  Re: 01. Просто о Силуэте

Возвращаяюсь к моим постам от 13 и 18 января:

viewtopic.php?f=62&t=4148&p=77304#p77080
viewtopic.php?f=62&t=4148&p=77304#p77297

Из них следуют следующие вопросы:

1) какая плотность представления информации на визуальной схеме является
оптимальной ?
под плотностью информации на схеме я имею в виду отношение площади
информационных блоков схемы к площади всего пространства схемы;

2) какая степень детализации алгоритма является оптимальной для визуальной схемы ?

3) должна ли визуальная схема по высоте обязательно целиком помещаться в окне просмотра ?
(в контексте перехода от вертикального просмотра информации к горизонтальному - кстати,
на сайтах, посвященных веб-программированию, можно встретить такие вот цитаты:

I think there a lot of unexplored design ideas available with the horizontal scroll layout.)

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


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

Автор:  Владимир Паронджанов [ Четверг, 24 Январь, 2013 14:12 ]
Заголовок сообщения:  Re: 01. Просто о Силуэте

Дмитрий_ВБ писал(а):
понятие "силуэт" шире понятия "автомат", но силуэт может выполнять и функцию автомата, если это будет нужно программисту.

Дмитрий Владимирович, это исключительно важное утверждение.
К сожалению, оно слишком краткое. Надо тщательно и всесторонне осветить вопрос. Потому что (для многих) это сложная и не до конца ясная проблема.

Желательно провести глубокое исследование вопроса и детально выявить отличие понятий СИЛУЭТ и АВТОМАТ.

Наилучший способ для этого — открыть специальную тему под названием «Силуэт и автомат. В чем разница?».

Было бы замечательно, если бы Вы согласились стать автором темы и исследователем этой удивительно интересной проблемы, которую именно Вы открыли и впервые сформулировали.

Автор:  Дмитрий Дагаев [ Четверг, 24 Январь, 2013 14:52 ]
Заголовок сообщения:  Re: 01. Просто о Силуэте

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

Уже было: http://forum.oberoncore.ru/viewtopic.php?f=62&t=1085

Но автоматом не обойдемся, нужно рассматривать ограниченные сети Петри.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/