Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Автоматное программирование, Где истоки? 
:(
    Опции темы
rgsoftware
Дата 8.9.2006, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 7.6.2005

Репутация: нет
Всего: 2



Уже не первый год в книгах описывают технику, называемую, например, "автоматным программированием". Суть в том, что различные процедуры программы представляются в виде "состояний", а правила их вызова -- в виде "переходов между состояниями" конечного автомата. 

Типичный пример использования -- например, при создании стратегии жизни игрового персонажа, пусть будет муравья. Муравей либо отдыхает, либо атакует врага, либо ищет пищу.
Каждая из этих моделей поведения представляется отдельной процедурой, а вызов процедур определяется "автоматом" примерно такого вида:

режим = ОТДЫХАТЬ;
switch(режим)
{
    case ОТДЫХАТЬ: fun_REST(); break;
    case ИСКАТЬ: fun_SEARCH(); break;
    case АТАКОВАТЬ: fun_ATTACK(); break;

    // а здесь идёт логика переключений
    if(враг рядом) режим = АТАКОВАТЬ;
    if(голодный) режим = ИСКАТЬ;
    в противном случае режим = ОТДЫХАТЬ;
};

Эта, наверняка многим известная методика описана в куче книг и представляется почти что народной. Однако судя по статье (равно как и по куче других ссылок в инете) данный подход был изобретён лишь в 1991 году (!), к тому же в России.

Если честно, отказываюсь в это верить. Безусловно, перечисленные в статьи люди сделали очень много для развития этого подхода; им принадлежит творческое его развитие и авторская реализация разных систем программирования, но всё-таки... это же классика.

А теперь внимание, вопрос. Может ли кто-нибудь указать на (1) более раннее описание сходной техники; (2) определить название того, как это называется ("автоматное программирование"?) и когда этот термин появился (со ссылками, разумеется); (3) привести примеры использования данного подхода (не моделирования обычных конечных автоматов -- это любой движок регулярных выражений делает) в сравнительно старых проектах?
PM MAIL   Вверх
maxim1000
Дата 9.9.2006, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



не знаю, как насчёт практического применения (просто таких данных не искал), но в теории значительно раньше 91-го года (в той же Википедии пишут 1936) использовалось понятие машины Тьюринга - автомат в чистом виде

Добавлено @ 00:37 
но вообще-то 91 год для практического применения, действительно, звучит уж очень неубедительно (мягко говоря smile )


--------------------
qqq
PM WWW   Вверх
rgsoftware
Дата 9.9.2006, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 7.6.2005

Репутация: нет
Всего: 2



Цитата(maxim1000 @  9.9.2006,  00:32 Найти цитируемый пост)
но в теории значительно раньше 91-го года (в той же Википедии пишут 1936) использовалось понятие машины Тьюринга - автомат в чистом виде


Да в том-то и дело, что "в теории" и "автомат в чистом виде". Это и в движках рег. выражений, и в синтаксических анализаторах было. Тут речь идёт о программировании в виде имитации "автоматоподобной" машины. Хотя (имхо) вещь достаточно очевидная для любого, знающего конечные автоматы, из неё раздули чуть ли не новую парадигму, да ещё и совсем свежую по времени...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0590 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.