![]() |
|
![]() ![]() ![]() |
|
rgsoftware |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 7.6.2005 Репутация: нет Всего: 2 |
Уже не первый год в книгах описывают технику, называемую, например, "автоматным программированием". Суть в том, что различные процедуры программы представляются в виде "состояний", а правила их вызова -- в виде "переходов между состояниями" конечного автомата.
Типичный пример использования -- например, при создании стратегии жизни игрового персонажа, пусть будет муравья. Муравей либо отдыхает, либо атакует врага, либо ищет пищу. Каждая из этих моделей поведения представляется отдельной процедурой, а вызов процедур определяется "автоматом" примерно такого вида: режим = ОТДЫХАТЬ; switch(режим) { case ОТДЫХАТЬ: fun_REST(); break; case ИСКАТЬ: fun_SEARCH(); break; case АТАКОВАТЬ: fun_ATTACK(); break; // а здесь идёт логика переключений if(враг рядом) режим = АТАКОВАТЬ; if(голодный) режим = ИСКАТЬ; в противном случае режим = ОТДЫХАТЬ; }; Эта, наверняка многим известная методика описана в куче книг и представляется почти что народной. Однако судя по статье (равно как и по куче других ссылок в инете) данный подход был изобретён лишь в 1991 году (!), к тому же в России. Если честно, отказываюсь в это верить. Безусловно, перечисленные в статьи люди сделали очень много для развития этого подхода; им принадлежит творческое его развитие и авторская реализация разных систем программирования, но всё-таки... это же классика. А теперь внимание, вопрос. Может ли кто-нибудь указать на (1) более раннее описание сходной техники; (2) определить название того, как это называется ("автоматное программирование"?) и когда этот термин появился (со ссылками, разумеется); (3) привести примеры использования данного подхода (не моделирования обычных конечных автоматов -- это любой движок регулярных выражений делает) в сравнительно старых проектах? |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
не знаю, как насчёт практического применения (просто таких данных не искал), но в теории значительно раньше 91-го года (в той же Википедии пишут 1936) использовалось понятие машины Тьюринга - автомат в чистом виде
Добавлено @ 00:37 но вообще-то 91 год для практического применения, действительно, звучит уж очень неубедительно (мягко говоря ![]() -------------------- qqq |
|||
|
||||
rgsoftware |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 7.6.2005 Репутация: нет Всего: 2 |
Да в том-то и дело, что "в теории" и "автомат в чистом виде". Это и в движках рег. выражений, и в синтаксических анализаторах было. Тут речь идёт о программировании в виде имитации "автоматоподобной" машины. Хотя (имхо) вещь достаточно очевидная для любого, знающего конечные автоматы, из неё раздули чуть ли не новую парадигму, да ещё и совсем свежую по времени... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |