DRAKON.SU

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

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




Начать новую тему Ответить на тему  [ Сообщений: 94 ]  На страницу 1, 2, 3, 4, 5  След.
Автор Сообщение
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 09:36 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 66
Откуда: Москва
Илья Ермаков писал(а):
Попробуйте перепишите структурно мне автомат вот этого протокола:
viewtopic.php?f=62&t=1148
Наконец нашлось время, попробовал. Никаких трудностей и особенностей "управляющих алгоритмов" не обнаружил. Переписал только верхний рисунок, т.к. он самый сложный.
Несколько замечаний.
1. Ключевые слова набраны строчными буквами и выделены подчеркиванием. Потому, что именно так это рождается на бумаге. Для тех, кому-то режут глаз строчные буквы и это мешает восприятию, добавил вариант с прописными буквами.
2. В реальности я, возможно, попытался бы уменьшить вложенность конструкций. Но в данном случае старался сделать, по возможности ближе к оригиналу.
3. В отличие от Дракона, текст готов к ручной трансляции на целевой язык. Не функциональный, конечно.
4. В псевдокоде, если есть цикл, так это цикл, у него есть границы, видна охрана, можно сформулировать инвариант и постусловие, наконец, его можно выделить как отдельную процедуру. В отличие от идиотского нагромождения гробиков со стрелками и фирменного изобретения "цикл со многими выходами"
5. Самое важное. Я никогда не использовал Дракон, что неудивительно. И только сейчас почувствовал, насколько т. н. "наглядный рисунок" СКРЫВАЕТ границы циклов.
Значит, говорите, "В основании Дракона очень серьезная математика" и "Парджанов улубил Дейкстру"?
Ну, ну.

Резюме по Дракону. Это поделка от недоучки в программировании и для недоучек. Причем она эффективно закрепляет их на этом уровне.


Вложения:
lower1.png
lower1.png [ 17.25 КБ | Просмотров: 26692 ]
lower2.png
lower2.png [ 15.61 КБ | Просмотров: 26692 ]
upper1.png
upper1.png [ 17.79 КБ | Просмотров: 26692 ]
upper2.png
upper2.png [ 16.33 КБ | Просмотров: 26692 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 09:56 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Peter Almazov писал(а):
4. В псевдокоде, если есть цикл, так это цикл, у него есть границы, видна охрана, можно сформулировать инвариант и постусловие, наконец, его можно выделить как отдельную процедуру. В отличие от идиотского нагромождения гробиков со стрелками и фирменного изобретения "цикл со многими выходами"

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

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

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

Переписать Вы переписали, но убили самое главное - я должен потратить уйму времени, чтобы понять, как Ваш алгоритм будет вести себя во времени. Вы подошли к алгоритму как к описанию вычисления; в контексте же управляющих задач алгоритм - это грамматика на поведение, на последовательность событий во времени. И ДРАКОН - визуальное представление такой грамматики. Вы же не ставите в претензию НФБ и регулярным выражениям то, что там циклы "неправильные". Возьмите формализм Хоара из "Последовательных взаимодействующих процессов", наконец. А потом уже кидайтесь обвинениями в "недоучестве".

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 10:39 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 140
Откуда: Троицк, Москва
Илья Ермаков писал(а):
В управлении цель - обеспечить правильную последовательность событий во времени.
Разве только?
Можно сказать: обеспечить корректное состояние в каждый момент времени.
Корректность -- тот же инвариант.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 10:41 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Совершенно точно.
И инвариант - обязательно, куда ж без них! :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 12:34 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 42
Откуда: Бердск
Ключевая фраза: "Наконец нашлось время"

Для этого еще и время искать надо было, оказывается :lol:
Взгляд человека, абсолютно девственного в этих вопросах: минут пятнадцать "утрамбовывал" эту структуру у себя в голове, потом за пять нарисовал (в своей среде).
Эту нарисованную, мои последователи будут "утрамбовывать" не более одной минуты.
Проверено.

И это оно еще помещается на одной странице (думаю, что в реальных кодах это 2-3 страницы)...
Нет слов :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 12:48 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
(Кстати, Пётр, Вы знакомы с новосибирскими работами по теории схем программ?)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 14:07 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 66
Откуда: Москва
Илья Ермаков писал(а):
Зато Вы теряете понятие "состояние". ...
Вообще, я уже сказал и показал, все что хотел. Спорить до бесконечности я не собираюсь. Нравится Вам Дракон – флаг в руки.
По замечаниям:
1. Дублирование – это плата за структурность. Не готовы ее платить, да на здоровье, платите за использование GOTO. Для цикла Дейкстры, помнится, Вы готовы были ее платить.
2. Рассуждения о последовательность событий во времени выглядят как передергивание, в исходной картинке (ТЗ) ее не больше, чем в переписанном тексте. Нет в ней и формализма Хоара, почему я должен "его взять"?
"Я должен потратить уйму времени, чтобы понять, как Ваш алгоритм будет вести себя во времени" – этой фразы я не понял, то же самое я могу сказать о драконовских схемах. Если есть ошибки или неточности, то их и приводите.
3. В регулярных выражениях циклы правильные, на то они и "регулярные".
4. По поводу написать-записать и последующего многократного чтения. Да, такая проблема есть. В принципе, чем дальше язык программирования от псевдокода, тем она острее. Правда, для ассемблера, она решается на 100%. Предложения псевдокода записываются как комментарии к командам, а специальная программы выделяет их из текста и получает текст на псевдокоде аналогичный приведенному. Это не фантазии, я использовал такую технологию, когда работал на ассемблере. Она прекрасно себя зарекомендовала во всех случаях, от ЛИСП-машины до BIOSа.
В более высокоуровневых языках такой подход не оправдан.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 14:09 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 66
Откуда: Москва
Илья Ермаков писал(а):
(Кстати, Пётр, Вы знакомы с новосибирскими работами по теории схем программ?)
Нет, если приведете ссылки, буду благодарен.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 14:10 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 140
Откуда: Троицк, Москва
Илья Ермаков писал(а):
Совершенно точно.
И инвариант - обязательно, куда ж без них! :)
А тогда в чем разница.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 14:13 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 66
Откуда: Москва
Galkov писал(а):
...потом за пять нарисовал (в своей среде).
Если я правильно понял, Вы что-то где-то нарисовали. Так выкладывайте здесь, посмотрим.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 14:23 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Info21 писал(а):
Илья Ермаков писал(а):
Совершенно точно.
И инвариант - обязательно, куда ж без них! :)
А тогда в чем разница.


