КОМПЬЮТЕРНЫЕ СНЫ

КОМПЬЮТЕРНЫЕ СНЫ

Какие сны могут сниться электронным существам? В памяти ЭВМ программы живут короткой драматической жизнью. Они получают и перерабатывают информацию, обмениваются данными, борются за ресурсы, изменяют сами себя, создают новые программные объекты, замирают, исчезают и вновь «просыпаются». Они не знают человеческих страстей, но содержат в себе отпечатки чувств и желаний программиста. Через компьютерные программы овеществляется идеальная мысль человека. Меняются технологии, меняется элементная база компьютеров. Большие надежды ученые возлагают на будущие фотонные компьютеры, в которых вместо электронных сигналов будут взаимодействовать световые потоки. И если верно, что мир не может не измениться, если делать что-нибудь постоянно и достаточно долго, то, возможно, наступит день, когда еще одно порождение разума сможет самостоятельно разглядывать свои ускользающие отражения. И, может быть, именно в той будущей космической игре света и тени откроется предельный смысл мира и предназначение человека. В каком из снов разгадан ключ?

Рассмотрим алгоритмически-лингвистическое моделирование процесса жизнь — сон (здесь под жизнью условно понимаем явь). Как уже неоднократно подчеркивалось, жизнь и сон в своей аналогии (особенно в творческом восприятии) заходят так далеко, что их следует считать проявлениями одной и той же алгоритмической процедуры. Эта процедура рекурсивно вызывает саму себя, и только значения локальных переменных внутри вызванной процедуры определяют периоды бытия (жизнь или сон). Локальная переменная — это переменная величина, возникающая каждый раз при вызове процедуры, и только операторы, выполняемые внутри данной вызванной процедуры, могут менять ее значения. С исчезновением вызванной процедуры исчезает и соответствующая локальная переменная. Подробно с тонкостями программирования с введением локальных и глобальных переменных можно познакомиться в книге известного голландского специалиста Е. Дейкстры «Дисциплина программирования».[94] Человек служит интерпретируемой машиной для этой процедуры. Он проходит через жизнь и все свои сны. Его восприятие реальности субъективно. Поэтому следует ввести глобальную переменную, пропускаемую через все вызовы процедур, принимающую значения жизнь или сон и выражающую осознание человеком момента своего существования. Разум анализирует текущую ситуацию (значения локальной переменной) и старается с наибольшей степенью достоверности определить значение этой переменной и присвоить его глобальной переменной. Это древний защитный рефлекс. Законы изменения значений жизнь и сон достаточно сложны и определяются психикой рассматриваемого индивидуума. Но, по меньшей мере, всегда после просыпаний сознание убеждено, что наступила жизнь. С учетом сказанного выше в условном алгоритмическом изобразительном языке программа, моделирующая жизнь — сон, имеет следующий вид:

ПРОГРАММАжизнь — сон;

глобальная переменная v: (жизнь, сон);

ПРОЦЕДУРАР (х: (жизнь, сон));

локальная переменная и: (жизнь, сон);

НАЧАЛО

и:=х;

ГЕНЕРИРОВАТЬ (и)

I: ЕСЛИи = жизнь ТОвызвать Р (сон) ИНАЧЕвернуться;

v: — жизнь;

ГЕНЕРИРОВАТЬ (и);

ПЕРЕХОД НА I

КОНЕЦ(процедуры Р)

НАЧАЛО(тело программы)

вызвать Р (Жизнь)

КОНЕЦ

Здесь и — локальная переменная. При каждом вызове процедуры Р создается своя новая переменная под именем и, доступная внутри вызванной процедуры. С исчезновением процедуры исчезает и локальная переменная. Переменная v глобальна, она передается от процедуры к процедуре и определяет субъективное восприятие жизни и сна. Величины и и v можно было бы считать наборами переменных, соответствующих процессам жизни и сна. Только для удобства и упрощения считаем их здесь одномерными переменными. Процедура ГЕНЕРИРОВАТЬ (u) задает действия, которые выполняются при заданном значении и. Можно считать, что эта процедура генерирует текст, соответствующий рассматриваемому периоду существования. Команда вернуться означает закрытие процедуры Р. После завершения выполнения вызванной процедуры вызывающая процедура продолжит свою работу, начиная со следующей после вызова команды. Значения переменной v могут меняться процедурой ГЕНЕРИРОВАТЬ. Единственное, что всегда выполняется, — установка v на жизнь после окончания сна. В этой программе сон — особый период жизни.

Последовательность выполнения команд в программе жизнь — сон следующая:

вызвать Р (жизнь);

вызвать Р (жизнь);