Забавным и интересным следствием этой модели является то, что все «отклонения» мысли, которые мы только что рассмотрели, в основе своей состоят из знаний и убеждений. Иными словами, любой причудливый маршрут можно разбить на прямые, естественные отрезки пути, и эти отрезки, напрямую соединяющие города-символы, представляют простые и надежные мысли — наши убеждения и знания. Если подумать, то это неудивительно, поскольку вполне разумно, что все наши фантазии, какими бы странными они ни казались, основаны на действительном опыте. Сны и мечты, возможно, не что иное, как беспорядочные путешествия по ФР нашего мозга.
Разные стили перевода
Стихотворение «Jabberwocky» подобно такому сумасбродному путешествию по ФР, следуя причудливому маршруту и перескакивая из одной области в другую. Переводы передают именно этот аспект стиха, а не точную последовательность активированных символов, хотя, конечно, переводчики стараются сделать в этом отношении все, что в их силах. В обычной прозе подобные прыжки и скачки случаются не так часто; однако и там переводчики иногда встречаются с подобными проблемами. Представьте себе, что, переводя некий роман с английского на русский, вы встречаете предложение, которое дословно переводится: «Она съела тарелку „Кампбелла“.» Однако немногие из читателей знают, что «Кампбелл» — это распространенная в Америке марка супов-полуфабрикатов. Можно попытаться исправить дело, заменив «Кампбелл» на знакомый читателю борщ. Если вы думаете, что я преувеличиваю, взгляните на первое предложение «Преступления и наказания» Достоевского, и затем на несколько английских переводов. Сравнив три различных перевода, я обнаружил следующую интересную ситуацию.
В первом предложении встречается название улицы — «С. переулок». Что это значит? Внимательный читатель Достоевского, хорошо знающий Санкт-Петербург, может изучить географию романа (тоже, кстати, данную инициалами) и обнаружить, что речь, скорее всего, идет о Столярном переулке. Достоевский, возможно, хотел, чтобы его история звучала реалистично, но не настолько, что люди буквально воспринимали адреса тех мест, где происходили события романа. Так или иначе, здесь переводчик сталкивается с проблемой, — точнее, с несколькими проблемами на разных уровнях.
Прежде всего, должен ли он сохранить сокращение, чтобы воспроизвести некий налет загадочности, появляющийся уже с первой строки книги? Результатом этого явилось бы «S. Lane» («lane» — стандартный перевод слова «переулок»). Ни один из трех переводчиков не пошел по этой дороге. Одним из решений, однако, было «S. Place» («place» — «местечко»). В переводе «Преступления и наказания», который я читал еще школьником, тоже было что-то подобное. Помню, как меня сбивали с толку все эти буквы вместо названий улиц. С самого начала книги у меня было какое-то неопределенное неприятное чувство по поводу начала книги; мне казалось, что я пропускаю что-то очень важное, но что именно — я не знал. Тогда я решил, что все русские романы — очень странная штука.
С другой стороны, переводчик мог бы быть откровенен с читателем (который, скорее всего, все равно не имеет понятия о том, выдумана ли эта улица или существует на самом деле!) и разделить с ним свои знания, написав «Stoliarny Lane» (или «Place»). Именно так решил второй переводчик, выбравший «Stoliarny Place».
А как насчет третьего перевода? Там мы читаем «Carpenter's Lane». Действительно, почему бы и нет? В конце концов, «carpenter» означает «столяр», а «s» здесь эквивалентно окончанию прилагательного, «-ный». Теперь читатель английского перевода романа может вообразить себя в Лондоне, а не в Петербурге, переживая ситуации, придуманные не Достоевским, а Диккенсом. То ли это, чего он хотел? Может быть, вместо этого лучше было бы прочесть роман Диккенса, имея в виду, что это — «соответствующее произведение по-английски»? На достаточно высоком уровне, его можно назвать «переводом» романа Достоевского — на самом деле, лучшим возможным переводом! Кому нужен какой-то Достоевский?
Как видите, перед переводчиком встает вопрос, следовать ли ему букве оригинала, его стилю или общему духу книги? И это решение он должен принять уже в первой строчке — вообразите себе, с какими трудностями он сталкивается, переводя всю книгу! Как насчет того места, где хозяйка-немка начинает кричать на своем онемеченном русском? Как можно перевести на английский ломаный русский с немецким акцентом?
Другая проблема возникает при переводе жаргонных и разговорных выражений. Что лучше — найти «аналогичное» выражение или привести дословный перевод? Если переводчик пытается найти аналогичную фразу, то он рискует «накормить борщом» типичную американку (которая, возможно, в жизни о борще не слыхала), но если он переводит все дословно, то в его переводе появится «акцент». Возможно, что это даже желательно, поскольку русская культура для английского читателя экзотична. Однако благодаря странным выражениям и неестественным оборотам он будет постоянно чувствовать некую искусственность, которая не была задумана автором, и которую не ощущают читатели оригинала.
Подобные проблемы заставляют нас усомниться, прав ли был Уоррен Уивер, один из пионеров компьютерного перевода, когда в конце 1940-х годов он сказал. «Глядя на статью, написанную по-русски, я говорю себе: „На самом деле, это написано по-английски, но закодировано какими-то странными символами. Сейчас я начну их расшифровывать.“»[37] Замечание Уивера не должно пониматься буквально; скорее, он хотел сказать, что в символах спрятан некий объективный или близкий к объективному смысл, и что хорошо запрограммированный компьютер вполне может этот смысл оттуда извлечь.
Сравнения между программами на высшем уровне
Уивер имел в виду переводы с одного человеческого языка на другой. Давайте теперь рассмотрим проблему перевода между компьютерными языками. Предположим, что два человека написали программы для разных компьютеров и мы хотим выяснить, выполняют ли они одно и то же задание. Как это возможно? Для этого нужно сравнить данные программы. Но на каком уровне? Что, если один программист написал программу на машинном языке, а другой — на языке компилятора? Сравнимы ли подобные программы? Безусловно. Но как именно это сделать? Одним способом было бы скомпилировать вторую программу, получив таким образом соответственную программу на машинном языке второго компьютера.
Теперь перед нами две программы на машинном языке. Но тут возникает другая проблема: у нас два компьютера и, следовательно, два различных машинных языка, которые могут очень сильно отличаться друг от друга. В одном компьютере могут быть слова из шестнадцати битов, а в другом — из тридцати шести. В один компьютер могут быть встроены инструкции по управлению стеком (проталкиванию и выталкиванию данных), а в другом их может не быть. Разница между аппаратурой двух компьютеров может привести к тому, что их программы могут показаться несравнимыми — и все же мы подозреваем, что они выполняют одно и то же задание, и нам бы хотелось это проверить. Очевидно, мы рассматриваем программы со слишком близкого расстояния.
Необходимо отойти подальше, перейдя от уровня машинного языка к более высокому, блочному уровню. С этой точки зрения мы можем надеяться заметить те блоки, которые делают программу разумно спланированной на глобальном, а не на местном уровне — блоки, которые подходят к друг другу таким образом, что становятся видны цели программы. Давайте предположим, что обе программы были первоначально написаны на языках высших уровней; значит, определенные блоки там уже есть. Однако теперь возникает другая проблема: существует множество блочных языков, таких, как ФОРТРАН, АЛГОЛ, ЛИСП, АПЛ и многие другие. Как можно сравнить программу на Алголе с программой на АПЛ? Безусловно, мы не будем сравнивать их строчка за строчкой; вместо этого попытаемся опять мысленно разделить эти программы на блоки в поисках неких совпадающих функциональных единиц. Таких образом, мы сравниваем не аппаратуру и не программы, но некую «эфирную сущность» — абстрактные понятия, лежащие в основе программ. Прежде чем сравнивать между собой программы, написанные на различных компьютерных языках, или два предложения на разных человеческих языках, или двух животных, необходимо выделить из нижних уровней определенный «концептуальный костяк».
Это возвращает нас к вопросу о компьютерах и мозгах: какой смысл описывать их на нижних уровнях? Можно ли в таких сложных системах каким-то объективным образом перейти от такого описания к описанию на высших уровнях? В случае компьютера мы можем легко получить распечатку содержимого памяти, так называемый дамп. На заре работы с ЭВМ, дампы использовались в том случае, когда с программой что-то не ладилось. Программист уносил такую распечатку домой и корпел над ней часами, пытаясь понять, что собой представляет каждая крохотная часть памяти. В таком случае, программист делал нечто обратное компиляции: он переводил с машинного языка на язык высшего уровня, концептуальный язык. В конце концов, он понимал цель программы и мог описать ее в терминах высших уровней: «Эта программа переводит романы с русского на английский» или «Эта программа пишет восьмиголосные фуги, основанные на любой данной ей теме».