OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 20:17

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




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
СообщениеДобавлено: Пятница, 10 Февраль, 2012 13:21 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 372
Уважаемые коллеги,

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

Ничего не слышал о "современных" исследованиях в этой области - хотя вещь необычайно интересная, как мне кажется:
1) Использование более чем одного измерения для представления программы. Кстати, вроде как еще Plankalkul Конрада Цузе был табличным!
2) Декларативность (непроцедурность) - нет нужды программисту определять самому последовательность дейтствий.

Вот как эмоционально пишет один профессионал по этому поводу:
Цитата:
Традиционные ЯВУ порождают даже НЕ плоские, а с ЛИНЕЙНЫЕ тексты (т.е. такие, для записи которых используется парадигма непрерывной строки (столбца) команд, которые могут быть линейно пронумерованы от начала текста одной координатой). Знаменитые "структурные конструкции" и советы по выписыванию текста программы "лесенкой" являются ЖУЛЬНИЧЕСТВОМ, скрывающим от программистов этот убийственный факт. Запишите В СТРОКУ оператор ЕСЛИ-ТО-ИНАЧЕ, вложив его в самого себя 50 раз. НЕ ДЕЛАЙТЕ ОТСТУПОВ -- они
НЕ НУЖНЫ ПО СИНТАКСИСУ ни языку Pascal, ни языку C! Поймете ли Вы смысл того, что Вы написали? Наверняка нет! Теперь попытайтесь выписать эту же структуру из 50-ти вложений "лесенкой". Помогло? Не слишком -- не видно, где что кончается. "Лесенка" начнет "помогать", когда уровень вложенности не будет больше 3-5 раз и ВЕСЬ ТЕКСТ попадет в ФИЗИОЛОГИЧЕСКИ ограниченное поле Вашего
зрения (и активного внимания)!
После чего прочитайте про ТР хотя бы по книжке Хамби. И Вы поймете, что 50 вложенных друг в друга операторов IF выражают МНОГОМЕРНУЮ ЛОГИКУ МИРА, которую программисты КАЖДЫЙ ДЕНЬ, на работе, пытаются спроецировать ДАЖЕ НЕ НА ПЛОСКОСТЬ, а в ЛИНИЮ! Задайте себе вопрос: сколько проекций В ЛИНИЮ реально N-мерного объекта нужно сделать, чтобы получить его более-менее приличную
модель? Как организовать СВЯЗИ этого огромного числа проекций, чтобы они "уживались" в теле программы? Попытайтесь ответить, и Вы поймете, почему мы сидим вместе с современными средствами проектирования программ в такой глухой технологической заднице. Здесь зарыт ТРИВИАЛЬНЫЙ ответ на все сегодняшние технологические муки программистов: они имеют никуда не годные иструменты.
Вынужденные действовать в абстрактных мирах, размерность которых редко падает до N*M, несчастные программеры снабжены ОДНОМЕРНЫМИ инструментами"


Что думаете и почему в "перспективных разработках" я ничего не встречал?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 10 Февраль, 2012 13:35 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
TAU писал(а):
К моему глубокому сожалению, я лишь вчера познакомился с таким методом системного анализа и программирования, как таблицы решений (см. книгу Хамби "Программирование таблиц решений").
Ура!
Не прошло и четырёх лет, как я тут про идеи Седова всем уши прожужжал.
Никто, впрочем, особо не впечатлился почему-то...

К сожалению, Седов по e-mail уже давно не отвечает, и поиск в сети тоже безрезультатен...

Тут у меня ссылки на все эти дискуссии...

На самом деле таблицы решений - только один из инструментов. Просто Седов вдохновился ими в процессе размышлений о "Машине теорий"... Ну и технически - один из путей к управлению сложностью.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 11 Февраль, 2012 07:35 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Благодаря Алексею я давно ознакомился с этим методом, правда, тогда не мог найти книжку, пришлось урывками по сети искать.

Пока у меня такие впечатления:
1) Полезная и красивая штука, как конкретная... скажем так, конструкция принятия решения в программе.
2) Если смотреть более общо:
- мне кажется, что сам метод, как он излагается у Хамби, ориентирован на "неструктурированный штурм" задачи. Т.е. не проводится декомпозиции на подсистемы, структурирования, выделения пространств состояний и событий в этих пространствах. Отсюда как раз и получается "взрыв состояний" M*N, о котором эмоционально пишет цитируемый специалист. Таблицы решений направлены на "механическую" борьбу с этой сложностью, без "семантической" борьбы.
Год книги - 1973, а год рождения метода наверняка лет на 10 раньше... Т.е. это был один из методов, порожденных для преодоления "взрыва сложности" в плохо организованных программных системах (под "плохо организованными" я понимаю отсутствие методов, опыта и часто технической возможности правильно разбить систему на части и наладить их взаимодействие - а ведь это и есть главный способ борьбы с размерностью задач). В массовом масштабе пробили себе дорогу другие методы, а таблицы решений, видимо, поэтому и забыли. Незаслуженно, потому что место им, однозначно, есть.
- у меня стойкая ассоциация со SWITCH-методом. Эти таблицы так и просятся туда, и наоборот - этим таблицам дико не хватает анализа структуры системы и анализа фазового пространства систем с помощью диаграмм состояний и переходов.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 11 Февраль, 2012 08:29 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Илья Ермаков писал(а):
- мне кажется, что сам метод, как он излагается у Хамби, ориентирован на "неструктурированный штурм" задачи.
Да, мне тоже так кажется.

