ГЕДЕЛЬ, ЭШЕР, БАХ: эта бесконечная гирлянда - i_103.jpg

Рис. 83. Эпименид, приводящий в исполнение собственный приговор.

Рис. 84, показывающий видимую и невидимую части айсберга, дает понятие об отношении самого высказывания к процессам, необходимым для понимания автореферентности:

ГЕДЕЛЬ, ЭШЕР, БАХ: эта бесконечная гирлянда - i_104.png

Интересно попытаться создать автореферентное высказывание, не используя при этом слов «это высказывание». Для этого можно попробовать процитировать высказывание внутри самого себя, как например:

В высказывании «В высказывании четыре слова» четыре слова.

Однако подобная попытка обречена на провал, так как любое высказывание, которое может быть полностью процитировано внутри себя, должно быть короче себя самого. Это возможно только в том случае, если вы согласны возиться с бесконечно длинными высказываниями, как например:

Высказывание

. Высказывание

. «Высказывание

. „Высказывание

.                      и т. д. и т. п.

.   бесконечно длинно“

.  бесконечно длинно»

. бесконечно длинно

бесконечно длинно

Однако подобная техника не работает для конечных высказываний. По той же причине Геделева строчка G не может содержать явный символ числа для собственного Геделева номера — он в нее просто не умещается. Никакая из строчек ТТЧ не может содержать символ числа ТТЧ для собственного Геделева номера поскольку в этом символе всегда больше знаков, чем в самой строчке. Однако это препятствие можно преодолеть, введя в G описание ее Геделева номера с помощью понятий «код» и «арифмоквайнификация».

Один из методов получения автореференции в русском языке, не используя при этом самоцитирования или фраз типа «это высказывание» — это метод Квайна проиллюстрированный в «Арии в ключе G». Чтобы понять высказывание Квайна, требуются более простые мысленные процессы, чем те, что нужны для понимания четырех приведенных выше примеров. На первый взгляд, оно может показаться более сложным, но, на самом деле, его смысл лежит ближе к поверхности. Построение Квайна весьма напоминает Геделеву конструкцию, поскольку оно описывает некую типографскую строчку, которая оказывается изоморфной самой строке Квайна. Описание этой новой типографской строчки достигается в двух частях высказывания Квайна. Одна часть содержит инструкции по построению некоего высказывания, в то время как во второй части содержится сам строительный материал — то есть она является шаблоном. Такое высказывание больше похоже на плавающий кусок мыла, чем на айсберг (см. рис. 85).

ГЕДЕЛЬ, ЭШЕР, БАХ: эта бесконечная гирлянда - i_105.jpg

Рис. 85.

Автореферентность этого высказывания достигается здесь более прямым путем, чем в парадоксе Эпименида; для ее понимания требуется меньше скрытых процессов. Кстати, интересно заметить, что в предыдущем высказывании появляется фраза «это высказывание», однако там не возникает автореферентности; вы, вероятно, поняли, что эта фраза относится к высказыванию Квайна, а не к тому высказыванию, в котором она находится. Это показывает, насколько интерпретация таких указательных фраз как «это высказывание» зависит от контекста и какая мыслительная работа требуется для их понимания.

Самовоспроизводящаяся программа

Понятие квайнирования и его использование для получения автореференции уже было объяснено в Диалоге, так что мы здесь не будем на нем останавливаться. Давайте лучше посмотрим, как компьютер может воспользоваться той же самой техникой, чтобы воспроизвести самого себя. Следующее самовоспроизводящее высказывание написано на языке, подобном Блупу, и основано на следовании за фразой ее собственной цитаты (поскольку порядок здесь обратный квайнированию, я назову эту операцию ENIUQ — QUINE, записанное наоборот):

ОПРЕДЕЛИТЬ ПРОЦЕДУРУ «ENIUQ» [ШАБЛОН]. НАПЕЧАТАТЬ

[ШАБЛОН, ЛЕВАЯ СКОБКА, КАВЫЧКА, ШАБЛОН, КАВЫЧКА,

ПРАВАЯ СКОБКА, ТОЧКА].

ENIUQ

