Наши права в CCC были аннулированы на лето. Мы потерпели полный крах.
Когда уже казалось, что все потеряно, мой друг рассказал мне, что у одного профессора в университете бесплатная учетная запись в CCC. После окончания весеннего триместра в Лейксайде я чуть ли не каждый день ходил к терминалу на электротехническом факультете. Я продолжил программировать с того места, на котором остановился, и читал руководства, жуя гамбургеры в студенческом центре. Жизнь была прекрасна, но приходилось все лето помалкивать. Сам я уже вымахал под шесть футов, а Билл и Кент все еще выглядели учениками средней школы; я не мог рисковать, что они прискачут и сорвут мое прикрытие. Билл был в ярости, когда я в конце концов признался; мне стало не по себе. Но страсть к программированию была так сильна, что я второй раз поступил бы так же.
Осенью моего третьего года в Лейксайде, когда грехи были прощены, Стив Расселл заключил со мной сделку: в обмен на бесплатное машинное время я пытаюсь улучшить их компилятор Бейсика. По мере роста популярности языков высокого уровня компиляторы стали крайне необходимы. Компилятор – это транслятор, который переводит исходный код на языке высокого уровня в «объектные коды», двоичные биты и байты, понятные компьютеру. Как и все программное обеспечение DEC, компилятор Бейсика для PDP-10 был открыт для изменений и дополнений; можно было свободно добавлять новые функции – это и стало моим заданием. Работа была непростая – для того, кто только еще собирался записаться на первые компьютерные курсы. Полная распечатка кодов компилятора была толщиной с небольшой словарь; у меня ушло много дней, чтобы разобраться во всем и понять, как что работает. Мой ассемблерный код должен был подчиняться логике программы, и я мучительно подбирал слово за словом.
Иногда казалось, что работа мне не по зубам. Упрямство не позволяло обращаться за помощью, и я опирался на комментарии предыдущих программистов. Перед каждым озарением я целые дни сидел, совершенно ничего не понимая в исходнике.
Усталость не имеет значения в семнадцать лет, когда чем-то увлечен. Я торчал в CCC, пока глаза не начинали слипаться; дни превращались в недели, и я начал замечать некоторый прогресс. Замучившись перенабирать целые строки программы на Бейсике из-за малейшей опечатки, я воспользовался идеями строкового редактора Билла Уайера – он позволял быстро находить и вставлять нужные символы. И я фанатично комментировал каждый шаг (как предусматривал договор с нашими наставниками) для любого, кому впоследствии придется пользоваться моей работой.