Выбрать главу

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

А для разработки систем, состоящих из множества приложений (от нескольких десятков до тысяч), технология субъектно-ориентированного программирования должна стать основополагающей, и кто знает, может быть, она заложит основу для следующего шага в программировании — создания сложных самоорганизующихся интеллектуальных систем!

Любопытно, что упоминаемая в статье switch-технология предложена российским ученым, представителем Гавриловской школы[ Школа по теории дискретных устройств была организована членом-корреспондентом АН СССР Михаилом Александровичем Гавриловым в конце 1960-х годов] А. А. Шалыто. Она основана на применении в программировании идей теории систем управления. Автор первоначально предложил ее для алгоритмизации и программирования систем логического управления, в которых ввод входных воздействий выполняется по опросу (как, например, в программируемых логических контроллерах и других подобных задачах).

В этой технологии базовым является понятие «состояние». Добавляя к нему понятие «входное воздействие», мы получаем «автомат без выхода». А дополнив технологию «выходным воздействием», мы получаем: автомат = состояния + входные воздействия +выходные воздействия. Соответствующий подход был назван «автоматным программированием».

В дальнейшем Шалыто и Н. И. Туккель развили этот подход для программирования более широкого класса задач. Авторы приводят пример применения switch-технологии при разработке системы управления дизель-генератором, реализуемой на промышленном компьютере с операционной системой QNX, в которой управляющая программа выполняется как один процесс, а программа, моделирующая объект, — как другой процесс. При этом был создан вариант switch-технологии для разработки программного обеспечения более широкого класса систем управления — «реактивных» (reactive), реагирующих на события. Такие системы обычно реализуются на промышленных компьютерах, работающих под управлением ОС реального времени. Рассмотренный подход является процедурным, а соответствующий стиль программирования был назван «программирование с явным выделением состояний»; существует и объектно-ориентированное программирование с явным выделением состояний.

Еще одна область применения автоматного программирования — классические алгоритмы, и в частности, построение визуализаторов алгоритмов.

У автоматных методов большое будущее, и хотя это научное направление все еще находится в стадии становления, switch-технология имеет все шансы занять достойное место в программировании.

Подробнее на эту тему можно прочитать в книге Шалыто А.А. Switch-технология. Алгоритмизация и программирование задач логического управления. — СПб.: Наука, 1998. Или на сайтеis.ifmo.ru.

ИГРЫ: Ролевые игры: Жизнь офлайн

Автор: Эмма Михейкина emma@goldeforests.ru

Компьютерная игра — это всегда имитация. Развитие технологий все сильнее приближает ее к реальности, но никакие пиксельные шейдеры и многомерный звук не способны свести это различие на нет. И если, например, любитель авиасимуляторов захочет узнать, каково на самом деле управлять настоящим боевым самолетом в боевых условиях — сделать это будет непросто. Особняком здесь стоят RPG, в которые можно легко поиграть «по-настоящему», безо всякого компьютера. Предлагаемая вашему вниманию статья посвящена именно таким живым ролевым играм. — И.Щ.

Объяснить человеку, который никогда не играл в ролевые игры, что это такое, — весьма непросто. Рассказать об этом явлении в одной статье и нигде не погрешить против истины — практически невозможно. Всегда найдутся люди, которые скажут, что «все было совсем не так, я знаю, я там был!»

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

Ролевые игры — это вид интеллектуального развлечения для группы лиц, состоящего в моделировании различных жизненных ситуаций, с участием ведущего (мастера), исполняющего функции сценариста и арбитра.