DRAKON.SU

Текущее время: Четверг, 28 Март, 2024 16:24

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 86 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
СообщениеДобавлено: Вторник, 19 Февраль, 2019 20:41 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 396
Предложенная здесь методика "автоматного силуэта", прежде всего, предметно направленна (под конкретные потребности с соответствующей реализацией), что важно и ценно практически.
Общий же взгляд в целом на понимание "веток" силуэта как автоматных состояний выявляет следующие особенности.

Выше в теме отмечена проблематика входных и выходных действий в "состояниях". Видимо, согласно конкретной методике, интерпретирующей автомат как ООП-класс, достаточно конструктора и деструктора в разрезе всего класса, т.е. автомата. Напр., для чего можно задействовать специальные ветки (первая и последняя):
https://forum.drakon.su/viewtopic.php?t=4284#p78588

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

Скорее всего, "автомат" для таких реальных задач как "разбор программного кода" будет размазан по множеству алгоритмов (силуэтов), т.е. трансформируется в "виртуальный автомат" (в виде некой сети алгоритмов).
В противном случае, чтобы удовлетворить широкие потребности, потребуется существенное дополнительное изменение семантики исчисления икон (кроме спецветок "конструктор/деструктор", специального "выбора" для ожидания событий), в стиле:
https://forum.drakon.su/viewtopic.php?f=62&t=6097#p100629
Вложение:
state.png
state.png [ 61.85 КБ | Просмотров: 6388 ]

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 23 Июнь, 2020 11:21 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
Обдумываю варианты объяснения темы автоматного программирования для школьников.

Предложено много вариантов, но мне все-равно не очевидно, что это просто и понятно детям.
Я же вижу миссию ДРАКОНа именно в обеспечении всеобщей алгоритмической грамотности населения.

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 23 Июнь, 2020 11:31 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
Например, графическое представление конечных автоматов, как детерминированных, так и недетерминированных, в виде простого графа переходов (диаграммы состояний) довольно просто объяснить и использовать с детьми.

Возьмем в пример НКА
Изображение


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 23 Июнь, 2020 11:34 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Для справки

В программе ИС Дракон предусмотрены три режима:
— Процедурный,
— Автомат 1,
— Автомат 2.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 23 Июнь, 2020 12:04 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
Владимир Паронджанов писал(а):
Для справки

В программе ИС Дракон предусмотрены три режима:
— Процедурный,
— Автомат 1,
— Автомат 2.

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


Это здорово. Но предлагаю обсудить не конкретную среду программирования, а способ описания. При всем уважении к разработчикам "ИС Дракон", это специализированный продукт, и, насколько помню, проприетарный. У него есть ограничения, отсутствующие, например, на Drakonhub.com

В своей практике я его не использую, хотя с интересом посмотрю на пример реализации вышеупомянутого НКА в этой системе.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 23 Июнь, 2020 12:17 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
Исходный граф переходов:
Изображение