Илья Ермаков писал(а):
- у меня стойкая ассоциация со SWITCH-методом. Эти таблицы так и просятся туда, и наоборот - этим таблицам дико не хватает анализа структуры системы и анализа фазового пространства систем с помощью диаграмм состояний и переходов.
Я вот затрудняюсь на практике переложить просто сложную комбинацию флагов в фазовое пространство. А таблица просто позволяет учесть ВСЕ возможные комбинации этих флагов.
Пример - банковская система, какой-нибудь документ с набором полей (в том числе служебных, в том числе тянущихся для совместимости с тысяча девятьсот забытого года). Набор этих полей определяю не я, а как Центробанк проектирует и ставит задачи, посвящённые знают :lol: Так вот, в зависимости от этих полей надо по-разному отображать и обрабатывать документ. Как сюда применить диаграмму состояний? Только таблицы решений...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 11 Февраль, 2012 10:32 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 372
Насколько я понимаю, Седову удалось свести таблицы решений с состояниями?

В принципе, у меня возникла идея: дополнить условия еще одним - временем. Скажем, t=100 - одни действия в данной ситуации, t=120 - другие.

И это коррелирует в приципе с управлением в реальном времени!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 11 Февраль, 2012 17:09 

Зарегистрирован: Понедельник, 16 Январь, 2006 10:42
Сообщения: 47
Откуда: Murmansk
Alexey_Donskoy писал(а):
Я вот затрудняюсь на практике переложить просто сложную комбинацию флагов в фазовое пространство. А таблица просто позволяет учесть ВСЕ возможные комбинации этих флагов.
Пример - банковская система, какой-нибудь документ с набором полей (в том числе служебных, в том числе тянущихся для совместимости с тысяча девятьсот забытого года). Набор этих полей определяю не я, а как Центробанк проектирует и ставит задачи, посвящённые знают :lol: Так вот, в зависимости от этих полей надо по-разному отображать и обрабатывать документ. Как сюда применить диаграмму состояний? Только таблицы решений...

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 11 Февраль, 2012 20:53 

Зарегистрирован: Пятница, 20 Июль, 2007 17:26
Сообщения: 710
Откуда: Псков
Илья Ермаков писал(а):
у меня стойкая ассоциация со SWITCH-методом.


10 глава из книги Шалыто А.А. "Switch-технология. Алгоритмизация и программирование задач логического управления"
называется "Таблицы решений и графы переходов"


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 17 Февраль, 2012 15:59 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 2046
Alexey_Donskoy писал(а):
...
Я вот затрудняюсь на практике переложить просто сложную комбинацию флагов в фазовое пространство. А таблица просто позволяет учесть ВСЕ возможные комбинации этих флагов.
...
...А потом включить критическую рефлексию, дабы проредить прямое произведение комбинаций значений флагов... :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 17 Февраль, 2012 18:04 

Зарегистрирован: Суббота, 09 Август, 2008 14:22
Сообщения: 71
Откуда: Украина, Херсон
Вроде бы у Непейводы в "Основах программирования" об этом методе говорилось. В любом случае, на сколько я понимаю, такая таблица сводится
к абстрактному автомату(конечному автомату ли автомату с памятью) или сети таких автоматов (вроде бы там же и говорилось о родстве между модульным подходом и подходом программирования от состояний).
Цитата:
Очень напоминает методы нечеткой логики

Тоже родство с автоматами (как и у обычной логики), только уже с вероятностными.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 18 Февраль, 2012 03:17 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 2046
Да, в новой книжке Шалыто (с Поликарповой) об этом даже популярнее говорится, наверное (о табличном представлении автоматов).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 11 Март, 2012 20:22 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
При очередном обращении к книге Гриса "Наука программирования" (http://gen.lib.rus.ec/book/index.php?md ... 9A75F25F7D) в одной из глав наткнулся на такое упоминание таблиц решений:

Цитата:
Обычной ошибкой при написании данной спецификации является описание выровненной строки при помощи двух случаев:
...
Хотя это и может привести к построению правильной программе, программа будет несколько менее эффективной, чем та, которая построена.
В общем случае нужно пытаться следовать такому принципу:
Принцип. Сводите число возможных случаев к минимуму.
В только что рассмотренном примере даже двух случаев слишком много!
Конечно же, когда-либо два различных случая должны быть приняты во внимание, но разумно отложить это настолько, насколько возможно.
Стремление удерживать количество рассматриваемых случаев в разумных пределах является одним из оснований для того, чтобы не пользоваться таблицами решений.


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

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


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

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


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

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


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

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