В книге [1] в главе «Методы программирования от состояний» предлагается несколько процедурных способов реализации автоматов, а в главе «Объектно-ориентированный подход» предлагаются идеи по реализации автоматов с помощью объектов. К сожалению, описание предложенных в книге методов реализации автоматов является недостаточно четким, что может создать сложности при их применении на практике.
В данной работе рассматривается пять методов реализации автоматов: четыре процедурных и один объектно-ориентированный. Объектно-ориентированный метод в книге [1] представляет собой лишь набор идей, применение которых невозможно без дополнительной доработки.
Целью настоящей работы является устранение указанных недостатков. В работе предложены шаблоны для реализации автоматов различными методами. Сделана попытка, выделить общую часть реализации автоматов, не зависящую от метода процедурной реализации.
Применение методов, как и в книге [1], иллюстрируется на примере подсчета длин слов в тексте. Примеры написаны на языке программирования C++.
Для изображения графа переходов автомата используется нотация, предложенная в работе [2].