OberonCore
https://forum.oberoncore.ru/

Применение правил визуализации лог. выр-й для текст-й записи
https://forum.oberoncore.ru/viewtopic.php?f=27&t=2551
Страница 1 из 1

Автор:  ==== [ Понедельник, 12 Апрель, 2010 20:21 ]
Заголовок сообщения:  Применение правил визуализации лог. выр-й для текст-й записи

Выделено: 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. Визуализация логических формул во многих практически важных случаях заметно облегчает их понимание и уменьшает вероятность ошибок.

Автор:  ==== [ Понедельник, 12 Апрель, 2010 20:31 ]
Заголовок сообщения:  Re: Убираю LOOP'ы

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

Автор:  Илья Ермаков [ Понедельник, 12 Апрель, 2010 21:50 ]
Заголовок сообщения:  Re: Убираю LOOP'ы

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


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

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

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

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

Автор:  ==== [ Понедельник, 12 Апрель, 2010 22:10 ]
Заголовок сообщения:  Re: Убираю LOOP'ы

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

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

Автор:  ==== [ Понедельник, 12 Апрель, 2010 22:24 ]
Заголовок сообщения:  Re: Убираю LOOP'ы

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

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

Автор:  Илья Ермаков [ Понедельник, 12 Апрель, 2010 22:50 ]
Заголовок сообщения:  Re: Убираю LOOP'ы

Геннадий Тышов писал(а):
2. Использование его позволяет выполнить декомпозицию алгоритма, т.е. функционально разделить и сделать прозрачнее пред и пост условия цикла, выбора условий как одиночной, так и множественной обработки данных.


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

Автор:  ==== [ Понедельник, 12 Апрель, 2010 22:55 ]
Заголовок сообщения:  Re: Убираю LOOP'ы

Илья Ермаков писал(а):
2) Вы так и не собираетесь расширить сектор своего видения на тему доказательного программирования и свойств программ. Без этого получается переливание из пустого в порожнее.
У В.Д. Паронджанова ничего не сказано о доказательном программировании.

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

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

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

Автор:  Илья Ермаков [ Понедельник, 12 Апрель, 2010 23:04 ]
Заголовок сообщения:  Re: Убираю LOOP'ы

Геннадий Тышов писал(а):
У В.Д. Паронджанова ничего не сказано о доказательном программировании.


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

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

Автор:  Geniepro [ Вторник, 13 Апрель, 2010 07:28 ]
Заголовок сообщения:  Re: Убираю LOOP'ы

Геннадий Тышов писал(а):
алгоритмо-ориентированном программировании - АОП.

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

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