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