Предложение следущее, значительно расширить функционал таблицы состояний, переведя с булевых переменных на любые.
Сейчас таблица состояний имеет булевые входы, и булевые выходы. Из за этого сделать такую таблицу состояний как:
s0 s1
0 0 => 0
0 1 => 1
1 0 => 2
1 1 => 1
2 0 => 2
2 1 => 1
Невозможно.
Приходится городить конструкцию типа приведённой на картинке.
Расширив функционал, это легко станет возможным.
Более того, таблицу состояний хорошо бы сделать не просто в виде, вход = значению (сейчас это 0 или 1) . А в виде вход >,<,=, != значению. (i1>43 i2=5 i3=0) Варианты с чем и как сравнивать зависят от типа входа. Если на вход подано булево значение то, варианты выбора 0 или 1. Если byte >,<,=, != и выбор значения до 256, если char то =, != "символу" ну и.т.д.
Общий смысл тот же что и у текущей. Не заморачиваться с построением логики.
Добавлено (20.08.2016, 09:34)
---------------------------------------------
P.S. оно конечно и сейчас можно запихнуть всю логику в таблицу, а компараторами получить нужные входы. Но не очень красиво.