Программирование с помощью таблиц решений


Я хочу поделиться некоторыми идеями, которые у меня возникли после прочтения дискуссии про "Машину Теорий" из [1].

1. В [5] есть примеры как кодировать циклы с помощью ТР (см раздел Rule Groups.) Почему-то я больше нигде не встречал подобного подхода, а, на мой взгляд, он очень важный, потому что позволяет сделать формализм на основе ТР полным по Тьюрингу. Т.о. с помощью ТР можно закодировать конечные автоматы (КА) любой сложности. (Возможно, в основе "процессов" А. Седова лежит эта идея.) На мой взгляд, недостаток подхода из [5] заключается в том, что для обозначения состояний КА используются лишь безликие числа, что приводит к утрате понимания задачи. Моя идея состоит в том, чтобы использовать осмысленные имена для состояний КА. Для этого можно даже использовать многомерные переменные из [1] (например, включающие в себя имя состояния и комментарий.)

Этот подход можно расширить путем "расщепления" состояния превратив его в вектор. В результате получим многомерное пространство состояний КА или процесса.

2. Предлагаю аналогичное усовершенствование случая Extended Entry Decision Table (это когда в правилах таблицы идет не только сравнение с булевскими константами, но также идет сравнение с числовыми константами.) Например, Example-2-J. из [5]. В этом примере вместо численных значений месяца можно было бы использовать имена месяцев. Аналогичным образом, можно дать имена (значения многомерных переменных) из предметной области любым числовым правилам ТР.

Ссылки

  1. Седов А. и др. Машина теорий — Дискуссия в эхоконференции relcom.comp.software-eng, март 1997г. (txt)
  2. Хамби Э.. Программирование таблиц решений. 1976г. (djvu)
  3. Белнап Н., Стил Т. Логика вопросов и ответов. — М.: Прогресс, 1981. — 288 с. (djvu 4mb) (djvu 7mb)
  4. Шлеер С., Меллор С. . Объектно-ориентированный анализ: моделирование мира в состояниях — Киев: Диалектика, 1993 — 240 с. (djvu)
  5. How to Write Cope Decision Tables
* Книги [2], [3], [4] упоминаются в [1].

Связаться с автором страницы по E-Mail: forth -AT- narod.ru

Hosted by uCoz