Интересная (и мощная) концепция - "схематические таблицы" (schematic tables), как развитие метода "таблицы решений":
- обзорная
статья;
-
публикация от автора Jonathan Edwards (обращаю внимание, что все рисунки в конце документа, рекомендую с них и начать ознакомление);
-
видео;
-
прототип некой IDE;
-
сайт автора (где представлены и другие идеи в области программирования).
Ключевая идея - видоизменить таблицу решений, где кроме логики, вариантов принятия решения (горизонталь), представлено и функциональное дерево вычислений (вертикаль). Особенности:
- в одной таблице, как в замкнутом контуре, агрегируются все варианты входов и результатов исследуемой части вычислительной модели. Т.е. то, что в обычных ЯП разнесено в if/switch, да и pattern matching, а также отражаются и образуемые варианты при полиморфизме (!) (виртуальные вызовы методов или перегрузки функций и т.п., формируемые через классы/интерфейсы/миксины/классы типов/протоколы и т.д.);
- функциональная схема в таблице отражает как и структуру вычислений, так и временную последовательность;
- полноценные принципы декомпозиции, структурности и т.д.;
- таблица компонуется автоматически (нет ручного рисования), наполнение м.б. сформировано на основе текстового кода (программного, декларативных описаний), и проработана логика непосредственной правки таблицы, на базе атомарных действий с возможностью транзакционной записи.
Теоретически возможна оперативная связь: текст <-> таблица.
И при наличии семантически развитой среды возможен контроль состава вариантов решений, его автоматическое формирование, в т.ч. и авторазмещение в таблице, контроль типов данных и т.д.;
- хороший потенциал для эргономичного представления, особенно в рамках интерактивной работы и режимов отладки;
- и др.
Да, таблицы можно эргономично зарисовать, но, в целом, с лёгкостью восприятия есть особенности. В принципе, после понимания самой сути и логики построения таблиц, они читаются существенно легче.
На всякий случай, немного материалов по таблицам решений:
-
википедия, где также приведены примеры программной реализации:
здесь и
здесь;
-
книга Хамби Э. "Программирование таблиц решений";
- обсуждались на этом форуме, например,
здесь.
В общем, концепция схематических таблиц интересна, и полезна как раз в рамках современных тенденций в программировании, где всё больше и больше развиваются техники для детализированной декомпозиции, создания абстрактного, обобщённого, полиморфного кода.
На первый взгляд имеются неплохие зачатки для формализации агрегатных моделей, как для частного исследования вычислительных задач, так и для системного моделирования.
В какой-то мере, можно сказать, что это современный потенциальный вариант "машины теорий" Седова (подробности
здесь,
здесь).