OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 22 Май, 2024 04:03

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




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
СообщениеДобавлено: Понедельник, 12 Апрель, 2010 20:21 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 557
Выделено: viewtopic.php?p=45876#p45876

Александр
Рекомендую, исключить логические выражения, лучше так:
Код:
LOOP
   IF A THEN
      EXIT
   ELSIF B THEN
      RETURN FALSE
   ELSIF C THEN
      EXIT
   ELSE
      Step
   END
END;

Смотрите - В.Д. Паронджанов, "Как улучшить работу ума", глава 9: "Визуализация логических формул".
Цитата:
Выводы
1. В алгоритмах со сложной логикой часто используются условные операторы с логическими выражениями. Опыт показывает, что такие операторы во многих случаях трудны для понимания, что нередко приводит к ошибкам.
2. В языке ДРАКОН используются визуальные логические выражения, позволяющие при желании полностью исключить логические связки И, ИЛИ, НЕ из условных операторов.
3. Визуализация логических формул во многих практически важных случаях заметно облегчает их понимание и уменьшает вероятность ошибок.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Убираю LOOP'ы
СообщениеДобавлено: Понедельник, 12 Апрель, 2010 20:31 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 557
В справке к и.с. DRAKON
Цитата:
К книге “Как улучшить работу ума” надо возвращаться неоднократно. Автор снимает те “табу”, запреты, заблуждения, которые сформировались после работ Э. Дейкстры во время компании о “структурном программировании”.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Убираю LOOP'ы
СообщениеДобавлено: Понедельник, 12 Апрель, 2010 21:50 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Геннадий Тышов писал(а):
2. В языке ДРАКОН используются визуальные логические выражения, позволяющие при желании полностью исключить логические связки И, ИЛИ, НЕ из условных операторов.
3. Визуализация логических формул во многих практически важных случаях заметно облегчает их понимание и уменьшает вероятность ошибок.


Геннадий, визуализируйте условие из WHILE, ничто этому не мешает.
Когда все условия собраны в WHILE, это гарантирует, что действие на "петле цикла" только одно, без прерываний; а условия - наоборот, без промежуточных действий. Сами условия действительно визуалятся хорошо.

По поводу "защиты LOOP" у Вас две принципиальных ошибки:
1) Вы пытаетесь опыт визуального языка тащить обратно в текст. Обосновывать что-то для текста, ссылаясь на Паронджанова, нельзя - т.к. идея Паронджанова как раз в уходе от текста. Если работаем с линейным текстом, приходится использовать другие, "старые", критерии.

2) Вы так и не собираетесь расширить сектор своего видения на тему доказательного программирования и свойств программ. Без этого получается переливание из пустого в порожнее. Поймите простую вещь - можно будет обсуждать конструктивно и недостатки традиционного структурного программирования, и то, как можно по-другому (как там Вам нравится...), если Вы будете аргументировать на другом уровне. Любая идея в науке/технике должна быть обоснована автором на должном теоретическом уровне; иначе её нельзя ни принять (недостаточно оснований), ни опровергнуть (автор не понимает аргументов).

Прим.: Последнее касается Вас, а не Паронджанова, т.к. Паронджанов не делает кривых обобщений; а на том поле, которое берёт (эргономичность чертежа), обосновывает убедительно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Убираю LOOP'ы
СообщениеДобавлено: Понедельник, 12 Апрель, 2010 22:10 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 557
Илья
В.Д. Паронджанов
Цитата:
Выводы
1. В алгоритмах со сложной логикой часто используются условные операторы с логическими выражениями. Опыт показывает, что такие операторы во многих случаях трудны для понимания, что нередко приводит к ошибкам.
обобщил практику программирования в текстовых языках в большом количестве литературных источников и нельзя утверждать, что его вывод относится только к графическому языку Дракон. Такое утверждение является ошибочным !!!

Я, исходя из личной практики, полностью согласен с выводом В.Д. Паронджанова приведенным выше.


Последний раз редактировалось ==== Вторник, 13 Апрель, 2010 04:25, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Убираю LOOP'ы
СообщениеДобавлено: Понедельник, 12 Апрель, 2010 22:24 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 557
Илья Ермаков писал(а):
По поводу "защиты LOOP" у Вас две принципиальных ошибки:
Ранее относительно "LOOP" ничего не говорил. Но -
1. Данный цикл ничем не хуже "WHILE".
2. Использование его позволяет выполнить декомпозицию алгоритма, т.е. функционально разделить и сделать прозрачнее пред и пост условия цикла, выбора условий как одиночной, так и множественной обработки данных.

Ваше стремление исключить "LOOP", обедняет арсенал средств в КП.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Убираю LOOP'ы
СообщениеДобавлено: Понедельник, 12 Апрель, 2010 22:50 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Геннадий Тышов писал(а):
2. Использование его позволяет выполнить декомпозицию алгоритма, т.е. функционально разделить и сделать прозрачнее пред и пост условия цикла, выбора условий как одиночной, так и множественной обработки данных.


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Убираю LOOP'ы
СообщениеДобавлено: Понедельник, 12 Апрель, 2010 22:55 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 557
Илья Ермаков писал(а):
2) Вы так и не собираетесь расширить сектор своего видения на тему доказательного программирования и свойств программ. Без этого получается переливание из пустого в порожнее.
У В.Д. Паронджанова ничего не сказано о доказательном программировании.

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

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

Ранее, мною говорилось о возможной парадигме программирования: алгоритмо-ориентированном программировании - АОП.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Убираю LOOP'ы
СообщениеДобавлено: Понедельник, 12 Апрель, 2010 23:04 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Геннадий Тышов писал(а):
У В.Д. Паронджанова ничего не сказано о доказательном программировании.


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

Доказательное программирование выдвигает определённые требования к конструкциям алгоритма. Этим требованиям нужно удовлетворять (и показывать, каким именно образом). Иначе предлагаемые конструкции неинтересны, они не соответствуют требованиям "сегодняшнего дня" (который начался уже 40 лет как, с момента того, как появились методы доказательства свойств программ).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Убираю LOOP'ы
СообщениеДобавлено: Вторник, 13 Апрель, 2010 07:28 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Геннадий Тышов писал(а):
алгоритмо-ориентированном программировании - АОП.

AOP -- Aspect Oriented Programming -- Аспектно-ориентированное программирование -- АОП.


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

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


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

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


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

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