Автоматное расширение языка C#



© М.Г. Раер

Санкт-Петербургский государственный университет информационных технологий, механики и оптики

Проектная документация
Исполняемая программа
Исходные тексты

Аннотация

Часто поведение объекта зависит от его внутреннего состояния. Такие объекты принято описывать конечными автоматами. Существует большое количество способов их описания в программировании. Их спектр распространяется от полностью процедурных, где автомат реализуется вложенными операторами if или switch, до полностью объектно-ориентированных реализаций, где каждый элемент автомата (состояния, события, переходы, действия) представляет из себя класс. Наиболее популярной объектно-ориентированной реализацией является шаблон State.

Работа содержит анализ недостатков этого шаблона, анализ шаблона State Machime. В работе предлагается его модификация для языка C#, а также автоматное расширение этого языка, которое названо State# (S#).