OberonCore
https://forum.oberoncore.ru/

Таблицы решений и будущее программирования
https://forum.oberoncore.ru/viewtopic.php?f=86&t=3834
Страница 1 из 1

Автор:  TAU [ Пятница, 10 Февраль, 2012 13:21 ]
Заголовок сообщения:  Таблицы решений и будущее программирования

Уважаемые коллеги,

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

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

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


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

Автор:  Alexey_Donskoy [ Пятница, 10 Февраль, 2012 13:35 ]
Заголовок сообщения:  Re: Таблицы решений и будущее программирования

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

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

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

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

Автор:  Илья Ермаков [ Суббота, 11 Февраль, 2012 07:35 ]
Заголовок сообщения:  Re: Таблицы решений и будущее программирования

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

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

Автор:  Alexey_Donskoy [ Суббота, 11 Февраль, 2012 08:29 ]
Заголовок сообщения:  Re: Таблицы решений и будущее программирования

Илья Ермаков писал(а):
- мне кажется, что сам метод, как он излагается у Хамби, ориентирован на "неструктурированный штурм" задачи.
Да, мне тоже так кажется.

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

Автор:  TAU [ Суббота, 11 Февраль, 2012 10:32 ]
Заголовок сообщения:  Re: Таблицы решений и будущее программирования

Насколько я понимаю, Седову удалось свести таблицы решений с состояниями?

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

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

Автор:  fevdokimov [ Суббота, 11 Февраль, 2012 17:09 ]
Заголовок сообщения:  Re: Таблицы решений и будущее программирования

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

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

Автор:  albobin [ Суббота, 11 Февраль, 2012 20:53 ]
Заголовок сообщения:  Re: Таблицы решений и будущее программирования

Илья Ермаков писал(а):
у меня стойкая ассоциация со SWITCH-методом.


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

Автор:  Владислав Жаринов [ Пятница, 17 Февраль, 2012 15:59 ]
Заголовок сообщения:  Re: Таблицы решений и будущее программирования

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

Автор:  Neplul [ Пятница, 17 Февраль, 2012 18:04 ]
Заголовок сообщения:  Re: Таблицы решений и будущее программирования

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

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

Автор:  Владислав Жаринов [ Суббота, 18 Февраль, 2012 03:17 ]
Заголовок сообщения:  Re: Таблицы решений и будущее программирования

Да, в новой книжке Шалыто (с Поликарповой) об этом даже популярнее говорится, наверное (о табличном представлении автоматов).

Автор:  Илья Ермаков [ Воскресенье, 11 Март, 2012 20:22 ]
Заголовок сообщения:  Re: Таблицы решений и будущее программирования

При очередном обращении к книге Гриса "Наука программирования" (http://gen.lib.rus.ec/book/index.php?md ... 9A75F25F7D) в одной из глав наткнулся на такое упоминание таблиц решений:

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


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

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

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