Сотрудниками кафедры "Компьютерные технологии" СПбГИТМО (ТУ) предложена новая парадигма программирования, базирующаяся на применении конечных автоматов.
На основе этой парадигмы создается технология программирования, ориентированная на открытую программную документацию, которая поддерживает все этапы разработки программного обеспечения: проектирование, реализацию, тестирование, документирование. Эта технология названа "SWITCH-технология" или "программирование с явным выделением состояний".
Предлагаемая технология значительно расширяет традиционное представление об автоматах [по Хопкрофту (Hopkroft) и Ульману (Ullman)], как о моделях для обработки цепочек символов. Ограниченность такого взгляда привела к тому, что автоматы в программировании в основном использовались при построении трансляторов и в алгоритмах обработки текстов (например, при поиске подстрок).
Многочисленные примеры применения предлагаемой технологии показывают, что автоматы могут эффективно использоваться в задачах управления в широком смысле этого слова.
Технология программирования с явным выделением состояний не зависит от применяемых языков программирования и инструментальных средств и успешно используется в разнообразных программно-аппаратных средах, в том числе и в микроконтроллерах с памятью порядка всего 2 Кбайта.
Материалы, посвященные предлагаемой технологии, расположены на сайте http://is.ifmo.ru. Эти материалы включают в себя статьи разработчиков технологии, примеры проектной документации и отзывы тех, кто применял предлагаемую технологию.
В данный момент на сайте в качестве примеров выложена документация для следующих программных проектов:
Последний из перечисленных проектов был отмечен в журнале "Магия ПК", 2002, №11, как наиболее интересный из всех танков, созданных для игры Robocode, которая в настоящее время овладевает умами все большего числа программистов.
В ближайшее время на сайте будет выложена документация по проектам, разрабатываемым в настоящий момент, к которым относятся в частности:
Кроме того, технологию планируется использовать при визуализации классических вычислительных алгоритмов для интернет-школы программирования. Задача визуализации становится формальной и реализуется единообразно при использовании программ с явным выделением состояний.
В 2003 году будет издана книга "Теория автоматов в программировании", в которой предлагаемая парадигма будет описана подробно.