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-методом. Эти таблицы так и просятся туда, и наоборот - этим таблицам дико не хватает анализа структуры системы и анализа фазового пространства систем с помощью диаграмм состояний и переходов. Я вот затрудняюсь на практике переложить просто сложную комбинацию флагов в фазовое пространство. А таблица просто позволяет учесть ВСЕ возможные комбинации этих флагов.Пример - банковская система, какой-нибудь документ с набором полей (в том числе служебных, в том числе тянущихся для совместимости с тысяча девятьсот забытого года). Набор этих полей определяю не я, а как Центробанк проектирует и ставит задачи, посвящённые знают Так вот, в зависимости от этих полей надо по-разному отображать и обрабатывать документ. Как сюда применить диаграмму состояний? Только таблицы решений... |
Автор: | TAU [ Суббота, 11 Февраль, 2012 10:32 ] |
Заголовок сообщения: | Re: Таблицы решений и будущее программирования |
Насколько я понимаю, Седову удалось свести таблицы решений с состояниями? В принципе, у меня возникла идея: дополнить условия еще одним - временем. Скажем, t=100 - одни действия в данной ситуации, t=120 - другие. И это коррелирует в приципе с управлением в реальном времени! |
Автор: | fevdokimov [ Суббота, 11 Февраль, 2012 17:09 ] |
Заголовок сообщения: | Re: Таблицы решений и будущее программирования |
Alexey_Donskoy писал(а): Я вот затрудняюсь на практике переложить просто сложную комбинацию флагов в фазовое пространство. А таблица просто позволяет учесть ВСЕ возможные комбинации этих флагов. Пример - банковская система, какой-нибудь документ с набором полей (в том числе служебных, в том числе тянущихся для совместимости с тысяча девятьсот забытого года). Набор этих полей определяю не я, а как Центробанк проектирует и ставит задачи, посвящённые знают Так вот, в зависимости от этих полей надо по-разному отображать и обрабатывать документ. Как сюда применить диаграмму состояний? Только таблицы решений... Очень напоминает методы нечеткой логики, где есть сфера управления, состоящая из узлов фиксированных состояний и возможных переходов из одного состояния в другое. |
Автор: | 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/ |