Тем временем в 1973 году Нико Тинберген получил Нобелевскую премию по физиологии и медицине (которую разделил с Конрадом Лоренцем, основавшим вместе с Нико науку этологию, и Карлом фон Фришем, расшифровавшим легендарный танец пчел
[105]). Всего год спустя, в 1974-м, Нико исполнилось 67 – возраст, в котором сотрудники Оксфорда обязаны уходить на пенсию, и администрация университета решила назначить ему преемника на должность ридера по поведению животных. Когда-то должность такого ранга была в Оксфорде в большой чести, но теперь это звание, кажется, вышло из употребления, оттого что понятие “профессор” решили привести в соответствие с американской практикой, трактующей его шире (в связи с чем американских профессоров у нас довольно пренебрежительно называли “микки-маусовскими профессорами”). Меня вполне устраивала моя работа лектора, поэтому на должность Нико я не претендовал.
По мнению большинства, на место Нико естественнее всего было назначить Майка Каллена. Возможно, именно поэтому – чтобы явно открыть новую страницу в истории отделения зоологии, – бóльшая часть членов комиссии, принимавшей соответствующее решение, проголосовала за Дэвида Мак-Фарленда. Как писал Ханс Круук в уже упоминавшейся биографии Тинбергена, “трудно было найти человека, более непохожего на Нико”. Хотя во многих кругах это назначение встретили в штыки, в каком-то смысле оно было удачным, по крайней мере если исходить из того, что новое назначение должно открывать новые перспективы. Научная деятельность, которой занимался Дэвид, была в высшей степени теоретического и даже математического свойства. Он активно использовал в ней свою математическую интуицию и окружил себя профессиональными математиками и инженерами, умевшими работать с формулами и расчетами. Разговоры в кофейной комнате переключились с чаек и колюшек на системы управления с обратной связью и компьютерные модели.
Пожалуй, эти изменения отражали в миниатюре происходящее в то время в биологии в целом. Я был молод, еще не утвердился на собственном пути и действовал по принципу: “Не можешь победить – присоединяйся”. Поэтому я стал учиться теории управления у инженеров и математиков, среди которых теперь оказался. А ведь лучший способ чему-либо научиться – заняться этим на практике. Поэтому я вернулся к своей страсти (или вредной привычке) – к программированию и написал для цифрового компьютера (“моего собственного” PDP-8) программу, которая позволяла ему вести себя как аналоговый компьютер. Для этого я разработал еще один язык программирования, который назвал SysGen.
В отличие от выполняемых последовательно команд обычных языков программирования, таких как Фортран, команды языка SysGen выполнялись “одновременно” (на самом деле, разумеется, не одновременно, потому что в основе работы любого цифрового компьютера лежит последовательное выполнение операций, но записать такие команды можно было в любом порядке). Работая над программой-интерпретатором SysGen Interpreter, я ставил перед собой задачу заставить цифровой компьютер вести себя так, как если бы он выполнял операции одновременно, то есть создать виртуальный аналоговый компьютер. Результаты работы при этом отображались, как и положено аналоговому компьютеру, в виде набора кривых на экране осциллографа.
Не знаю, насколько практичным был SysGen, но создание этого языка и написание для него программы-интерпретатора, несомненно, помогли мне разобраться не только в теории управления, но и в интегральном исчислении и позволили намного лучше понять суть интегрирования. Я помнил, что мой дедушка по материнской линии рекомендовал мне книгу “Математический анализ в доступном изложении” Сильвануса Томпсона (излюбленные слова которого – “Что может один дурак, может и другой” – я уже цитировал). В этой книге Томпсон начинает объяснение интегрирования с еще одной запомнившейся мне фразы: “Итак, давайте не будем терять времени и немедленно научимся интегрировать”. На уроках Эрни Дау я разобрался в интегрировании лишь отчасти, а работа над языком SysGen позволила мне вникнуть в этот предмет на практике, что всегда способствует пониманию.
Исходя из похожих соображений, я попытался на практике разобраться и в лингвистических теориях школы Ноама Хомского, что оказалось намного проще и отняло у меня намного меньше времени. Для этого я написал компьютерную программу, генерирующую случайные предложения – быть может, не особенно осмысленные, но всегда грамматически корректные. Сделать это нетрудно (что само по себе говорит о многом), если использовать язык программирования, позволяющий процедурам (подпрограммам) рекурсивно обращаться к самим себе. К таким языкам относился Алгол-60, ставший к тому времени моим любимым языком программирования под влиянием Роджера Эбботта, блестяще преуспевшего в написании программы-компилятора, которая позволяла использовать Алгол на компьютере PDP-8. Подпрограммы Алгола могли обращаться к самим себе, в отличие от подпрограмм современной версии разработанного корпорацией IBM Фортрана – этого традиционного орудия программистов, работающих в естественных науках. По поводу Фортрана мне вспоминается удачная программистская шутка, которую я услышал от Терри Винограда – одного из первопроходцев в области искусственного интеллекта. В семидесятых годах я как-то раз был в Кембридже на интереснейшей конференции, посвященной последним успехам программирования в этой области. Самым почетным гостем той конференции был именно Виноград, и в ходе своего доклада он с отменным сарказмом заметил: “Хотя, быть может, вы из тех, кто говорит: «Фортран устраивал моего дедушку, устроит и меня»”.
Пользуясь языком программирования, позволяющим процедурам рекурсивно обращаться к самим себе, очень легко – просто загляденье как – написать программу, которая будет генерировать грамматически корректные предложения. В написанной мною программе процедуры назывались NounPhrase (ГруппаСуществительного), AdjectivalPhrase (ГруппаПрилагательного), PrepositionalClause (ПредложнаяГруппа), RelativeClause (ОпределительноеПридаточное) и так далее, и любая из них могла обращаться к любой другой, в том числе к самой себе. Эта программа позволяла генерировать случайные предложения, такие как следующее:
(Прилагательное существительное (прилагательного существительного (которое наречно наречно глаголилось (в существительном (существительного (которое глаголилось))))) наречно глаголилось)
Если провести аккуратный грамматический разбор такого предложения (что я и сделал здесь с помощью скобок, которые компьютер не генерировал, а только подразумевал), можно убедиться, что оно грамматически корректно, хотя и мало что может нам сообщить. Оно синтаксически наполнено, но семантически пусто. Компьютер может без труда наполнить его семантикой (если не смыслом), заменив слова “существительное”, “прилагательное” и так далее конкретными случайно выбранными существительными, прилагательными и другими частями речи. Это могут быть, например, слова, связанные с определенной темой, такой как порнография – или орнитология. Можно также использовать словарь пришедшего из Франции напыщенного метабреда, как впоследствии сделал Эндрю Булхак, когда написал свою уморительную программу “Генератор постмодернизма”, одно из произведений которой я цитировал в “Капеллане дьявола”: