DRAKON.SU

Текущее время: Вторник, 19 Март, 2024 14:16

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




Начать новую тему Ответить на тему  [ Сообщений: 17 ] 
Автор Сообщение
 Заголовок сообщения: Алгоритм Луна
СообщениеДобавлено: Пятница, 30 Декабрь, 2016 00:57 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Алгоритм Луна на языке ДРАКОН-JavaScript. Работает.
https://ru.wikipedia.org/wiki/%D0%90%D0 ... 0%BD%D0%B0
Вложение:
luhn.png
luhn.png [ 30.99 КБ | Просмотров: 19078 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Алгоритм Луна
СообщениеДобавлено: Четверг, 12 Январь, 2017 17:58 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
В Дракон-схеме "Алгортм Луна" Степана Митькина нет:
1. ни назначения алгоритма,
2. ни описания области применения алгоритма,
3. ни описания алгоритма в терминах прикладной области.

Алгоритм не является наглядным и понятным.
Проблемная область алгоритма вытеснена программным кодом.
Для рассмотрения Дракон-схемы алгоритма требуется знание языка программирования.
Программный код алгоритма в википедии более понятный и наглядный.

Непонятно, что Степан Митькин хочет продемонстрировать и получилось ли?
Для кого предназначена Дракон-схема алгоритма?
Здесь применение нотации В.Д. Паронджанова не оправдано.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Алгоритм Луна
СообщениеДобавлено: Четверг, 12 Январь, 2017 20:50 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5844
Откуда: Москва
Частично соглашусь с LKom.

Как выйти из положения?

Мне кажется, надо иметь две дракон-схемы:

1. дракон-схему алгоритма (для понимания сути дела),

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Алгоритм Луна
СообщениеДобавлено: Пятница, 13 Январь, 2017 07:33 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 239
Откуда: Россия, Стерлитамак
Замечание Lcom помогло мне понять, для чего очень удобен дракон, ну и Эванса DDD начал читать.

По сути он нужен, чтобы быстро вникнуть в алгоритм и его предназначение. И он должен быть понятен как программисту, так и специалисту предметной области. А для этого он должен использовать язык понятный им обоим. А следовательно это не язык программирования, а терминов из предметной области, хотя возможно дополнен какими-то терминами непосредственно из ИТ. И язык не должен выходить за рамки этого языка. Этот язык должен быть где-то закреплен, например пусть в той же схеме Гном.

С другой стороны код должен 100% соответствовать алгоритму. Предложенный вариант со второй схемой явно неправильный, т.к. в этом случае это соответствие рано или поздно будет нарушено при развитии системы. Нужен какой-то другой механизм. Прятать код, как это сделано в другом известном редакторе, с другой стороны, тоже неправильно, это тоже может привести к расхождениям, хотя и показывать его непосредственно на схеме тоже лишнее.

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

Но тут опять наверное упираемся в представление данных в драконе, хотя если попробовать при "закреплении" языка использовать ERIL, то может быть это решится.

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Алгоритм Луна
СообщениеДобавлено: Суббота, 14 Январь, 2017 08:19 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5844
Откуда: Москва
adva писал(а):
код должен 100% соответствовать алгоритму. Предложенный вариант со второй схемой явно неправильный, т.к. в этом случае это соответствие рано или поздно будет нарушено при развитии системы.


Вторая схема вносит ясность как пример кода. Почему вы считаете ее "явно неправильной"?
Владимир Паронджанов писал(а):
надо иметь две дракон-схемы:

1. дракон-схему алгоритма (для понимания сути дела),

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Алгоритм Луна
СообщениеДобавлено: Суббота, 14 Январь, 2017 08:34 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Степану Митькину надо использовать ИС Дракон.

В ИС Дракон проблемное описание алгоритма и программная реализация всегда присутствуют, соответствую друг другу и неразделимы.
Две Дракон-схемы не требуются, достаточно одной созданной в ИС Дракон.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Алгоритм Луна
СообщениеДобавлено: Суббота, 14 Январь, 2017 09:49 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Игорь Мазница пишет (машинный перевод) в
http://www.igormaznitsa.com/netbeans-mmd-plugin/

Цитата:
Основная часть проекта программного обеспечения не код, а знание, полученные в ходе реализации проекта.

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

Есть много подходов, чтобы сохранить знание и диаграмму, карта ума является одним из них. Кроме того, очень важно, чтобы держать «расстояние» между проектом и его знания как можно более коротким и идеальный вариант, чтобы сохранить знания только в рамках проекта в качестве набора документов.

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

В ИС Дракон знания, т.е. проблемное описание, являются визуализированным и главным содержанием Дракон-схемы и Дракон-листа.

Программный код является вторичным в алгоритме. При этом для программного кода обеспечивается минимальное расстояние от проблемного описания, обеспечивается его декомпозиция в соответствии с декомпозицией проблемного описания алгоритма и неотрывность от проблемного описания.

В ИС Дракон обеспечивается верификация соответствия проблемного описания и программного кода. При дублировании в различных иконах Дракон-схемы текста программного кода или текста иконы выставляется требование обеспечить дублирование в этих иконах соответствующих текстов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Алгоритм Луна
СообщениеДобавлено: Суббота, 14 Январь, 2017 12:45 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5844
Откуда: Москва
Мы должны быть благодарны Геннадию Тышову и Степану Митькину.
Они предложили две существенно разные философии визуализации.

Тышов предложил философию алгоритмической визуализации, а Митькин — философию программной визуализации.

У Тышова дракон-схема — это алгоритм,
у Митькина дракон-схема — это программа.

Мне кажется нужно и то, и другое.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Алгоритм Луна
СообщениеДобавлено: Суббота, 14 Январь, 2017 14:56 
Аватара пользователя

Зарегистрирован: Среда, 09 Ноябрь, 2016 00:33
Сообщения: 122
Откуда: Tallinn
Цитата:
Игорь Мазница пишет (машинный перевод) в

я сейчас все думаю как встраивать дракон схемы в mind map, формат хранения разработал,сейчас работаю над автоматической визуализацией


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Алгоритм Луна
СообщениеДобавлено: Воскресенье, 15 Январь, 2017 09:12 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5844
Откуда: Москва
Игорь Мазница писал(а):
я сейчас все думаю как встраивать дракон схемы в mind map, формат хранения разработал,сейчас работаю над автоматической визуализацией
Игорь, посмотрите на труды Николая Сенюгина viewtopic.php?f=62&t=4060&hilit=intelograf


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Алгоритм Луна
СообщениеДобавлено: Воскресенье, 15 Январь, 2017 10:33 
Аватара пользователя

Зарегистрирован: Среда, 09 Ноябрь, 2016 00:33
Сообщения: 122
Откуда: Tallinn
щтука интересная, но у меня задача попроще - я просто хочу встроить диаграммы дракона в узлы минд мапа что бы пользователи могли описывать какие то алгоритмы и хранить их в одном месте, так как майнд мап описывает знания, но не позволяет толком описать алгоритм рещения
так как у меня майнд мапы хранятся в текстовом формате, то большой вопрос стоял как представлять дракон схему в хранилище что бы если что человек мог декодиовать и без едактора, вроде удалось сделать, вот как представляется алгоритм Луна в моем случае в хранилище
Код:
# Luhn algorithm
# https://en.wikipedia.org/wiki/Luhn_algorithm

+
|
  * start,luhn
    {
      * action,digits
    .
  * action,var sum = 0\nvar length = digits.length\nvar i
  * loop.start,i = 0; i < length; i++
  * action,var index = length - i - 1\nvar digit = digit[index]
  * action,var d3
  > i% 2 == 1
    * action,var d2 = digit * 2
    > d2 > 9
      * action,d3 = d2 - 9
      $label000
    .
    * action,d3 = d2
    $label000
  .
  * action,d3 = digit
:label000
  * action,sum += d3
  * loop.end
  * action,return (sum % 10 == 0)
  * end,End
.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Алгоритм Луна
СообщениеДобавлено: Воскресенье, 15 Январь, 2017 23:49 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
LKom писал(а):
Алгоритм не является наглядным и понятным.
Проблемная область алгоритма вытеснена программным кодом.

Сию минуту исправим-с.
https://drakon-editor.com/ide/doc/examples/39
Вложение:
20170115213944.png
20170115213944.png [ 56.98 КБ | Просмотров: 18946 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Алгоритм Луна
СообщениеДобавлено: Понедельник, 16 Январь, 2017 07:56 

Зарегистрирован: Пятница, 15 Апрель, 2016 11:38
Сообщения: 119
Откуда: из СССР
Ув. Степан, мне кажется или алгоритм не содержит связки между результатом, получаемым внутри цикла и первым оператором после него?

В цикле: перебирается входная последовательность из цифр (ясно из комментария к алгоритму), при этом (видимо) происходит изменение входной последовательности внутри цикла (ясно из "умножить цифру на 2" и т.д.), а вот далее, после цикла указано "рассчитать сумму..", но мне вот показалось непонятным какую: ИЗМЕНЕННОЙ последовательности или таки ИСХОДНОЙ?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Алгоритм Луна
СообщениеДобавлено: Понедельник, 16 Январь, 2017 11:29 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Arhat109 писал(а):
Ув. Степан, мне кажется или алгоритм не содержит связки между результатом, получаемым внутри цикла и первым оператором после него?

Есть такое. Исправил. Это общая проблема спецификаций на естественном языке: отсутствие переменных порождает неоднозначность.
Присутствие же переменных и формул убивает читаемость.
Цитата:
потому что расчет суммы накоплением можно делать внутри того же цикла

Это программистский трюк. Он также снижает читаемость.
Вложение:
last ned.png
last ned.png [ 66.57 КБ | Просмотров: 18924 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Алгоритм Луна
СообщениеДобавлено: Понедельник, 16 Январь, 2017 20:07 

Зарегистрирован: Пятница, 15 Апрель, 2016 11:38
Сообщения: 119
Откуда: из СССР
Да, спасибо. Так - значительно нагляднее.

P.S. Видимо я слишком сильно "привык" к программистским трюкам .. их отсутсвие режет глаз. :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Алгоритм Луна
СообщениеДобавлено: Вторник, 26 Сентябрь, 2017 10:30 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5844
Откуда: Москва
Спасибо всем участникам обсуждения.
Дело новое.
Различные точки зрения очень важны.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Алгоритм Луна
СообщениеДобавлено: Четверг, 24 Сентябрь, 2020 16:41 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5844
Откуда: Москва
Моя позиция изложена в разделе
viewforum.php?f=177


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ] 

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


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

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


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

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