98642.fb2
Посвящается Гарри Ти, профессору информатики в Оклендском университете, который:
— является математиком, специалистом по компьютерам и историком науки;
— обнаружил в Данидине (Новая Зеландия), детали аналитической машины Беббеджа;
— программировал в конце пятидесятых компьютер ВИСТ и стал с тех пор коллегой и другом;
— такой же Билл Ригли, как я — человек, от лица которого ведется повествование.
Перевел с английского Кирилл Королев.
Впервые с цифровой вычислительной машиной я столкнулся в 1958 году. Все равно что в каменном веке, верно? Однако нам тогда казалось, что мы ушли бесконечно далеко от наших предшественников, которые лет десять назад пользовались исключительно коммутационными панелями и у которых вершиной человеческой мысли считался плохонький калькулятор.
Как бы то ни было, к 1958 году соперничество между аналоговыми и цифровыми ЭВМ, которое в будущем закончится победой последних, только разгоралось. А первый компьютер, который мне поручили программировать, оказался по любым меркам настоящей скотиной.
Он назывался ВИСТ, что расшифровывалось как «вычислительная информационная система», а создан был вслед за ПОКР, то бишь «программируемым калькулятором», разработанным Национальной физической лабораторией в Теддингтоне (сей агрегат не преминули, вполне естественно, перекрестить в ПОКЕР). В отличие от ПОКР наш компьютер предназначался не только для научных исследований; кстати, один из разработчиков ПОКР, когда ему задали соответствующий вопрос, заявил: «Если бы мы предполагали, что компьютеры так быстро получат практическое применение, наверняка довели бы свою машинку до ума».
Размеры ВИСТ впечатляли. Когда требовалось устранить неполадки, специалисты попросту заходили внутрь машины. Случалось это довольно часто, причем «железо» отказывало реже, чем происходили сбои в программах (сами понимаете, в ту пору программирование находилось в зачаточном состоянии).
Хотел было написать, что компьютер не имел ни ассемблеров, ни компиляторов, но понял, что это не совсем так. Мы располагали компилятором с плавающей точкой; он назывался «Альфа-код» и работал в тысячу раз медленнее, чем требовалось, поэтому ни один уважающий себя программист им не пользовался. Программировали наудачу, выжимая максимум из 402 слов быстродействующей и 8192 слов резервной памяти. Когда же максимума не хватало, программисту приходилось лезть за перфокартами: сначала засовывать их в машину, а затем вынимать обратно.
А если учесть, что программ-конвертеров из двоичного кода в десятичный, как правило, избегали, потому что они занимали много места; если добавить, что все команды писались в двоичном коде, то есть от программиста требовалось близкое знакомство с подобным представлением чисел; если упомянуть, что перфокарты пробивали вручную и компьютер (по каким-то до сих пор не понятным мне причинам) воспринимал двоичные числа, так сказать, наоборот — 13, к примеру, как 1011, а не 1101… В общем, представление, надо полагать, уже сложилось.
Обо всем этом я рассказываю не потому, что стремлюсь пробудить интерес читателей (а скорее, нагнать на них скуку). Я просто хочу, чтобы вы поняли — к человеку, который хоть раз в жизни программировал ВИСТ или что-нибудь вроде того, следует относиться уважительно и не отмахиваться от его слов.
Несколько лет спустя появились новые модели, возник спрос, у программистов появилась возможность выбора. Мы подались кто куда — в университеты, в бизнес, за границу… Но старые связи сохранились, успешно выдержав проверку временем.
Среди всех, с кем я тогда работал, выделялся Билл Ригли — высокий кудрявый парень. Он любил приодеться, носил твидовые костюмы и в разговоре «акал», что характерно для жителей Бостона. Однако Билл Ригли был вовсе не бостонцем и даже не американцем. Он прибыл из Новой Зеландии и собственными глазами видел то, о чем многие из нас едва слышали — например, Большой барьерный риф. О родных местах он, правда, почти не заговаривал, но все же, видимо, тосковал, поскольку, проведя лет пять в Европе и Америке, вернулся домой и стал работать на математическом факультете (а впоследствии — в лаборатории компьютерных технологий) Оклендского университета.
Окленд расположен на Северном острове, который чуть ближе к Восточному побережью США, где обосновался я, нежели продуваемый ветрами Южный. Тем не менее мы с Биллом поддерживали связь, благо наши научные интересы совпадали, встречались то в Стэнфорде, то в Лондоне или где-нибудь еще и со временем стали хорошими друзьями. Когда умерла моя жена, Эйлин, именно Билл помог мне справиться с отчаянием и поведал однажды тайну, наложившую отпечаток на всю его жизнь (но об этом ни слова). На сколько бы ни затягивалась разлука, мысли друг друга мы подхватывали на лету, словно и не расставались.
Билл отличался поистине энциклопедическими интересами, но особую склонность питал к истории науки. Неудивительно, что по возвращении в Новую Зеландию он принялся изучать прошлое страны, чтобы выяснить, какой вклад внесло это островное государство в мировую науку. Удивляться пришлось потом. Несколько месяцев назад он прислал письмо, где говорилось, что на ферме поблизости от Данидина, на южной оконечности Южного острова, найдены остатки аналитической машины Чарлза Беббеджа.
Кто такой Беббедж и чем он знаменит, было известно еще в конце 50-х. В те годы имелась одна-единственная приличная книжка по цифровым компьютерам — «Быстрее мысли» Боудена, — и в первой главе подробно рассказывалось об эксцентричном англичанине. Беббедж ненавидел уличных музыкантов и презирал Королевское общество, существовавшее, по его словам, только для того чтобы устраивать званые обеды, на которых члены общества вручали друг другу почетные награды. Несмотря на свои странности, Беббедж стал для современных программистов кем-то вроде святого покровителя. Начиная с 1834 года и до самой смерти он безуспешно пытался построить первую в мире цифровую вычислительную машину. Суть задачи ему была ясна, все упиралось в механику. Кстати, вы сами можете представить компьютер, собранный из шестеренок, цепей, ремней, пружин и прочих железяк?
А Беббедж мог. И, пожалуй, добился бы своего, преодолев чисто технические трудности, если бы не роковая ошибка: он все время норовил что-то исправить и улучшить. Собрав устройство наполовину, он разбирал его до последнего винтика и принимался конструировать заново. Поэтому к 1871 году, когда Беббедж скончался, аналитическая машина по-прежнему оставалась недостижимой мечтой. После смерти изобретателя детали машины отправили в Кенсингтон, в музей истории науки, где они хранятся и по сей день.
А поэтому ничуть неудивительно, что к письму Ригли я отнесся, мягко говоря, недоверчиво.
В ответном письме я постарался как можно тактичнее остудить его пыл. Какое-то время спустя от Ригли пришла посылка, полная самых странных документов.
Билл сопроводил посылку запиской, сообщая в своей обычной грубоватой манере: детали аналитической машины ему удалось обнаружить лишь потому, что «новозеландцы, в отличие от всех остальных, не разбрасываются полезными вещами». Кроме того, он указывал, что в XIX веке посещение Австралии и Новой Зеландии для образованного англичанина было почти обязательным (чем-то вроде путешествия по Европе для молодых аристократов), и приводил множество примеров. Зеленый континент посетил не только Чарлз Дарвин, чей «Бигль» приставал к австралийскому берегу, но и немало других ученых, путешественников и искателей приключений. К примеру, в 50-е годы прошлого столетия тут побывали сыновья Беббеджа.
В посылке оказались фотографии некоего устройства — сплошные шестерни, цепи и цилиндры. Это и впрямь отдаленно напоминало аналитическую машину, хотя понять, как устройство работает, было невозможно.
Ни записка, ни фотографии меня не убедили. Скорее, наоборот. Я начал было сочинять письмо, однако мне в голову неожиданно пришла такая мысль: многие историки науки знают науку гораздо меньше, чем историю; вдобавок лишь единицы разбираются в компьютерах. А Билл Ригли — специалист по компьютерам, увлекшийся историей науки. Одурачить его непросто — если, конечно, он сам того не захочет.
В общем, с ответным письмом я решил повременить и правильно сделал, потому что в посылке отыскался документ, который уничтожил всякие сомнения. То была копия написанной от руки инструкции к аналитической машине Беббеджа, датированная 7 июля 1854 года. Билл утверждал, что оригинал у него, и я первый, кому стало известно об открытии, но хорошо бы пока сохранить все в тайне.
Чтобы вы смогли представить мое изумление, придется снова обратиться к истории ЭВМ. Причем забраться довольно глубоко, в 1840 год.
Именно тогда итальянский математик Луиджи Федерико Менабреа услышал в Турине от Беббеджа об аналитической машине. Позднее, получив от Беббеджа письмо, в котором излагались основные принципы работы устройства, Менабреа написал по-французски статью, опубликованную в 1842 году. В том же году Ада Лавлейс (дочь лорда Байрона, леди Августа Ада Байрон Лавлейс) перевела статью Менабреа и присовокупила к ней свои пространные примечания. Эти примечания были первой в мире инструкцией по программированию — Ада Лавлейс поясняла, как составить программу для аналитической машины, подробно описывая хитроумные техники рекурсии, цикличности и ветвления.
Иными словами, руководство по программированию появилось за двенадцать лет до 1854 года; вполне возможно, что в Новой Зеландии Билл обнаружил экземпляр именно этого руководства.
Возможно, да не совсем. Прежде всего, копия, присланная Биллом, значительно превосходила инструкцию Ады Лавлейс по объему. В ней затрагивались столь высокие материи, как непрямая адресация и перераспределение памяти под конкретные программы, а также предлагался новый язык программирования — нечто вроде примитивного ассемблера.
Конечно, у Ады Лавлейс могли возникнуть подобные, весьма экстравагантные для того времени идеи. Пускай все ее записные книжки утеряны, никто не станет отрицать, что она была чрезвычайно одаренной личностью. Однако Ада Лавлейс умерла в 1852 году, а в тех работах, что сохранились до наших дней, нет и намека на новые горизонты. Вдобавок, на копии, которую прислал Билл, имелись инициалы «Л. Д.», тогда как Ада Лавлейс обычно подписывалась «А. А. Л.».
Я проштудировал текст, уделив особое внимание заключительному разделу, который содержал в качестве примера программу вычисления объема твердого тела неправильной формы методом интегрирования, а еще — распечатку результатов.
Существовали три варианта. Первый — кто-то состряпал достаточно убедительную фальшивку. Второй — что сам Билл, по неведомым мне причинам, затеял эту аферу. Ни то, ни другое объяснение меня не устраивало. Ригли был ученым-консерватором, осторожным и придирчивым. Таким образом, наиболее вероятным казался третий вариант — кто-то в Новой Зеландии построил аналитическую машину и добился с ее помощью того, о чем Беббедж и не мечтал.
Хорошенькая возможность, верно? Точнее, невозможность. Ничего удивительного, что Билл попросил сохранить все в тайне. Да если кто-нибудь узнает, он станет посмешищем для всего ученого мира!
И я с ним на пару. Что ж… Я совершил то, чего никогда раньше не делал — снял трубку телефона и набрал новозеландский номер Билла.
— Ну, что скажешь? — спросил он, едва мы обменялись приветствиями.
— Ты все проверил?
— Я отправил образцы бумаги в пять лабораторий. Одна в Японии, две в Европе и две в США. Они датируют бумагу и чернила промежутком с 1840 по 1875 год; среднее значение — 1850. Детали, которые я нашел, были завернуты в промасленную мешковину. Анализ показал приблизительно те же сроки — с 1830 по 1880 год. — Билл помолчал, затем прибавил: — Появилось кое-что еще.
— Что же?
— Это не телефонный разговор. — После продолжительной паузы он спросил: — Ты ведь прилетишь?
— Хорошо бы знать куда…
— В Крайстчерч. Это на Южном острове. Нам предстоит забраться за Данидин. Да, не забудь теплую одежду, у нас здесь зима.
Так все и началось.
Золотистые волосы стали седыми, к ним добавилась бородка с проседью, обрамлявшая обветренное лицо. Билл Ригли напоминал обликом Старого Морехода,[1] но в остальном остался все таким же, если не считать немного странного взгляда.
Он встретил меня в аэропорту Крайстчерча и сразу, даже не протянув руки, выпалил:
— Если бы это случилось не со мной, я бы ни за что не поверил.
И повел меня к машине.
Билл родился на Южном острове, поэтому дорога из Крайстчерча в Данидин была ему хорошо знакома. Я устроился на сиденье, которое считал водительским (в Новой Зеландии, как и в Англии, движение левостороннее) и, пребывая в странном, но приятном оцепенении после долгого перелета, разглядывал пейзажи за окном.
Мы пересекали равнину Кентербери. Шоссе вело по прямой через темно-коричневые поля. Урожай, судя по торчавшим из земли редким стебелькам, собрали без малого три месяца назад; больше смотреть было не на что, пока мы не добрались до Тимару и не свернули на дорогу, которая бежала по побережью: слева отливало свинцом море, а справа темнела все та же равнина. Я уже бывал на Южном острове, однако надолго не задерживался, поэтому лишь теперь начал понимать, почему Окленд кажется Биллу «набитым под завязку». Навстречу нам попадались автомобили, мы видели людей у дороги, но случалось и то, и другое крайне редко. Чем дальше мы забирались на юг, тем становилось холоднее; пошел дождь, море скрылось за пеленой тумана.
Едва расположившись в машине, мы принялись болтать обо всем на свете, словно намеренно избегая серьезного разговора. В конце концов Билл, выдержав паузу (тишину нарушали только рокот двигателя да шарканье «дворников» по стеклу), произнес: