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

Язык ДРАКОН и Data Definition Language
https://forum.drakon.su/viewtopic.php?f=233&t=5931
Страница 1 из 7

Автор:  Владимир Паронджанов [ Понедельник, 24 Октябрь, 2016 10:44 ]
Заголовок сообщения:  Язык ДРАКОН и Data Definition Language

Данная тема создана по предложению Владимира Arhat109

В сообщении viewtopic.php?f=62&t=5671&p=99024#p99024 Arhat109 писал(а):
Скоро возникнет вопрос "как отображать в ДРАКОН описания данных?" .. там это решено достаточно своеобразно, но подход мне понравился: разный тип данных формируется "стыкующимися" концами графических элементов, так что в оператор присваивания целому вставить вещественное значение - никак, "стенки не сопрягаются".

В какой теме есть смысл обсуждать язык DDL для ДРАКОН?

Визуально мы имеем: форму блока, цвет его заполнения и соединительные линии, которые тоже можно изображать по-разному графически. Надо отражать (скажем для "С"): "тип" имени в широком смысле (void, (*), enum, char, int, float, (un)signed, struct, union, class, function), "множественность/счетность" имени (array), права доступа (private - public), класс контекста действия (глобальный, файловый, локальный статический, динамический, временно-стековый ..) и т.д. как-бы выразительных форм только графики икон - явно недостаточно, но есть же ещё и текст и его оформление .. Что-то можно наследовать неявно, как и делается во многих ЯВУ, фактом или местом определения имени...

Вот где это есть смысл запостить/переместить, чтобы обсудить или посмотреть на готовые предложения? Поделитесь ссылками, если уже есть что-то готовое.

