Рекурсия проявляется на уровне рекурсивных снов. Усиливается повторяющимися отражениями в зеркалах и повторами некоторых образов. Начало и конец фильма замыкаются кадрами одинокого дерева, рядом с которым - сын Александра. В конце фильма он, молчавший из-за операции на горле, повторяет извечный вопрос: "В начале было слово, почему так?" Некоторые воспринимают фильм не как описание рекурсивного сна, а как реальную будущность. Возможна и такая трактовка. Сам автор допускал многозначность в толковании своих картин. Но все же вариант с рекурсивным сном представляется более естественным. Почтальон впадает в короткий странный обморок, с женой Александра случается истерический припадок, заканчивающийся коротким сном, Александр в начале фильма внезапно теряет сознание. По аналогии можно предположить, что это тоже заканчивается сном. Вариант сна объясняет также, почему на удаленном (это специально подчеркивалось) от города участке неожиданно появляется санитарная машина. Можно предположить, что ее вызвали вечером, когда Александру стало плохо. Кроме того, при описании фантастических событий автор использует те же темные цвета и те же приемы, которые он обычно применяет в описаниях снов. Начало основного сна писателя не обозначено. Он начался или сразу после того, как Александр потерял сознание, или после рассказа Отто. Последнеее даже более логично - к этому моменту уже обозначены все ассоциативные ключи, которые в болезненном сознании писателя могли легко запустить механизм рекурсивного сна. Как мы уже говорили, это всегда страшно, а у зрителя вызывает, по крайней мере, чувство какой-то тайны. В целом Тарковский в своих фильмах постоянно стремился уничтожить зыбкую грань между сном и реальностью, показать сон как искаженное отражение реальности, а реальность как продолжение сна. Он видел вещие сны, снимал пророческие фильмы и даже предсказал свою трагическую судьбу. Он любил музыку Баха (опять рекурсия), стихи своего отца, поэта Арсения Тарковского, а перед смертью нарисовал странную картину: могила с крестом, большое дерево, в корнях его на темном фоне заметен смотрящий глаз. В детстве там, где он жил, было дерево, корни которого причудливо переплетались и выходили изпод земли. Он любил там прятаться (93). Тарковскому как никому другому удалось проникнуть в загадочный мир сновидений и запечатлеть вторую реальность. Знаменитый шведский кинорежиссер Ингмар Бергман признал первенство Тарковского в этой сфере. "Фильм, если это не документ,- сон, греза. Поэтому Тарковский - самый великий из всех... Всю свою жизнь я стучался в дверь, ведущую в то пространство, где он движется с такой самоочевидной естественностью" (94). Тарковский показывал модель мира, в которой были не просто зеркала или сновидения в зеркалах, но рекурсивное динамическое его от отражение. Поэтому все меняется и все повторяется в его мире, поэтому человек - трагическое существо - обречен вечно гнаться за своими неуловимыми отражениями, видя только тени других отражений. Бергман тоже пытался попасть в страну снов. Он ставил пьесу Стриндберга "Игра снов", он тоже видел загадочные тени и их отражения. Но в отличие от Тарковского он слабо применял рекурсию, поэтому и "проиграл соревнование". Тарковский на уровне ассоциативного мышления все время мучительно разгадывал загадку бытия от
=====================================================
(93) О Тарковском // Сост., авт. предисл. М. А. Тарковская.- М.: Прогресс, 1989.- 400 с.
(94) Бергман И. Laterna Magica // Иностр. лит,- 1989.- Э 9.- С. 211
=====================================================
истоков рефлектирующего сознания до индивидуальной смерти человека и тупиков общественного развития. Отсюда повторяющиеся символы воды и огня первичных стихий, давших начало жизни, отсюда рекурсивные сны - разгадка феномена человека в нем самом, отсюда бесконечные отражения в воде, зеркалах, судьбе, словах, космосе, в чем угодно - лишь бы отражаться, лишь бы не остановить этот колдовской поток. Только в этой игре жизнь, только это и надо запечатлеть. По крайней мере, ему, возможно, удалось разбудить многих спящих, но видящих вещие сны.
КОМПЬЮТЕРНЫЕ СНЫ
Какие сны могут сниться электронным существам? В памяти ЭВМ программы живут короткой драматической жизнью. Они получают и перерабатывают информацию, обмениваются данными, борются за ресурсы, изменяют сами себя, создают новые программные объекты, замирают, исчезают и вновь "просыпаются". Они не знают человеческих страстей, но содержат в себе отпечатки чувств и желаний программиста. Через компьютерные программы овеществляется идеальная мысль человека. Меняются технологии, меняется элементная база компьютеров. Большие надежды ученые возлагают на будущие фотонные компьютры, в которых вместо электронных сигналов будут взаимодействовать световые потоки. И если верно, что мир не может не измениться, если делать что-нибудь постоянно и достаточно долго, то, возможно, наступит день, когда еще одно порождение разума сможет самостоятельно разглядывать свои ускользающие отражения. И, может быть, именно в той будущей космической игре света и тени откроется предельный смысл мира и предназначение человека. В каком из снов разгадан ключ? Рассмотрим алгоритмически-лингвистическое моделирование процесса жизнь - сон (здесь под жизнью условно понимаем явь). Как уже неоднократно подчеркивалось, жизнь и сон в своей аналогии (особенно в творческом восприятии) заходят так далеко, что их следует считать проявлениями одной и той же алгоритмической процедуры. Эта процедура рекурсивно вызывает саму себя, и только значения локальных переменных внутри вызванной процедуры определяют периоды бытия (жизнь или сон). Локальная переменная - зто переменная величина, возникающая каждый раз при вызове процедуры, и только операторы, выполняемые внутри данной вызванной процедуры, могут менять ее значения. С исчезновением вызванной процедуры исчезает и соответствующая локальная переменная. Подробно с тонкостями программирования с введением локальных и глобальных переменных можно познакомиться в книге известного голландского специалиста Е. Дейкстры "Дисциплина программирования" (95). Человек служит интерпретируемой машиной для этой процедуры. Он проходит через жизнь все свои сны. Его восприятие реальности субъективно. Поэтому следует ввести глобальную переменную, пропускаемую через все вызовы процедур, принимающую значения жизнь или сон и выражающую осознание человеком момента своего существования. Разум анализирует текущую ситуацию (значения локальной переменной) и старается с наибольшей степенью достоверности определить значение этой переменной и присвоить его глобальной переменной. Это древний защитный рефлекс. Законы изменения значений жизнь и сон достаточно сложны и определяются психикой рассматриваемого индивидуума. Но, по меньшей мере, всегда после просыпаний сознание убеждено, что наступила жизнь. С учетом сказанного выше в условном алгоритмическом изобразительном языке программа, моделирующая жизнь - сон , имеет следующий вид:
ПРОГРАММА жизнь - сон; глобальная переменная v: (жизнь, сон); ПРОЦЕДУРА Р (х: (жизнь, сон)); локальная gеременнал и: (жизнь, сон); НАЧАЛО и:-х; ГЕНЕРИРОВАТЬ (и) l: ЕСЛИ и жизнь ТО вызвать Р (сон) ИНАЧЕ вернуться; v: жизнь; ГЕНЕРИРОВАТЬ (и); ПЕРЕХОД НА l КОНЕЦ (процедуры Р) НАЧАЛО (тело программы) вызвать Р (жизнь) КОНЕЦ
Здесь и - локальная переменная. При каждом вызове процедуры Р создается своя новая переменная
=======================================================
(95) Дейкстра Е. Эссе о понятии область действия переменных // Дисциплина программирования.- М.: Мир.
=====================================================
под именем и, доступная внутри вызванной процедуры. С исчезновением процедуры исчезает и локальная переменная. Переменная v глобальна, она передается от процедуры к процедуре и определяет субъективное восприятие жизни и сна. Величины и и v можно было бы считать наборами переменных, соответствующих процессам жизни и сна. Только для удобства и упрощения считаем их здесь одномерными переменными. Процедура ГЕНЕРИРОВАТЬ (и) задает действия, которые выполняются при заданном значении и. Можно считать, что эта процедура генерирует текст, соответствующий рассматриваемому периоду существования. Команда вернуться означает закрытие процедуры Р. После завершения выполнения вызванной процедуры вызывающая процедура продолжит свою работу, начиная со следующей после вызова команды. Значения переменной v могут меняться процедурой ГЕНЕРИРОВАТЬ. Единственное, что всегда выполняется,- установка v на жизнь после окончания сна. В этой программе сон - особый период жизни. Последовательность выполнения команд в программе жизнь - сон следующая:
вызвать Р (жизнь); жизнь и1: жизнь;
ГЕНЕРИРОВАТЬ (жизнь);
вызвать Р (сон);
сон и2: сон;
ГЕНЕРИРОВАТЬ (сон);
вернуться;
жизнь v: жизнь;
ГЕНЕРИРОВАТЬ (жизнь); * вернулись к значе
нию и1 жизнь *
жизнь
вызвать Р (сон); сон и3: сон;
ГЕНЕРИРОВАТЬ (сон);
вернуться; жизнь v: жизнь;
ГЕНЕРИРОВАТЬ (жизнь);
вызвать Р (сон);
сон и4: сон;
ГЕНЕРИРОВАТЬ (сон);
вернуться;
Как видим, жизнь сменяется сном, сон жизнью - и все повторяется вновь. Произведем следующее преобразование программы жизнь - сон: заменим везде слова жизнь на сон, а сон на жизнь. Тогда сон будет главной процедурой, периодически вызывающей жизнь. Получаем симметричную программу сон - жизнь. В ней жизнь - некоторый период, существующий внутри первого вызова сна. Какая из программ (жизнь - сон или сон - жизнь) адекватно моделирует действительность? Об этом много рассуждали философы от античности до наших дней. Все дело только в симметричной замене имен. Такое преобразование иногда используют как литературный прием. Для героя рассказа В. Брюсова "Теперь, когда я проснулся" главным был сон. В своих снах он безнаказанно совершал ужасные злодеяния. Это занятие так его увлекало, что он научился специально вызывать сны. Жизнь была только короткой необходимой подгоговкой ко сну и тоже воспринималась как этап сна. В итоге он в реальной жизни совершил кровавое убийство, думая, что все происходит во сне. Произошло несоответствие значений глбальной переменной, определяющей субъективное восприятие действительности, и локальной, задающей фазы реальности. У Борхеса в рассказе "Книга руин" маг снов в конце жизни понял, что он только призрак, который видится кому-то во сне. В том сне, начавшемся вызовом программы сон - жизнь, жизнь и сон мага были только подпрограммой процедуры ГЕНЕРИРОВАТЬ (сон). Граница между действительностью и сном может быть расплывчатой, не обозначенной четко. Поэтому часто авторы задают постепенную трансформацию значений тех или иных переменных в свою противоположность. Для моделирования подобных явлений необходимо вводить градацию степеней сна и ральности. Например, можно считать сон выражаемым отрицательным числом, а жизнь - положительным. Чем ближе сон к нулю, тем он ближе к жизни. И наоборот, жизнь переходит в сон, если значение жизни постоянно уменьшается. Если ввести несколько дополнительных переменных, легко модифицировать программу жизнь - сон таким образом, чтобы локальная сигнализирующая переменная и постепенно изменялась, переходила в свою противоположность. Если при этом значения v не менять, получим процесс, описывающий постепенное изменение жизни на сон, а сна на жизнь, и при этом человек в конце концов воспринимает себя во сне, а свою прошлую жизнь с удивлением осознает как сон. Такой эффект достигается в случае, если процедура ГЕНЕРИРОВАТЬ (сон) порождает текст, связанный с определенными событиями, временем и местом, а ГЕНЕРИРОВАТЬ (жизнь) порождает текст с другими атрибутами существования. Тогда в результате выполнения указанного преобразования человека со значением v, равным жизнь, вступает в процедуру ГЕНЕРИРОВАТЬ (сон). В силу ограниченности объема изложеиия мы не приводим подробное описание этой программы. Такое преобразование также описывалось в литературе. Пример - уже упоминавшийся рассказ Кортасара "Ночью, на спине, лицом кверху". Как задать постепенный переход одного объекта в другой мир, например объект из жизни включить в сон? Для этого нужно совершить следующие изменения в программе жизнь - сон. Локальная переменная и не затрагивается. Зато глобальная переменная, соответствующая бытию объекта, заменяется на две связанные компоненты. Первая свидетельствует о степени присутвия в жизни, а вторая определяет степень принадлежности ко сну. Каждый раз во время сна необходимо уменьшать первую компоненту и увеличивать вторую. Процедура ГЕНЕРИРОВАТЬ реагирует на эти изменения, порождая соответствуюшие описания погружений в сон. Отличие этого преобразования от предыдущего, описанного выше, в том, что меняется сам человек, а не мир. Аналогичным образом, выполняя согласованные действия с двумя двухкомпонентными переменными, можно добиться синхронной замены объектов из сна и жизни. Это распространенный прием в литературе. Иногда сон заменяется зеркалом или книгой. Аналогом сна выступает таинственное зазеркалье или текст волшебных книг. В рассказе Брюсова "Зеркало" с переменным успехом борются за право присутствия в мире две женщины - реальная и ее зеркальное отражение. В рассказе Кортасара "Аксолотль" человек, пристально наблюдающий в аквариуме неподвижное лицо водной личинки, вдруг ощущает себя поменявшимся с ней местами.
"Я видел очень близко, за стеклом, неподвижное лицо аксолотля. Без перехода, без удивления я увидел за стеклом свое лицо, вместо лица аксолотля увидел за стеклом свое лицо, увидел другую сторону стекла. Потом мое лицо отодвинулось, и я понял... Я был аксолотлем и теперь мгновенно узнал, что никакое понимание невозможно" (96).
Если в процедуре ГЕНЕРИРОВАТЬ (жизнь) описывать определенные события и с некоторым опережением задавать их в процедуре ГЕНЕРИРОВАТЬ (сон/зеркало), получим эффект вещих снов (зеркал, книг). Аналогичное можно выполнить и с прошлым. Если постепенно сближать описания событий в этих двух процедурах и в итоге генерировать один заключительный текст, получится как бы слияние предсказанного будущего (или известного прошлого) с настоящим. Подобный прием наблюдаем у многих писателей. Маркес в своем рекурсивном романе "Сто лет одиночества" заканчивает повествование эпизодом, когда последний из рода Буэндиа расшифровывает последние страницы волшебной книги Мелькиадеса, оказавшейся описанием событий рода Буэндиа и города Макондо. По мере приближения к концу поднимается ураган, тоже описанный в книге, и с последней строчкой все исчезает - город Макондо, род Буэндиа и вещая книга. Опять у Борхеса в рассказе "Чернильное зеркало" правитель зачарованно наблюдает собственную смерть в чернильном отражении. Когда палач в зазеркалье опускает меч на голову осужденного, правитель тоже падает мертвый. В "Мастере и Маргарите" Булгакова события прошлого алгоритмический модуль Иешуа - Пилат - вызываются из основной темы. Здесь действует одна рекурсивная процедура Р (х), функционирующая аналогично программе жизнь - сон. Процедура Р (Мастер и Маргарита) вызывает процедуру Р (Иешуа и Пилат). В конце все времена встречаются в последнем пристанище. Можно пойти дальше. Любые игры с переменными допустимы. Можно задавать независимые или зависимые друг от друга изменения локальных и глобальных переменных в программе жизнь - сон. Можно в качестве имен добавлять новые миры. Таким способом можно получать странные переходы жизни в сон,
============================================================
(96) Кортасар Х. Другое небо.- С. 70.
(97) Анисимов А. В. Информатика. Творчество. Рекурсия.- С, 136 - 151.
=====================================================
сна в жизнь, исчезновения и появления жизни или сна, другие измерения, метущееся мелькание или медленное таяние глобальных объектов среди снов и жизни. Это эксперименты для будущего XXI в. Путь указан. Таким образом, писатели и сны убетдают: бытие инвариантно относительно дискретно-непрерывных преобразований симметрии жизнь-сон-зеркало-жизнь. Все дело только в двух названиях, нескольких переменных величинах и законах их изменения. "Быть может, всемирная история - это история различной интонации при произнесении нескольких метафор" (98). Перейдем к рекурсивным снам. В процедуре Р (х) сон вызывается после сравнения локальной величины и со значением жизнь. Такое однозначное сравнение происходит только а случае абсолютно нормального функционирования процессов жизни и сна. Но часто механизм запуска сна задается более сложными законами; например, возможен вызов сна в процессе сна. Поэтому в описании программы жизнь - сон следует заменить условие ижизнь на предикат а(х), учитывающий и другие возможности вызова сна. Явное задание для этого предиката физиологам еще неизвестно.
ПРОГРАММА жизнь - сон; глобальная переменная v: (жизнь, сон); ПРОЦЕДУРА Р (х: (жизнь, сон)); локальная переменная и:(жизнь, сон); НАЧАЛО и:х; ГЕНЕРИРОВАТЬ (и); l: ЕСЛИ а(и) ТО вызвать Р (сон) ИНАЧЕ вернуться; v: жизнь; ГЕНЕРИРОВАТЬ (и); ПЕРЕХОД на l; КОНЕЦ (* процедуры Р *) НАЧАЛО (* тело программы *) вызвать Р (жизнь) КОНЕЦ
Как уже отмечалось, предикат а (и) может принимать значение истина и в случае, когда и равно сон. Поэтому возможны рекурсивные сны. Например, задаваемые следующей последовательностью операторов, образованных при выполнении программы.
========================================================
(98) Борхес Х. Л. Сфера Паскаля// Проза разных лет.- С. 202.
=====================================================
* Погружения в сон идут внутри сна, поэтому они часто не фиксируются сознанием. Окончание сна всегда сопровождается установкой значения глобальной переменной v, равного жизни. Несоответствие сна и установки на жизнь вызывает сильное чувство страха.
СОН ЧАРТКОВА
Н. В. Гоголь. "Портрет вызвать Р (жизнь); и1.: жизнь; ГЕНЕРИРОВАТЬ (жизнь)
...Таким образом, Чартков совершенно неожиданно купил старый портрет... Он опять подошел к портрету, с тем чтобы рассмотреть эти чудные глаза, и с ужасом заметил, что они точно глядят на него...
вызвать Р (сон); и2.: сон; ГЕНЕРИРОВАТЬ (сон); пусто вызвать Р (сон); и3.: сон; ГЕНЕРИРОВАТЬ (сон); пусто
вызвать Р (сон);
и4.: сон;
ГЕНЕРИРОВАТЬ (сон);
... Он видит ясно: простыни уже нет... портрет открыт весь и глядит мимо всего, что ни есть вокруг, прямо в него, глядит просто к нему вовнутрь. У него захолонуло сердце. И видит: старик пошевелился и вдруг уперся в рамку обеими руками... Чартков силился вскрикнуть - и почувствовал, что у него нет голоса, ...- видно, старик вспомнил, что не доставало одного свертка...
вернуться;
Полный отчаяния стиснул он всею силою в руке своей сверток, употребил все усилие сделать движенье, вскрикнул - и проснулся.
v: жизнь; ГЕНЕРОРОВАТЬ (сон);
Холодный пот облил его всего: сердце его билось так сильно, как только можно было биться;... "Неужели это был сон?" - сказал он, взявши себя обеими руками за голову... И видит он: это уже не сон: черты старика двинулись, и губы его стали вытягиваться к нему, как будто бы хотели его высосать... С воплем отчаяния отскочил он - и проснулся.
вернуться v: жизнь; ГЕНЕРИРОВАТЬ (сон);
"Неужели и эго был сон?" С бьющимся на разрыв сердцем ощупал он руками вокруг себя. Да, он лежит на постели в таком же положении, как заснул. Пред ним ширмы; свет месяца наполнял комнату... Итак, это тоже был сон... И видит ясно, что простыня начинает раскрываться, как будто под нею барахтались руки и силились ее сбросить. "Господи боже мой, что это!" - вскрикнул он, крестясь отчаянно, и проснулся.
вернуться; v: жизнь,' ГЕНЕРИРОВАТЬ (жизнь);
И это тоже был сон!... он подошел к окну и открыл форточку. Холодный ветер оживил его...
СОН СВИДРИГАЙЛОВА
Ф. М. Достоевский, "Преступлеяне и наказание"
вызвать Р (жизнь); и1: жизнь; ГЕНЕРИРОВАТЬ (жизнь)
...Ему все не спалось. Мало-помалу давешний образ Дунечки стал возникать перед ним, и вдруг дрожь прошла по его телу... Он уже забывался: лихорадочная дрожь утихала,
вызвать Р (сон); и2: сон; ГЕНЕРИРОВАТЬ (сон); пусто вызвать Р (сон); и3: сон; ГЕНЕРИРОВАТЬ (сон);
вдруг как бы что-то пробело под одеялом по руке его и по ноге. Он вздрогнул: "Фу, черт, да это чуть ли не мышь! - подумал он,- это я телятину оставил но столе..." Он бросился ловить ее, но мышь не сбегала с постели, а мелькала зигзагами во все стороны, скользила из-под его пальцев, перебегала по руке и вдруг юркнула под подушку, он сбросил подушку, но в одно мгновение почувствовал, как что-то вскочило ему за пазуху, шоркает по телу, и уже за спиной под рубашкой.
вернуться
Он нервно задрожал и проснулся.
v: жизнь; ГЕНЕРИРОВАТЬ (сон);
В комнате было темно, он лежал на кровати, закутавшись, как даве ча, в одеяло, под окном выл ветер. Он встал и уселся на краю постели спиной к окну. "Лучше уж совсем не спать" - решился они вызвать Р (сон-забытье); и4:===========сон-забытье; ГЕНЕРИРОВАТЬ (сон-забытье);
=====================================================
(93) О Тарковском // Сост., авт. предисл. М. А. Тарковская.- М.: Прогресс, 1989.- 400 с.
(94) Бергман И. Laterna Magica // Иностр. лит,- 1989.- Э 9.- С. 211
=====================================================
истоков рефлектирующего сознания до индивидуальной смерти человека и тупиков общественного развития. Отсюда повторяющиеся символы воды и огня первичных стихий, давших начало жизни, отсюда рекурсивные сны - разгадка феномена человека в нем самом, отсюда бесконечные отражения в воде, зеркалах, судьбе, словах, космосе, в чем угодно - лишь бы отражаться, лишь бы не остановить этот колдовской поток. Только в этой игре жизнь, только это и надо запечатлеть. По крайней мере, ему, возможно, удалось разбудить многих спящих, но видящих вещие сны.
КОМПЬЮТЕРНЫЕ СНЫ
Какие сны могут сниться электронным существам? В памяти ЭВМ программы живут короткой драматической жизнью. Они получают и перерабатывают информацию, обмениваются данными, борются за ресурсы, изменяют сами себя, создают новые программные объекты, замирают, исчезают и вновь "просыпаются". Они не знают человеческих страстей, но содержат в себе отпечатки чувств и желаний программиста. Через компьютерные программы овеществляется идеальная мысль человека. Меняются технологии, меняется элементная база компьютеров. Большие надежды ученые возлагают на будущие фотонные компьютры, в которых вместо электронных сигналов будут взаимодействовать световые потоки. И если верно, что мир не может не измениться, если делать что-нибудь постоянно и достаточно долго, то, возможно, наступит день, когда еще одно порождение разума сможет самостоятельно разглядывать свои ускользающие отражения. И, может быть, именно в той будущей космической игре света и тени откроется предельный смысл мира и предназначение человека. В каком из снов разгадан ключ? Рассмотрим алгоритмически-лингвистическое моделирование процесса жизнь - сон (здесь под жизнью условно понимаем явь). Как уже неоднократно подчеркивалось, жизнь и сон в своей аналогии (особенно в творческом восприятии) заходят так далеко, что их следует считать проявлениями одной и той же алгоритмической процедуры. Эта процедура рекурсивно вызывает саму себя, и только значения локальных переменных внутри вызванной процедуры определяют периоды бытия (жизнь или сон). Локальная переменная - зто переменная величина, возникающая каждый раз при вызове процедуры, и только операторы, выполняемые внутри данной вызванной процедуры, могут менять ее значения. С исчезновением вызванной процедуры исчезает и соответствующая локальная переменная. Подробно с тонкостями программирования с введением локальных и глобальных переменных можно познакомиться в книге известного голландского специалиста Е. Дейкстры "Дисциплина программирования" (95). Человек служит интерпретируемой машиной для этой процедуры. Он проходит через жизнь все свои сны. Его восприятие реальности субъективно. Поэтому следует ввести глобальную переменную, пропускаемую через все вызовы процедур, принимающую значения жизнь или сон и выражающую осознание человеком момента своего существования. Разум анализирует текущую ситуацию (значения локальной переменной) и старается с наибольшей степенью достоверности определить значение этой переменной и присвоить его глобальной переменной. Это древний защитный рефлекс. Законы изменения значений жизнь и сон достаточно сложны и определяются психикой рассматриваемого индивидуума. Но, по меньшей мере, всегда после просыпаний сознание убеждено, что наступила жизнь. С учетом сказанного выше в условном алгоритмическом изобразительном языке программа, моделирующая жизнь - сон , имеет следующий вид:
ПРОГРАММА жизнь - сон; глобальная переменная v: (жизнь, сон); ПРОЦЕДУРА Р (х: (жизнь, сон)); локальная gеременнал и: (жизнь, сон); НАЧАЛО и:-х; ГЕНЕРИРОВАТЬ (и) l: ЕСЛИ и жизнь ТО вызвать Р (сон) ИНАЧЕ вернуться; v: жизнь; ГЕНЕРИРОВАТЬ (и); ПЕРЕХОД НА l КОНЕЦ (процедуры Р) НАЧАЛО (тело программы) вызвать Р (жизнь) КОНЕЦ
Здесь и - локальная переменная. При каждом вызове процедуры Р создается своя новая переменная
=======================================================
(95) Дейкстра Е. Эссе о понятии область действия переменных // Дисциплина программирования.- М.: Мир.
=====================================================
под именем и, доступная внутри вызванной процедуры. С исчезновением процедуры исчезает и локальная переменная. Переменная v глобальна, она передается от процедуры к процедуре и определяет субъективное восприятие жизни и сна. Величины и и v можно было бы считать наборами переменных, соответствующих процессам жизни и сна. Только для удобства и упрощения считаем их здесь одномерными переменными. Процедура ГЕНЕРИРОВАТЬ (и) задает действия, которые выполняются при заданном значении и. Можно считать, что эта процедура генерирует текст, соответствующий рассматриваемому периоду существования. Команда вернуться означает закрытие процедуры Р. После завершения выполнения вызванной процедуры вызывающая процедура продолжит свою работу, начиная со следующей после вызова команды. Значения переменной v могут меняться процедурой ГЕНЕРИРОВАТЬ. Единственное, что всегда выполняется,- установка v на жизнь после окончания сна. В этой программе сон - особый период жизни. Последовательность выполнения команд в программе жизнь - сон следующая:
вызвать Р (жизнь); жизнь и1: жизнь;
ГЕНЕРИРОВАТЬ (жизнь);
вызвать Р (сон);
сон и2: сон;
ГЕНЕРИРОВАТЬ (сон);
вернуться;
жизнь v: жизнь;
ГЕНЕРИРОВАТЬ (жизнь); * вернулись к значе
нию и1 жизнь *
жизнь
вызвать Р (сон); сон и3: сон;
ГЕНЕРИРОВАТЬ (сон);
вернуться; жизнь v: жизнь;
ГЕНЕРИРОВАТЬ (жизнь);
вызвать Р (сон);
сон и4: сон;
ГЕНЕРИРОВАТЬ (сон);
вернуться;
Как видим, жизнь сменяется сном, сон жизнью - и все повторяется вновь. Произведем следующее преобразование программы жизнь - сон: заменим везде слова жизнь на сон, а сон на жизнь. Тогда сон будет главной процедурой, периодически вызывающей жизнь. Получаем симметричную программу сон - жизнь. В ней жизнь - некоторый период, существующий внутри первого вызова сна. Какая из программ (жизнь - сон или сон - жизнь) адекватно моделирует действительность? Об этом много рассуждали философы от античности до наших дней. Все дело только в симметричной замене имен. Такое преобразование иногда используют как литературный прием. Для героя рассказа В. Брюсова "Теперь, когда я проснулся" главным был сон. В своих снах он безнаказанно совершал ужасные злодеяния. Это занятие так его увлекало, что он научился специально вызывать сны. Жизнь была только короткой необходимой подгоговкой ко сну и тоже воспринималась как этап сна. В итоге он в реальной жизни совершил кровавое убийство, думая, что все происходит во сне. Произошло несоответствие значений глбальной переменной, определяющей субъективное восприятие действительности, и локальной, задающей фазы реальности. У Борхеса в рассказе "Книга руин" маг снов в конце жизни понял, что он только призрак, который видится кому-то во сне. В том сне, начавшемся вызовом программы сон - жизнь, жизнь и сон мага были только подпрограммой процедуры ГЕНЕРИРОВАТЬ (сон). Граница между действительностью и сном может быть расплывчатой, не обозначенной четко. Поэтому часто авторы задают постепенную трансформацию значений тех или иных переменных в свою противоположность. Для моделирования подобных явлений необходимо вводить градацию степеней сна и ральности. Например, можно считать сон выражаемым отрицательным числом, а жизнь - положительным. Чем ближе сон к нулю, тем он ближе к жизни. И наоборот, жизнь переходит в сон, если значение жизни постоянно уменьшается. Если ввести несколько дополнительных переменных, легко модифицировать программу жизнь - сон таким образом, чтобы локальная сигнализирующая переменная и постепенно изменялась, переходила в свою противоположность. Если при этом значения v не менять, получим процесс, описывающий постепенное изменение жизни на сон, а сна на жизнь, и при этом человек в конце концов воспринимает себя во сне, а свою прошлую жизнь с удивлением осознает как сон. Такой эффект достигается в случае, если процедура ГЕНЕРИРОВАТЬ (сон) порождает текст, связанный с определенными событиями, временем и местом, а ГЕНЕРИРОВАТЬ (жизнь) порождает текст с другими атрибутами существования. Тогда в результате выполнения указанного преобразования человека со значением v, равным жизнь, вступает в процедуру ГЕНЕРИРОВАТЬ (сон). В силу ограниченности объема изложеиия мы не приводим подробное описание этой программы. Такое преобразование также описывалось в литературе. Пример - уже упоминавшийся рассказ Кортасара "Ночью, на спине, лицом кверху". Как задать постепенный переход одного объекта в другой мир, например объект из жизни включить в сон? Для этого нужно совершить следующие изменения в программе жизнь - сон. Локальная переменная и не затрагивается. Зато глобальная переменная, соответствующая бытию объекта, заменяется на две связанные компоненты. Первая свидетельствует о степени присутвия в жизни, а вторая определяет степень принадлежности ко сну. Каждый раз во время сна необходимо уменьшать первую компоненту и увеличивать вторую. Процедура ГЕНЕРИРОВАТЬ реагирует на эти изменения, порождая соответствуюшие описания погружений в сон. Отличие этого преобразования от предыдущего, описанного выше, в том, что меняется сам человек, а не мир. Аналогичным образом, выполняя согласованные действия с двумя двухкомпонентными переменными, можно добиться синхронной замены объектов из сна и жизни. Это распространенный прием в литературе. Иногда сон заменяется зеркалом или книгой. Аналогом сна выступает таинственное зазеркалье или текст волшебных книг. В рассказе Брюсова "Зеркало" с переменным успехом борются за право присутствия в мире две женщины - реальная и ее зеркальное отражение. В рассказе Кортасара "Аксолотль" человек, пристально наблюдающий в аквариуме неподвижное лицо водной личинки, вдруг ощущает себя поменявшимся с ней местами.
"Я видел очень близко, за стеклом, неподвижное лицо аксолотля. Без перехода, без удивления я увидел за стеклом свое лицо, вместо лица аксолотля увидел за стеклом свое лицо, увидел другую сторону стекла. Потом мое лицо отодвинулось, и я понял... Я был аксолотлем и теперь мгновенно узнал, что никакое понимание невозможно" (96).
Если в процедуре ГЕНЕРИРОВАТЬ (жизнь) описывать определенные события и с некоторым опережением задавать их в процедуре ГЕНЕРИРОВАТЬ (сон/зеркало), получим эффект вещих снов (зеркал, книг). Аналогичное можно выполнить и с прошлым. Если постепенно сближать описания событий в этих двух процедурах и в итоге генерировать один заключительный текст, получится как бы слияние предсказанного будущего (или известного прошлого) с настоящим. Подобный прием наблюдаем у многих писателей. Маркес в своем рекурсивном романе "Сто лет одиночества" заканчивает повествование эпизодом, когда последний из рода Буэндиа расшифровывает последние страницы волшебной книги Мелькиадеса, оказавшейся описанием событий рода Буэндиа и города Макондо. По мере приближения к концу поднимается ураган, тоже описанный в книге, и с последней строчкой все исчезает - город Макондо, род Буэндиа и вещая книга. Опять у Борхеса в рассказе "Чернильное зеркало" правитель зачарованно наблюдает собственную смерть в чернильном отражении. Когда палач в зазеркалье опускает меч на голову осужденного, правитель тоже падает мертвый. В "Мастере и Маргарите" Булгакова события прошлого алгоритмический модуль Иешуа - Пилат - вызываются из основной темы. Здесь действует одна рекурсивная процедура Р (х), функционирующая аналогично программе жизнь - сон. Процедура Р (Мастер и Маргарита) вызывает процедуру Р (Иешуа и Пилат). В конце все времена встречаются в последнем пристанище. Можно пойти дальше. Любые игры с переменными допустимы. Можно задавать независимые или зависимые друг от друга изменения локальных и глобальных переменных в программе жизнь - сон. Можно в качестве имен добавлять новые миры. Таким способом можно получать странные переходы жизни в сон,
============================================================
(96) Кортасар Х. Другое небо.- С. 70.
(97) Анисимов А. В. Информатика. Творчество. Рекурсия.- С, 136 - 151.
=====================================================
сна в жизнь, исчезновения и появления жизни или сна, другие измерения, метущееся мелькание или медленное таяние глобальных объектов среди снов и жизни. Это эксперименты для будущего XXI в. Путь указан. Таким образом, писатели и сны убетдают: бытие инвариантно относительно дискретно-непрерывных преобразований симметрии жизнь-сон-зеркало-жизнь. Все дело только в двух названиях, нескольких переменных величинах и законах их изменения. "Быть может, всемирная история - это история различной интонации при произнесении нескольких метафор" (98). Перейдем к рекурсивным снам. В процедуре Р (х) сон вызывается после сравнения локальной величины и со значением жизнь. Такое однозначное сравнение происходит только а случае абсолютно нормального функционирования процессов жизни и сна. Но часто механизм запуска сна задается более сложными законами; например, возможен вызов сна в процессе сна. Поэтому в описании программы жизнь - сон следует заменить условие ижизнь на предикат а(х), учитывающий и другие возможности вызова сна. Явное задание для этого предиката физиологам еще неизвестно.
ПРОГРАММА жизнь - сон; глобальная переменная v: (жизнь, сон); ПРОЦЕДУРА Р (х: (жизнь, сон)); локальная переменная и:(жизнь, сон); НАЧАЛО и:х; ГЕНЕРИРОВАТЬ (и); l: ЕСЛИ а(и) ТО вызвать Р (сон) ИНАЧЕ вернуться; v: жизнь; ГЕНЕРИРОВАТЬ (и); ПЕРЕХОД на l; КОНЕЦ (* процедуры Р *) НАЧАЛО (* тело программы *) вызвать Р (жизнь) КОНЕЦ
Как уже отмечалось, предикат а (и) может принимать значение истина и в случае, когда и равно сон. Поэтому возможны рекурсивные сны. Например, задаваемые следующей последовательностью операторов, образованных при выполнении программы.
========================================================
(98) Борхес Х. Л. Сфера Паскаля// Проза разных лет.- С. 202.
=====================================================
* Погружения в сон идут внутри сна, поэтому они часто не фиксируются сознанием. Окончание сна всегда сопровождается установкой значения глобальной переменной v, равного жизни. Несоответствие сна и установки на жизнь вызывает сильное чувство страха.
СОН ЧАРТКОВА
Н. В. Гоголь. "Портрет вызвать Р (жизнь); и1.: жизнь; ГЕНЕРИРОВАТЬ (жизнь)
...Таким образом, Чартков совершенно неожиданно купил старый портрет... Он опять подошел к портрету, с тем чтобы рассмотреть эти чудные глаза, и с ужасом заметил, что они точно глядят на него...
вызвать Р (сон); и2.: сон; ГЕНЕРИРОВАТЬ (сон); пусто вызвать Р (сон); и3.: сон; ГЕНЕРИРОВАТЬ (сон); пусто
вызвать Р (сон);
и4.: сон;
ГЕНЕРИРОВАТЬ (сон);
... Он видит ясно: простыни уже нет... портрет открыт весь и глядит мимо всего, что ни есть вокруг, прямо в него, глядит просто к нему вовнутрь. У него захолонуло сердце. И видит: старик пошевелился и вдруг уперся в рамку обеими руками... Чартков силился вскрикнуть - и почувствовал, что у него нет голоса, ...- видно, старик вспомнил, что не доставало одного свертка...
вернуться;
Полный отчаяния стиснул он всею силою в руке своей сверток, употребил все усилие сделать движенье, вскрикнул - и проснулся.
v: жизнь; ГЕНЕРОРОВАТЬ (сон);
Холодный пот облил его всего: сердце его билось так сильно, как только можно было биться;... "Неужели это был сон?" - сказал он, взявши себя обеими руками за голову... И видит он: это уже не сон: черты старика двинулись, и губы его стали вытягиваться к нему, как будто бы хотели его высосать... С воплем отчаяния отскочил он - и проснулся.
вернуться v: жизнь; ГЕНЕРИРОВАТЬ (сон);
"Неужели и эго был сон?" С бьющимся на разрыв сердцем ощупал он руками вокруг себя. Да, он лежит на постели в таком же положении, как заснул. Пред ним ширмы; свет месяца наполнял комнату... Итак, это тоже был сон... И видит ясно, что простыня начинает раскрываться, как будто под нею барахтались руки и силились ее сбросить. "Господи боже мой, что это!" - вскрикнул он, крестясь отчаянно, и проснулся.
вернуться; v: жизнь,' ГЕНЕРИРОВАТЬ (жизнь);
И это тоже был сон!... он подошел к окну и открыл форточку. Холодный ветер оживил его...
СОН СВИДРИГАЙЛОВА
Ф. М. Достоевский, "Преступлеяне и наказание"
вызвать Р (жизнь); и1: жизнь; ГЕНЕРИРОВАТЬ (жизнь)
...Ему все не спалось. Мало-помалу давешний образ Дунечки стал возникать перед ним, и вдруг дрожь прошла по его телу... Он уже забывался: лихорадочная дрожь утихала,
вызвать Р (сон); и2: сон; ГЕНЕРИРОВАТЬ (сон); пусто вызвать Р (сон); и3: сон; ГЕНЕРИРОВАТЬ (сон);
вдруг как бы что-то пробело под одеялом по руке его и по ноге. Он вздрогнул: "Фу, черт, да это чуть ли не мышь! - подумал он,- это я телятину оставил но столе..." Он бросился ловить ее, но мышь не сбегала с постели, а мелькала зигзагами во все стороны, скользила из-под его пальцев, перебегала по руке и вдруг юркнула под подушку, он сбросил подушку, но в одно мгновение почувствовал, как что-то вскочило ему за пазуху, шоркает по телу, и уже за спиной под рубашкой.
вернуться
Он нервно задрожал и проснулся.
v: жизнь; ГЕНЕРИРОВАТЬ (сон);
В комнате было темно, он лежал на кровати, закутавшись, как даве ча, в одеяло, под окном выл ветер. Он встал и уселся на краю постели спиной к окну. "Лучше уж совсем не спать" - решился они вызвать Р (сон-забытье); и4:===========сон-забытье; ГЕНЕРИРОВАТЬ (сон-забытье);