Информатика и вычислительная техника
  • формат pdf
  • размер 1.68 МБ
  • добавлен 11 марта 2011 г.
Поликарпова Н.И., Шалыто А.А. Автоматное программирование
СПб.: СПбГПУ, 2008. - 227с.
В книге рассматривается автоматное программирование – подход к разработке программных систем со сложным поведением, основанный на модели автоматизированного объекта управления (расширении конечного автомата). Предлагаемый подход позволяет создавать качественное программное обеспечение для ответственных систем, охватывая все этапы его жизненного цикла и поддерживая его спецификацию, проектирование, реализацию, тестирование, верификацию и документирование. Книга предназначена для специалистов в области программирования, информатики, вычислительной техники и систем управления, а также аспирантов и студентов, обучающихся по специальностям «Прикладная математика и информатика», «Управление и информатика в технических системах» и «Вычислительные машины, системы, комплексы и сети».

Предметом этой книги является парадигма автоматного программирования.
Автоматное программирование, иначе называемое ?программирование от состояний? или ?программирование с явным выделением состояний? – это метод разработки программного обеспечения (ПО), основанный на расширенной модели конечных автоматов и ориентированный на создание широкого класса приложений.
Вопреки распространенному мнению, здесь речь идет не только и не столько о
использовании конечных автоматов в программировании, сколько о методе создания
программ в целом, поведение которых описывается автоматами.
Программирование с использованием автоматов имеет достаточно богатую историю
развития. Различные аспекты и понятия, связанные с этой идеей, рассматривались в
работах многих авторов с самых разных точек зрения и применительно к различным
конкретным вопросам. Программирование от состояний является одним из основных
стилей программирования.
Как целостная парадигма разработки ПО, автоматное программирование сформировалось, в основном, благодаря усилиям одного из авторов этой книги, который в 1991 г. предложил технологию для поддержки этого стиля программирования. В его работах можно найти обсуждение различных аспектов этого метода программирования, а краткое описание предлагаемой парадигмы программирования содержится, например, в работе [Шалыто А. А. Парадигма автоматного программирования //Научно-технический
вестник СПбГУ ИТМО. Автоматное программирование. 2008. Вып. 53, с. 3–
23.]. Однако полное и исчерпывающее изложение сути автоматного программирования как парадигмы и метода разработки программных систем в целом в настоящий момент отсутствует.
Эта книга может считаться первым шагом к восполнению этого пробела.
Термин «автоматное программирование» родился в 1997 г. в ходе беседы одного из авторов этой книги с Д. А. Поспеловым на конференции по мультиагентным
системам, проходившей в поселке Ольгино под Санкт-Петербургом. На английский язык этот термин переводится как automata-based programming. Англоязычное название было предложено в работе [Shalyto A. A. Technology of Automata-Based Programming. 2004.].
Цель книги состоит в определении терминов, образующих словарь парадигмы автоматного программирования, и систематическом изложении ее основных концепций. Книга содержит ряд примеров конкретного применения автоматного программирования для решения разнообразных прикладных задач. Примеры призваны продемонстрировать действенность, плодотворность и перспективность данной парадигмы.

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

Во второй главе описывается традиционный взгляд на автоматный подход к разработке программного обеспечения. Изложение охватывает все аспекты создания программной системы: проектирование, спецификацию и реализацию. Значительная часть второй главы посвящена задачам логического управления. Опыт решения этих задач послужил отправной точкой развития автоматного подхода и его распространения в других областях программирования. Эта глава намеренно названа «Процедурное программирование с явным выделением состояний»: обычно слово «процедурное» в этом словосочетании упускают, поскольку процедурный подход исторически является для автоматного программирования традиционным. Такое название призвано подчеркнуть смысловое отличие от третьей главы, названной «Объектно-ориентированное программирование с явным выделением состояний».

В третьей главе устанавливается связь между объектной и автоматной парадигмами. Материал этой главы призван показать, что автоматное программирование – это естественное, а не принудительное развитие объектно-ориентированного подхода. Центральная концепция автоматного программирования – автоматизированный объект управления – является по своей природе глубоко объектно-ориентированной.

Четвертая глава представляет собой краткий обзор нетрадиционных областей применения и актуальных проблем автоматного программирования. Здесь рассматривается использование автоматов для решения классических задач дискретной математики, вопросы верификации и параллелизма в автоматных программах, а также методы совместного применения генетического и автоматного программирования. Отметим, что термин ?программирование? в этой книге употребляется в широком смысле. Как процесс он означает то же, что и ?разработка?, ?создание? программного обеспечения. Как разновидность (в словосочетаниях «автоматное программирование», «объектно-ориентированное программирование» и т. п.) он является синонимом терминов ?метод?, ?подход?, ?парадигма?. Для обозначения программирования в узком смысле (написания понятного компьютеру кода) в книге используется термин ?реализация?.

Материал книги используется в учебном курсе «Теория автоматов в программировании» в Санкт-Петербургском университете информационных технологий механики и оптики (СПбГУ ИТМО) на кафедре «Компьютерные технологии», широко известной своими успехами в области олимпиадного программирования.
Более пяти лет назад создан сетевой ресурс http://is.ifmo.ru, посвященный автоматному программированию, на котором, в частности, опубликовано более 150 студенческих работ, включающих проектную документацию, которые иллюстрируют различные аспекты автоматного подхода к программированию.
Читать онлайн
Похожие разделы
Смотрите также

Карпов Ю.Г. Теория автоматов

  • формат djvu
  • размер 1.93 МБ
  • добавлен 18 марта 2010 г.
СПб.: Питер, 2003. - 208 с., ил. В книге рассматриваются: Конечные функциональные преобразователи (булевы функции, функциональная полнота); Введение в математическую логику (формальные модели, логика высказываний, логическое следствие, основы логики предикатов и логического вывода, логическое программирование); Конечные автоматы (автоматное преобразование информации, примеры КА, графы переходов, алгебраическая структурная теория КА); Автоматн...

Карпов Ю.Г. Теория автоматов

  • формат exe
  • размер 8.96 МБ
  • добавлен 09 августа 2008 г.
Конечные функциональные преобразователи.Булевы функции. Функциональная полнота.Формы представления булевых функций. Введение в математическую логику.Формальные высказывания. Логика высказываний.Логическое следствие.Основы логики предикатов и логического вывода.Логическое программирование Конечные автоматы.Автоматное преобразование информации.Примеры КА.Визуальный формализм представления моделей реактивных систем.Графы переходов при спецификации и...