Запишу сюда, чтобы не забылось. Особенно впечатлила цветущая вишня:
Это всё для того, чтобы сделать живую демку хождения по недетерминированному конечному автомату:
- Есть алгоритм превращения НКА в ДКА, что необходимо для превращения автоматной (линейной) грамматики в такую, которую можно запрограммировать автоматом (например, для парсера).
- Этот алгоритм рассказывают на втором курсе ВМиК на лекциях и семинарах. Задачи на применение алгоритма входят в экзамен.
- Алгоритм, если его применять формально, не очень очевиден. Но он основан на простом принципе нахождения одновременно во всех состояниях при обходе НКА.
- Живая демонстрация такого обхода — хорошее наглядное пособие.
- Лучше всего сделать такую демку, чтобы более-менее любой автомат можно было там набить, а потом кормить ему строки, и чтобы было видно, как он обходится. Просто супер, если при этом ещё и будет частично строиться результирующий ДКА.
- Чтобы было удобно, это хорошо сделать на HTML5 + CSS + JavaScript. Вот чтобы дуги и состояния рисовать, и нужно кун-фу по ссылке.