Вот что у меня получилось изобразить штатными иконками ДРАКОН в виде примитива:
Вложение:
НКА2.png
НКА2.png [ 24.81 КБ | Просмотров: 6098 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 23 Июнь, 2020 12:25 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
Прошу прокомментировать: корректно ли такое описание, или есть недопонимание сути НКА с моей стороны?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 23 Июнь, 2020 12:33 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Дмитрий Бардынин писал(а):
Владимир Паронджанов писал(а):
Для справки

В программе ИС Дракон предусмотрены три режима:
— Процедурный,
— Автомат 1,
— Автомат 2.

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


При всем уважении к разработчикам "ИС Дракон", это специализированный продукт, и, насколько помню, проприетарный. У него есть ограничения

Для образования программа ИС Дракон предоставляется бесплатно.
Смотрите viewtopic.php?p=90935#p90935


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 23 Июнь, 2020 12:37 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
Владимир Паронджанов писал(а):
Для образования программа ИС Дракон предоставляется бесплатно.
Смотрите viewtopic.php?p=90935#p90935

Хорошая новость. А обычным детям эта программа тоже бесплатно предоставляется? У нас большой поток учащихся по коротким сменам, нет постоянного контингента, как в ВУЗах.
Было бы здорово иметь работающую с ардуино версию этой программы с бесплатным распространением. Но, боюсь, это подорвет коммерциализацию продукта.

И есть еще одно ограничение "ИС Дракон": перегруженность картинки, множество галочек/настроек/пунктиров/номеров. Мне внешний вид схем DRAKONHUB представляется почти идеальным. Можно ли в "ИС Дракон" легко и просто рисовать такие же простые и красивые схемы?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 23 Июнь, 2020 12:56 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Изображение
Вы выбрали или изобразили неправильный граф автомата.

Из состояния Н должны быть различные условия выходов перехода к состояниям 1 и 3.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 23 Июнь, 2020 13:05 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Исправьте граф автомата и я Вам нарисую Дракон-схему Силуэт автомата.


Последний раз редактировалось LKom Вторник, 23 Июнь, 2020 13:11, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 23 Июнь, 2020 13:10 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
LKom писал(а):
Из состояния Н должны быть различные условия выходов перехода к состояниям 1 и 3.

Я взял иллюстрацию из Вики.

А вы можете предложить собственный вариант, например, пусть в вершине Н будут дуги а (вверх) и b (вниз)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 23 Июнь, 2020 13:18 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
Я вижу силует по новому НКА таким образом:
Вложение:
НКА3-1.png
НКА3-1.png [ 207.31 КБ | Просмотров: 6093 ]


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

Нужен простой механизм, сопоставимый с графами переходов. Ну, или как вариант, простой инструмент, конвертирующий ГП в силуэт на ДРАКОНе.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 23 Июнь, 2020 13:29 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
На ребрах графа надо писать условия смены состояния.

Все выходы из состояния должны иметь различные условия.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 23 Июнь, 2020 15:34 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Дмитрий Бардынин писал(а):
Я взял иллюстрацию из Вики.
Надо критично относится к тому, что берете.
Необходимо иметь собственное понимание.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 23 Июнь, 2020 16:04 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
LKom писал(а):
Дмитрий Бардынин писал(а):
Я взял иллюстрацию из Вики.
Надо критично относится к тому, что берете.
Необходимо иметь собственное понимание.
Моя задача упрощать материал, облегчать доступ. Я работаю со школьниками. Вики - это широко используемый инструмент, и полезут они скорее всего сначала в неё, чем в специальную литературу. Потому и работаю на упреждение. Ваше замечание учту, но подход останется тот-же. Свое понимание следует основывать на профессиональных навыках. А тут - изучаем, что первое в руки попало
Цитата:
Дмитрий Бардынин писал(а):
Нужен простой механизм, сопоставимый с графами переходов.
Ну, или как вариант, простой инструмент, конвертирующий ГП в силуэт на ДРАКОНе.
Существующее инструментальное ПО Дракона обеспечивает разработку автоматов. При этом начертание ГП не требуется.

Вам не требуется, а нам - требуется. Нет причин для споров по этому вопросу.

Я склоняюсь к тому, чтобы оформлять на занятиях НКА в виде графа переходов, но готов дать ДРАКОНу шанс. Ваш вариант нам, к сожалению, не подходит, как я понимаю.
Я вижу громоздкость, и сложность для восприятия. Жаль, что только я.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 23 Июнь, 2020 17:36 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Вы выбрали из Вики НКА - недетерминированный конечный автомат. Это специфичный вид автоматов, не подходит для начального изучения.

У С. Митькина есть пример КА лифта - начните с него.
https://forum.drakon.su/viewtopic.php?f=142&t=6297&p=103073


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 23 Июнь, 2020 18:21 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
LKom писал(а):
Вы выбрали из Вики НКА - недетерминированный конечный автомат. Это специфичный вид автоматов, не подходит для начального изучения.

У С. Митькина есть пример КА лифта - начните с него.
https://forum.drakon.su/viewtopic.php?f=142&t=6297&p=103073


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

И если мы возьмем ДКА, думается, не многое изменится. Диаграммы на ДРАКОНе, если их делать по приведенным образцам, останутся такими же громоздкими и необъятными одним взглядом.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 23 Июнь, 2020 18:47 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Дмитрий Бардынин писал(а):
И если мы возьмем ДКА, думается, не многое изменится. Диаграммы на ДРАКОНе, если их делать по приведенным образцам, останутся такими же громоздкими и необъятными одним взглядом.

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

Владимир Даниелович, разве есть в стандарте Дракона требование - полностью (лаконично) разместить на экране компьютера всю Дракон-схему?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 23 Июнь, 2020 19:08 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
LKom писал(а):
Владимир Даниелович, разве есть в стандарте Дракона требование - полностью (лаконично) разместить на экране компьютера всю Дракон-схему?

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

Хочу напомнить Правило Сергея Ефанова.
Цитата:
Делайте ветки силуэта небольшой высоты, чтобы силуэт по высоте целиком размещался на экране (без прокручивания вверх-вниз).

Выгода в том, что прокручивать можно и нужно будет только в одном направлении — по горизонтали (влево и вправо).
И никогда — по вертикали


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 86 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2024, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB