Салам! Здесь я, в поисках идей для искуственного интеллекта, постараюсь провести параллель между человеческим интеллектом и машинным.  Нас с ЭВМ обьединяет то, что мы реагируем на события. Человек и животное реагирует на раздражители, ЭВМ - на сигналы от периферии. В ЭВМ или МК эффект человекоподобного искусственного интеллекта даёт набор обработчиков различных ситуаций (прерываний, ошибок, исключений) - этаких машинных рефлеков. Но, как можно заметить, контекст выстраивается в машинном и человеческом интеллекте разными способами. Человек и ЭВМ сохраняют контекст по разному. В ЭВМ пришёл сигнал от периферии - выполнение предыдущей программы прерывается. Обработчик завершается - ЭВМ возвращается в прерванную программу. Человек контекст не сохраняет. Если человек возвращается к какой то прерванной задаче, то это потому что есть стойкий раздражитель. Вы читаете книгу, вам кто то звонит. А по завершении разговора, вы возвращаетесь к книге, если вы никуда не ушли, ведь книга лежит на том же месте. Попробуем построить аналогии с ощущением голода и опасности. Вы ощущаете голод и ищете пропитание (идёте в магазин и начинаете готовить). Но по дороге из магазина вас настигает дождь и вы начинаете искать укрытие, так как до дома далеко добираться.Ваша программа прерывает планы на поиск пропитания, она более приоритетна. Однако, голод не тётка и вы решаете перекусить в укрытии, так как исполнение планов в первозданном виде уже невозможно.Обратите внимание на особенности. Ваше поведение строится асинхронно, т.е. вы его не планируете. Логика вашего поведения непредсказуема, но зато она адаптируется под актуальные потребности. Перекус не стоит выделять в отдельную подпрограмму, это изменённый, в ответ на изменившиеся условия, поиск пропитания. Хотя, если у вас плохая привычка всегда перекусывать вместо того, чтобы нормально пообедать, можете выделить, перекус будет иметь приоритет. Ключевое обстоятельство здесь то, что ваше поведение является ответом на что-то, а не появляется неизвестно откуда. Вы обратили внимание на то, что я описал человеческое поведение лишь в общих чертах - на самом деле здесь много деталей?  Меня интересуют лишь особенности, объявленные выше. Я не собираюсь вдаваться далеко в биологию? А как бы всё выглядело в программном варианте? Выполнение обработчиков прерываний, аналогично вашему поведению, было бы асинхронно, но не предусматривало возврата. Контекст здесь выстраивается внешними факторами. Функция какого-нибудь интерфейса программирования возвращает значение вызывающей программе, но всегда синхронно. При этом программа сама изменяет своё поведение, если нужно, основываясь на возвращаемом значении. Мы же хотим, вызывая очередной обработчик прерывания Б, изменить поведение другого обработчика А, при этом мы не знаем в какой момент времени завершится обработчик Б и какому обработчику А будет передано управление. Как вариант, можно оставлять значение в регистре процессора, стандартное назначение которого мы знаем, так как значение регистров проверяется регулярно, в отличии от ячеек памяти.  Пример #define  DEFAULT 0 #define  PAGE_ERROR 1 volatile int parameter; void page_error(void) { volatile int parameter; // этот обработчик был вызван //при ошибке страницы parameter=PAGE_ERROR; //но он не успел обработать ошибку //b вызван повторно таймером parameter=DEFAULT; } void a1(void) { parameter=2; parameter=DEFAULT; } void b(void) { //этот обработчик был вызван // switch (parameter) { case PAGE_ERROR: //обработка в условиях ошибки страницы case 2 case DEFAULT: //здесь сгенерирована ошибка отсутствия страницы } } Но это я описываю готовые программы вашего поведения. Но они откуда то ещё должны взяться. В ЭВМ и у человека это происходит по разному. В ЭВМ программу набирает программист, а человек до неё доходит через опыт.Отталкиваемся от факта, что человек имеет набор безусловных рефлексов. Уже на их базе сформируются условные. А на базе существующих условных рефлексов сформируются новые при наличии своевременной обратной связи. Это и будет памятью. Причём старые рефлекторные связи могут со временем разрушиться, например в условиях недостатка энергии. Сейчас будет мясо пример формирования памяти человека. Реакцией человека на низкочастотный импульс может являться сердечный выброс, т.к. такой импульс механически воздействует на диафрагму грудной клетки. А сокращающаяся диафрагма заставляет сердечную мышцу работать в более стеснённых условиях и увеличивать частоту сокращения. Тем временем формируется условный рефлекс - реакция нервной системы на низкочастотный импульс. И впредь в ответ на импульс увеличивается частота сокращения сердечной мышцы, причём это происходит уже без участия диафрагмы. Т. е. диафрагму мы заколебали, однако реакция на импульс необходима. И не только с точки зрения природы, пожары, к примеру, сопровождаются низкочастотными звуками. Человекоподобную память в ЭВМ можно создать, встраивая вызовы обработчиков прерываний (ошибок, исключений) . Если, допустим,  при выполнении обработчика прерывания возникает исключение, мы до выполнения команды, которая вызвала исключение, вставляем вызов обработчика исключения. Пример void page_error(void) { // это обработчик ошибки страницы } void interrupt(void) { //это обработчик прерывания // //здесь сгенерирована ошибка отсутствия страницы } //запоминаем ошибку void interrupt_saferity(void) { //это обработчик прерывания page_error(); // //ошибки отсутствия страницы больше не будет } И всё же, цифровые устройства не позволят реализовать полный аналог человеческого интеллекта. А человеческий интеллект не подчиняется детерминированным алгоритмам. Что уж говорить про описание человеческого интеллекта на каком либо языке программирования. Для того, чтобы создать искусственный интеллект, нужно определиться, мы хотим создать полный аналог человеческого интеллекта? Или всего лишь самообучающуюся систему? Но первый вариант однозначно неосуществим. Програмист, хаброридер