+1212 голосов |
Конечный автомат - абстракция очень полезная и удобная. Особенно в программировании.
Но есть одна беда - возиться на бумаге с моделями конечных автоматов неудобно, а программы для работы с ними или ориентированы на учёных и потому очень сложны (порой настолько, что затраты на изучение инструментария становятся просто несоизмеримыми с возможными дивидендами от его использования), или примитивно-иллюстративны.
Поэтому программка VAS (Visual Autoamata Simulator) показалась мне очень привлекательной. Она кросс-платформенная (Java), бесплатная, с открытыми исходными текстами, но это всё - мелочи.
Главное в VAS - не то, что программка является очень удобным заменителем листа бумаги, позволяющим рисовать граф переходов автомата с помощью минимума операций (двойной клик левой кнопкой мыши в окне редактора диаграмм помещает символ нового состояния - кружочек, пока нажаты Shift+левая, можно рисовать ветвь графа, правая кнопка активирует контекстно связанные с любым объектом дополнительные операции) и экспортировать кратинку в векторный eps.
Главное, - что VAS позволяет заставить нарисованные автоматы работать. Если вы задали алфавит и конечный автомат, - можете предъявлять ему строки и проверять реакцию автомата на них. А можете, по желанию, проводить пошаговую отладку (инициируется Ctrl-D, новый шаг - Ctrl-F), отлично отображаемую подсветкой элементов диаграмм.
Кроме того, VAS позволяет автоматически преобразовывать недетерминированные конечные автоматы в детерминированные.
А еще VAS умеет имитировать машину Тьюринга (эта возможность, конечно, больше нужна студентам).
Симпатичная штука - еле видные желтые "прицельные линии", возникающие при перемещении объектов диаграммы и позволяющие добиваться симметрии (для того, чтобы диаграмма легче читалась) не "на глаз", а с большей точностью.
В общем, - весьма небесполезная вещь, особенно для документирования и отладки на уровне логики работы всяких нетривиальных (и, напротив, - тривиальных) фрагментов кода. Например, - распознавания классов битовых строк или строк символов.
Як RPA-платформа допомогла SkyUр автоматизувати оплату рахунків
+1212 голосов |
Дуже дякую. Знадобиться.
Действительно, интересная штука. И правильно вы заметили насчет FSA...