Так инвариант - это рассуждение в терминах "законов сохранения".

А то, какие изменения происходят (при сохранении инварианта) нам тоже нужно описывать (как в теле цикла).

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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 14:45 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Peter Almazov писал(а):
Илья Ермаков писал(а):
(Кстати, Пётр, Вы знакомы с новосибирскими работами по теории схем программ?)
Нет, если приведете ссылки, буду благодарен.


Ряд работ Ершова.
В частности, книга "Введение в теоретическое программирование".
http://www.ershov.ras.ru/archive/eainde ... &did=37478

Книга Котова, Сабельфельда "Теория схем программ".

Другие публикации ИСИ СО РАН.

Цитата:
Нет в ней и формализма Хоара, почему я должен "его взять"?


Это (как и теория схем программ) ассоциативный ряд по теме :) Для того, чтобы Вам перестали мерещиться всюду GOTO, которых нет.

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 18:24 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 140
Откуда: Троицк, Москва
Илья Ермаков писал(а):
(Нет, я, конечно, понимаю, что всё это можно трактовать как постусловие - типа, "были нужные события". Но это уже схоластика).
Почему же схоластика. "Не умножай сущности..."


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 19:03 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
здесь
Peter Almazov писал(а):
Резюме по Дракону. Это поделка от недоучки в программировании и для недоучек. Причем она эффективно закрепляет их на этом уровне.

Вы противоречите себе.
Если они сделали, то уже нельзя назвать их недоучками.
Заинтересовавшихся Драконом Вы так же называете недоучками, но ведь и Вы же давно неравнодушны к данной теме. Из 60 Ваших сообщений - 23 на форуме в ветке ДРАКОН.
Вы что то хотите противопоставить ДРАКОНУ, он Вам мешает?

Почему у Вас такой мрачный взгляд на реальность? Лучше стать позитивнее.


Последний раз редактировалось ==== Четверг, 24 Сентябрь, 2009 19:18, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 19:17 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 42
Откуда: Бердск
Peter Almazov писал(а):
Если я правильно понял, Вы что-то где-то нарисовали. Так выкладывайте здесь, посмотрим.
Это тема не этого раздела форума, а другого. Заходите, на любой Ваш вопрос - любой наш ответ.
Здесь я хотел обратить внимание на соотношение 1/15, а не на 5/15. Причем, корректное сравнение будет при заведомом понимании синтаксиса, в т.ч. и визуального. А оно у нас несколько отлично от ДРАКОНовского.
Образно говоря, некий граф алгоритма мы и ДРАКОН проектируем на разные плоскости. Возможно, и на взаимо-перпендикулярные...

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


Геннадий Тышов писал(а):
Почему у Вас такой мрачный взгляд на реальность?
Поделюсь опытом... не таким и маленьким, как отмечал выше :)
В 8 случаях из 10 - это психология
Человек несколько лет изучал ЯВУ, набивал шишки на ловушках в C++, заморачивался с классовой иерархией визуальных библиотек, и т.п..
А тут - приходит лох, который только вчера узнал что такое цикл FOR, и через 10 минут запускает программу с не меньшей функциональностью
Обыдно, да :?:


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 19:48 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 66
Откуда: Москва
Скромно замечу, что два последних поста являются офтопиком в данной теме.
Galkov писал(а):
Это тема не этого раздела форума, а другого. Заходите, на любой Ваш вопрос - любой наш ответ.
По-моему место для того, чтобы выложить альтернативные решения вполне подходящее, т.к. ТЗ в виде схем на Драконе одно и то же. Ну, если не хотите - дайте тогда URL.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 19:56 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 66
Откуда: Москва
Galkov писал(а):
... использующими лексику: недоучки, поделка, гробики
Гробик - это вполне нейтральный термин для обозначения блока с условием. Тоже самое, что и ромбик, только удобнее.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 21:09 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Peter Almazov писал(а):
...вполне нейтральный термин...
Я бы так не сказал... Полагаю, не стоит употреблять такой, с позволения сказать, сленг...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 21:25 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 66
Откуда: Москва
Ваш вариант?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Сентябрь, 2009 21:53 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
А нет у меня варианта, кроме замены самого символа. Поскольку символ оказался нагруженным такой вот ассоциацией.
Представьте себе, что все дети будут пользоваться этими символами и терминами! Будет очень неприятно в таком будущем.
Но инерция, блин, велика... Вот Паронджанов даже слышать не хочет о переименовании своего языка - как же, столько книг издано! А между тем, "как вы лодку назовёте, так она и поплывёт"!

Всё, достаточно, а то уже оффтопик начался полный...


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

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


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

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


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

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