программирования, позволяющий процедурам (подпрограммам) рекурсивно обращаться к самим себе. К таким языкам относился Алгол-60, ставший к тому времени моим любимым языком программирования под влиянием Роджера Эбботта, блестяще преуспевшего в написании программы-компилятора, которая позволяла использовать Алгол на компьютере PDP-8. Подпрограммы Алгола могли обращаться к самим себе, в отличие от подпрограмм современной версии разработанного корпорацией IBM Фортрана – этого традиционного орудия программистов, работающих в естественных науках. По поводу Фортрана мне вспоминается удачная программистская шутка, которую я услышал от Терри Винограда – одного из первопроходцев в области искусственного интеллекта. В семидесятых годах я как-то раз был в Кембридже на интереснейшей конференции, посвященной последним успехам программирования в этой области. Самым почетным гостем той конференции был именно Виноград, и в ходе своего доклада он с отменным сарказмом заметил: “Хотя, быть может, вы из тех, кто говорит: «Фортран устраивал моего
Пользуясь языком программирования, позволяющим процедурам рекурсивно обращаться к самим себе, очень легко – просто загляденье как – написать программу, которая будет генерировать грамматически корректные предложения. В написанной мною программе процедуры назывались
Если провести аккуратный грамматический разбор такого предложения (что я и сделал здесь с помощью скобок, которые компьютер не генерировал, а только подразумевал), можно убедиться, что оно грамматически корректно, хотя и мало что может нам сообщить. Оно синтаксически наполнено, но семантически пусто. Компьютер может без труда наполнить его семантикой (если не смыслом), заменив слова “существительное”, “прилагательное” и так далее конкретными случайно выбранными существительными, прилагательными и другими частями речи. Это могут быть, например, слова, связанные с определенной темой, такой как порнография – или орнитология. Можно также использовать словарь пришедшего из Франции напыщенного метабреда, как впоследствии сделал Эндрю Булхак, когда написал свою уморительную программу “Генератор постмодернизма”, одно из произведений которой я цитировал в “Капеллане дьявола”:
Исследуя теорию капитализма, мы сталкиваемся с выбором: отвергнуть неотекстуальный материализм либо заключить, что социум имеет объективную ценность. Если справедливы положения диалектического деситуационизма, то необходимо выбрать между хабермасовским дискурсом и подтекстовой парадигмой контекста. Можно сказать, что субъект контекстуализируется в текстуальный национализм, который включает истину как реальность. В некотором смысле предпосылка подтекстовой парадигмы контекста гласит, что реальность происходит из коллективного бессознательного.
Смысла в этой случайным образом генерируемой чуши примерно столько же, сколько во множестве журналов, посвященных метабредням “теории литературы”, и программа Булхака способна генерировать в буквальном смысле бесконечное их количество.
Примерно в тот же период я занимался еще двумя проектами, связанными с программированием. Результаты этих проектов не нашли непосредственного применения на практике, но позволили мне развить навыки, пригодившиеся впоследствии. Первым было написание программы, позволяющей переводить с одного языка программирования на другой – прежде всего с Бейсика на Алгол-60. Для этих двух языков моя программа работала хорошо и, если изменить в ней некоторые детали, позволяла переводить с любого языка, использующего алгоритмы того же типа, на любой другой. Вторым проектом было написание программы STRIDUL-8, позволяющей компьютеру PDP-8 петь, как сверчок.
Я решил заняться сверчками под влиянием своего друга из Беркли нейробиолога Дэвида Бентли, а мой аспирант Тед Берк (теперь профессор в Небраске), имевший склонность к энтомологии, с энтузиазмом выбрал для своей диссертации связанную с ними тему. Дэвид любезно прислал мне яйца тихоокеанского сверчка
Устройство, с помощью которого я изучал поведение сверчков, было не чем иным, как качелями, изготовленными из древесины бальсы и поэтому очень легкими, – какими они и должны быть, чтобы их мог приводить в движение сверчок. Они представляли собой всего лишь длинный желобок, перекрытый на концах и сверху сеткой и укрепленный посередине на единственной вращающейся оси. Для каждого опыта в желобок помещался только один сверчок, который мог свободно ходить по желобку из конца в конец так часто, как ему хотелось. Когда он переходил на другую половину желобка, качели, как положено, склонялись в другую сторону, и это регистрировалось микропереключателем, который (что существенно) при этом также менял положение источника звука на противоположное. У обоих концов качелей располагались два маленьких динамика. Песня ухаживания всегда звучала из динамика, расположенного на противоположном конце качелей по отношению к тому, ближе к которому находился сверчок. Итак, представьте, что вы самка сверчка, сидящая ближе к западному концу желобка. Со стороны восточного конца вы слышите песню. Вам она нравится, поэтому вы начинаете ползти на восток, в направлении ее источника. Но когда вы переползаете на восточную половину желобка, под действием вашего веса восточный конец качелей