Подсчет длин слов в строке на основе автоматного подхода



Статья опубликована в журнале «Мир ПК», 2005, № 7, с. 66-70, а также «Мир ПК-Диск», 2005, № 6, 7.

Павел Лобанов, Анатолий Шалыто

Статья в формате PDF

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

В данной работе рассматривается пять методов реализации автоматов: четыре процедурных и один объектно-ориентированный. Объектно-ориентированный метод в книге [1] представляет собой лишь набор идей, применение которых невозможно без дополнительной доработки.

Целью настоящей работы является устранение указанных недостатков. В работе предложены шаблоны для реализации автоматов различными методами. Сделана попытка, выделить общую часть реализации автоматов, не зависящую от метода процедурной реализации.

Применение методов, как и в книге [1], иллюстрируется на примере подсчета длин слов в тексте. Примеры написаны на языке программирования C++.

Для изображения графа переходов автомата используется нотация, предложенная в работе [2].

Литература

  1. Непейвода  Н.Н., Скопин  И.Н. Основания программирования. Москва-Ижевск: Институт компьютерных исследований, 2003. http://ulm.udsu.ru/~nnn/index.html
  2. Шалыто  А.А, Туккель  Н.И. Программирование с явным выделением состояний // Мир ПК, 2001. № 8, C.116-121; № 9, С.132-138. http://is.ifmo.ru/works/mirk/