Преимущества автоматического синтеза программ на языке JavaScript по автоматной спецификации (на примере реализации элемента управления ToolTip)



(С) 2007 г. О.М. Коломейцева, А.А. Шалыто

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

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

Аннотация

В последнее время программирование с явным выделением состояний все чаще применяется при реализации систем со сложным поведением. Особенно это актуально для платформ с большим числом различных событий. Так, Э. Принг в работах "Конечные автоматы в JavaScript", опубликованных на сайте IBM, описывает применение конечного автомата для разработки элемента управления ToolTip на языке JavaScript. При этом за счет применения автомата достаточно просто обеспечивается реализация анимации - медленно всплывающей подсказки.

В этих работах используется табличный способ описания автоматов. При проектировании он обладает рядом недостатков, описанных в документации, одним из которых является ручное построение кода по модели. Это может приводить к несоответствию документации и кода, как это имело место, в указанных работах, когда автор изменил код, но не внес все изменения в модель.

Настоящая работа призвана устранить эти недостатки, что демонстрируется на том же примере. При этом для генерации кода по графу переходов на языке JavaScript используется разработанный авторами шаблон XSLT для инструментального средства MetaAuto.

В заключение отметим, что указанные работы опубликованы только в начале 2007 года, что свидетельствует о том, что применение автоматов в рассматриваемой области не так очевидно, как кажется многим.