['ОПРЕДЕЛИТЬ ПРОЦЕДУРУ «ENIUQ» [ШАБЛОН]

НАПЕЧАТАТЬ [ШАБЛОН, ЛЕВАЯ СКОБКА, КАВЫЧКА, ШАБЛОН,

КАВЫЧКА, ПРАВАЯ СКОБКА, ТОЧКА]

ENIUQ']

ENIUQ — это процедура, определенная в двух первых строчках, и вводные данные этой процедуры называются «ШАБЛОНОМ». Когда процедура вызывается, значением ШАБЛОНА является некая строчка типографских символов. Результатом ENIUQ является операция печатания, при которой ШАБЛОН напечатан дважды: первый раз просто так, а второй раз — заключенный в кавычки и квадратные скобки и снабженный точкой в конце. Например, если бы ШАБЛОН содержал ПОВТОРЕНИЕ-МАТЬ-УЧЕНИЯ, то после операции ENIUQ у нас получилось бы:

ПОВТОРЕНИЕ-МАТЬ-УЧЕНИЯ [«ПОВТОРЕНИЕ-МАТЬ-УЧЕНИЯ»]

В последних четырех строчках вышеприведенной программы мы вызывали процедуру ENIUQ с определенным значением ШАБЛОНА, а именно, длинная строчка в кавычках: ОПРЕДЕЛИТЬ...ENIUQ. Это значение было тщательно подобрано; оно состоит из определения самой процедуры ENIUQ, за которым следует слово ENIUQ. Результатом является напечатанная еще раз программа — или, если хотите, точная копия программы. Это напоминает Квайнову версию парадокса Эпименида:

«Предваренное цитатой самого себя, порождает ложь»

предваренное цитатой самого себя, порождает ложь.

Очень важно заметить, что строчка символов, появляющаяся в кавычках в последних трех строках вышеприведенной программы (то есть, значение ШАБЛОНА), никогда не интерпретируется как набор команд То. что здесь она выглядит, как команда, получилось чисто случайно. Как мы сказали, это могло быть ПОВТОРЕНИЕ-МАТЬ-УЧЕНИЯ или любая другая строчка символов. Красота этой схемы — в том, что когда та же самая строчка появляется в первых двух строках этой программы, она интерпретируется именно как программа (поскольку там она не заключена в кавычки). Таким образом, в этой программе одна и та же строчка играет две роли один раз она функционирует в качестве программы, а другой раз — в качестве вводных данных В этом и заключается секрет самовоспроизводящихся программ и, как мы скоро увидим самовоспроизводящихся молекул. В дальнейшем я буду иногда называть самовоспроизводящиеся объекты авто-реп (сокращение от «авторепродукция»), а самоупоминающие объекты — авто-реф (сокращение от «автореференция»).

Предыдущая программа — изящный пример самовоспроизводящейся программы, написанной на языке, не предназначенном для создания подобных программ. Поэтому нам пришлось использовать понятия и операции являющиеся частью языка, такие, как слова «КАВЫЧКИ» и команда «НАПЕЧАТАТЬ». Но представьте себе, что в нашем распоряжении — язык, специально созданный для написания авто-репов, тогда программы стали бы намного короче. Операция ENIUQ-ирования уже содержалась бы в таком языке и, следовательно, не нуждалась бы в определении (такой операцией в предыдущей программе было НАПЕЧАТАТЬ). Тогда миниатюрным авто-репом было бы:

ENIUQ ['ENIUQ']

Это очень похоже на Черепаший вариант Квайновой версии парадокса Эпименида, где мы предполагаем, что глагол «квайнировать» заранее известен:

«Предваренное цитатой самого себя порождает ложь,»

предваренное цитатой самого себя, порождает ложь.

Но авто-реф может быть и короче. Например, можно представить себе компьютерный язык, программы которого должны быть сначала скопированы и только затем выполнены, если их первым символом является астериск. Тогда программа, состоящая из одного только астериска уже была бы авто-репом! Вы можете возразить, что это глупо, поскольку целиком зависит от придуманного условия. Такое возражение вторило бы моему предыдущему замечанию о том, что использование фразы «это высказывание» — почти жульничество, потому что оно слишком зависит от процессора и недостаточно — от явных указаний для достижения самовоспроизводства. Использование астериска в качестве примера авто-репа подобно использованию слова «я» как примера автореференции в обоих случаях глубинные аспекты проблемы оказываются скрытыми.