Автор:  Arhat109 [ Вторник, 25 Октябрь, 2016 14:36 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Data Definition Language

Пасибки. Надеюсь тема не умрет, так и не начавшись. Давайте начну задавать вопросы:

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

Автор:  adva [ Вторник, 25 Октябрь, 2016 18:12 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Data Definition Language

Arhat109 писал(а):
Соответственно, надо как-то визуально выделять декларирование данных от описания алгоритма. Как это сделать лучше всего?

Мне советовали для данных использовать ERIL, но у меня пока тема заглохла, на неопределенный период, поэтому хорош он или нет, не скажу. Автор утверждает, что очень удобен. Ермакову тоже вроде как понравился. Попробуй.

Автор:  Arhat109 [ Пятница, 28 Октябрь, 2016 08:32 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Data Definition Language

Если есть ссылка, поделитесь пожалуйста. Я как-то ничего не нашел про ERIL как языка описания данных, кроме поста на этом форуме с удаленной ссылкой на описание.

Автор:  adva [ Пятница, 28 Октябрь, 2016 08:51 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Data Definition Language

Вот-тут:

viewtopic.php?p=86045#p86045

Автор:  Александр Ильин [ Пятница, 28 Октябрь, 2016 11:00 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Data Definition Language

https://en.wikipedia.org/wiki/ERIL

Автор:  Arhat109 [ Пятница, 28 Октябрь, 2016 11:54 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Data Definition Language

Спасибки. А мне вот на текст ERIL wikipedia вывалилось что-то про финский .. :)

P.S. Только в статье нет ничего вразумительного, кроме отсылок к .. ДРАКОН и Степану Митькину. :(

P.P.S.
adva
, спасибо за ссылку, почитал форум и скачал zip с русским описанием. В целом, это очень похоже на ДРАКОН и, как самостоятельный язык (на отдельных листах), наверное интересно. Но меня сейчас интересует практическое встраивание описания данных в ДРАКОН-схемы по принципу Lego-scratches или Ardublock. В смысле на одном листе схемы.

Что-то подобное я уже пробовал рисовать "для себя" (с UML немного знаком), но уже писал - получается каша.

Автор:  Arhat109 [ Пятница, 28 Октябрь, 2016 12:22 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Data Definition Language

Кстати, в русскоязычном переводе указано что одиночная стрелка используется для а) указания ОДНОНАПРАВЛЕННОЙ связи и б) указания ОТНОШЕНИЯ наследования .. это так и должно быть или это разные стрелки? В частности там на одном рисунке использована закрашенная стрелка, а на другом нет. Или закраска стрелки и есть "различие"?

Автор:  Arhat109 [ Пятница, 28 Октябрь, 2016 13:00 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Data Definition Language

Поясню то, что меня интересует сейчас картинкой:

Так выглядит описание и использование переменных в программах на Ardublock сейчас. Оно красочно, но принцип охватываемых блоков вместо стрелок ДРАКОН и его икон - не настолько нагляден.
Я хочу научить Ardublock рисовать элементы в ДРАКОН-стиле и, используя уже готовый кодогенератор Ардублока получать программы в Ардуино ИДЕ.

Вопрос относительно этой картинки формулируется так: как встроить в ДРАКОН описание и использование переменных, хотя бы простых?

Вложения:
ArdublockVars1.png
ArdublockVars1.png [ 157.76 КБ | Просмотров: 19783 ]

Автор:  Arhat109 [ Воскресенье, 30 Октябрь, 2016 07:52 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Data Definition Language

Как понимаю, и эта тема "канет в небытие" .. никто помочь, подсказать не хочет?

Автор:  Владимир Паронджанов [ Воскресенье, 30 Октябрь, 2016 09:01 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Data Definition Language

Владимир Arhat109, здесь вы лидер, вся надежда на вас.

У меня знаний по Ардублок нет.

Если поскрести по сусекам могу дать только очень отдаленную аналогию.

Как сделано в технологии Графит-Флокс.
Графит — описание алгоритма, Флокс — описание данных.

Описание данных удалено из дракон-схем и записывается на отдельных листах в виде так называемых флокс-таблиц. Все флокс-таблицы хранятся в реляционной базе данных Флокс.

Связь между алгоритмами (дракон-схемами) и описанием данных (флокс-таблицами) осуществляется с помощью идентификаторов специального вида, которые называются "флокс-идентификаторы".
http://drakon.su/_media/biblioteka/grafit_a4.pdf
http://drakon.su/_media/biblioteka/grafitfloks.pdf
viewtopic.php?f=100&t=1091

https://webcache.googleusercontent.com/ ... clnk&gl=ru

Автор:  Владимир Паронджанов [ Воскресенье, 30 Октябрь, 2016 09:23 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Data Definition Language

Вот еще очень-очень отдаленная аналогия от Николая Сенюгина
http://intelograf.narod.ru/
viewtopic.php?f=62&t=4060

Автор:  adva [ Понедельник, 31 Октябрь, 2016 15:48 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Data Definition Language

Arhat109 писал(а):
Как понимаю, и эта тема "канет в небытие" .. никто помочь, подсказать не хочет?

Подобные вопросы уже поднимались, и ответа я пока не видел. Если придумаете решение, думаю будет прекрасное дополнение к дракону

Автор:  Arhat109 [ Вторник, 01 Ноябрь, 2016 12:21 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Data Definition Language

А-а-а .. еле нашел куда все пропало .. хоть бы рассылку сделали что-ли. :)

Спасибо за ссылки, кое-что уже почитал. Оказывается система "ГРАФИТ-ФЛОКС" это "2в 1" .. вот оно как! То есть, вместо того чтобы расширять ДРАКОН добавляя к нему DDL просто создали упрощенный язык ФЛОКС и отделили его от ГРАФИТ, собрав всё уже на уровне единой СУБД управления программами. Ну вот и у меня, при совмещении получается пока только некая "каша".

Мне кажется, что совмещение может оказаться тем не менее возможным, если расширить визуальные средства, например Цветом отображения и/или видом обрамления икон (тип линий). в ч/б (двухцветном) и "строгом" оформлении (только ГОСТ фигуры и сплошные линии) изобразительных средств явно недостаточно.

Пока беру таймаут на вдумчивое прочтение ссылок.

P.S. Особенных знаний по Ардублок - в целом и не требуется. Картинка "всё объясняет" как в этом плагине можно создавать и использовать переменные разных базовых типов.

Где и как определены в нем разные "иконы" - я уже разобрался, как они рисуются и проверяются при стыковках - уже тоже по большей части нашел. Это вполне поддается модификации так, чтобы оно могло рисовать в стиле ДРАКОН и иконами от ДРАКОН. Можно прикрутить доп. проверки, согласно ограничениям языка ДРАКОН, не особо переделывая плагин .. но вот как описывать переменные программ - пока решить не могу, поскольку их нет в ДРАКОН "вовсе".

Эта работа, может повлечь за собой интересное обратное преобразование: программа, созданная для Ардуино ИДЕ (а это обычный С/С++ код) может быть впоследствии преобразована в ДРАКОН-Ардублок "автоматически". Но, опять жеж .. как рисовать DDL? Выносить на отдельный лист в стиле ФЛОКС?

Автор:  Arhat109 [ Вторник, 08 Ноябрь, 2016 18:54 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Data Definition Language

Почитал, призадумался и вот сегодня посетила такая мысля:

ДРАКОН как язык представления алгоритмов использует визуальные средства - Иконы в общем-то "типовые" (ГОСТ), но добавляет к ним всего несколько достаточно простых правил. И, в результате, имеем наглядную картинку алгоритма, в котором текст внутри Иконы .. по сути является комментарием. Собственно алгоритм от его содержимого практически .. не страдает, хоть и вовсе сотри, все равно понятно что тут "царская дорога", а тут ввод с ожиданием или повторительный цикл в виде Силуэта.

Визуальные языки DDL - это всё попытки визуализировать .. текст. И без текстовых имен внутри "DDL-икон" увы, смысла не видно или его недостаточно. Картинка как-бы является дополнением и только. Что в корне отличается от вышеизложенного про ДРАКОН.

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

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

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

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

.. как-бы не вижу достаточного перечня изобразительных средств. Есть у кого, какие идеи?

Автор:  Arhat109 [ Среда, 09 Ноябрь, 2016 07:55 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Data Definition Language

Дополню более сильным утверждением вышесказанное: ИМХО, полностью визуальный язык программирования должен оставаться наглядным и сохранять как сущность алгоритмической части, так и декларативной при полном отсутствии текстовых "пометок". То бишь "Имя" (идентификатор) - может быть полностью визуальным (картинко).

Автор:  adva [ Среда, 09 Ноябрь, 2016 09:00 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Data Definition Language

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

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

Автор:  Arhat109 [ Четверг, 10 Ноябрь, 2016 08:46 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Data Definition Language

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

Тут 2 момента:
1. Стыковочный узел "целого типа". Сразу видно, какие значения и имена каких переменных сюда можно присоединить. Не получится чисто механически присоединить к примеру строковую или булеву переменную.
2. Картинка серводвигателя как Имя класса управляемого объекта. Есть такие же к просто огромному количеству датчиков и устройств управления..

Да, можно добавить "подпись" (как идентификатор конкретного объекта), но и без него - все настолько очевидно, что мой сын разобрался с применением таких блоков самостоятельно и сейчас программирует в Ардублоке и вовсе без моей помощи. 10.5 лет, но такое, мне кажется, очень наглядным и в гораздо меньшем возрасте. :)
И, как ни странно, эта подпись по сути ничего не изменяет, ибо поключение к конкретному выводу микроконтроллера - указано тут же цифирькой. 1 движок - 1 вывод. :)

P.S. текст способен обеспечить чуть больше чем "всё", именно поэтому и существуют текстовые среды разработки программ. Но .. мы же обсуждаем визуальное восприятие и его достоинства в применении к программированию, не так ли?

Автор:  Владимир Паронджанов [ Четверг, 10 Ноябрь, 2016 09:58 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Data Definition Language

Arhat109 писал(а):
Попозже, найду - выложу скрин.
Спасибо, Очень интересно, будем ждать скриншот.

Желательно показать не один скриншот, а несколько — для разных типов данных (блоков управления для разных типов серводвигателей и других устройств).

А также
Цитата:
Картинка серводвигателя как Имя класса управляемого объекта. Есть такие же к просто огромному количеству датчиков и устройств управления.

Автор:  Arhat109 [ Четверг, 10 Ноябрь, 2016 15:09 ]
Заголовок сообщения:  Re: Язык ДРАКОН и Data Definition Language

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

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