Выбрать книгу по жанру
Фантастика и фэнтези
- Боевая фантастика
- Героическая фантастика
- Городское фэнтези
- Готический роман
- Детективная фантастика
- Ироническая фантастика
- Ироническое фэнтези
- Историческое фэнтези
- Киберпанк
- Космическая фантастика
- Космоопера
- ЛитРПГ
- Мистика
- Научная фантастика
- Ненаучная фантастика
- Попаданцы
- Постапокалипсис
- Сказочная фантастика
- Социально-философская фантастика
- Стимпанк
- Технофэнтези
- Ужасы и мистика
- Фантастика: прочее
- Фэнтези
- Эпическая фантастика
- Юмористическая фантастика
- Юмористическое фэнтези
- Альтернативная история
Детективы и триллеры
- Боевики
- Дамский детективный роман
- Иронические детективы
- Исторические детективы
- Классические детективы
- Криминальные детективы
- Крутой детектив
- Маньяки
- Медицинский триллер
- Политические детективы
- Полицейские детективы
- Прочие Детективы
- Триллеры
- Шпионские детективы
Проза
- Афоризмы
- Военная проза
- Историческая проза
- Классическая проза
- Контркультура
- Магический реализм
- Новелла
- Повесть
- Проза прочее
- Рассказ
- Роман
- Русская классическая проза
- Семейный роман/Семейная сага
- Сентиментальная проза
- Советская классическая проза
- Современная проза
- Эпистолярная проза
- Эссе, очерк, этюд, набросок
- Феерия
Любовные романы
- Исторические любовные романы
- Короткие любовные романы
- Любовно-фантастические романы
- Остросюжетные любовные романы
- Порно
- Прочие любовные романы
- Слеш
- Современные любовные романы
- Эротика
- Фемслеш
Приключения
- Вестерны
- Исторические приключения
- Морские приключения
- Приключения про индейцев
- Природа и животные
- Прочие приключения
- Путешествия и география
Детские
- Детская образовательная литература
- Детская проза
- Детская фантастика
- Детские остросюжетные
- Детские приключения
- Детские стихи
- Детский фольклор
- Книга-игра
- Прочая детская литература
- Сказки
Поэзия и драматургия
- Басни
- Верлибры
- Визуальная поэзия
- В стихах
- Драматургия
- Лирика
- Палиндромы
- Песенная поэзия
- Поэзия
- Экспериментальная поэзия
- Эпическая поэзия
Старинная литература
- Античная литература
- Древневосточная литература
- Древнерусская литература
- Европейская старинная литература
- Мифы. Легенды. Эпос
- Прочая старинная литература
Научно-образовательная
- Альтернативная медицина
- Астрономия и космос
- Биология
- Биофизика
- Биохимия
- Ботаника
- Ветеринария
- Военная история
- Геология и география
- Государство и право
- Детская психология
- Зоология
- Иностранные языки
- История
- Культурология
- Литературоведение
- Математика
- Медицина
- Обществознание
- Органическая химия
- Педагогика
- Политика
- Прочая научная литература
- Психология
- Психотерапия и консультирование
- Религиоведение
- Рефераты
- Секс и семейная психология
- Технические науки
- Учебники
- Физика
- Физическая химия
- Философия
- Химия
- Шпаргалки
- Экология
- Юриспруденция
- Языкознание
- Аналитическая химия
Компьютеры и интернет
- Базы данных
- Интернет
- Компьютерное «железо»
- ОС и сети
- Программирование
- Программное обеспечение
- Прочая компьютерная литература
Справочная литература
Документальная литература
- Биографии и мемуары
- Военная документалистика
- Искусство и Дизайн
- Критика
- Научпоп
- Прочая документальная литература
- Публицистика
Религия и духовность
- Астрология
- Индуизм
- Православие
- Протестантизм
- Прочая религиозная литература
- Религия
- Самосовершенствование
- Христианство
- Эзотерика
- Язычество
- Хиромантия
Юмор
Дом и семья
- Домашние животные
- Здоровье и красота
- Кулинария
- Прочее домоводство
- Развлечения
- Сад и огород
- Сделай сам
- Спорт
- Хобби и ремесла
- Эротика и секс
Деловая литература
- Банковское дело
- Внешнеэкономическая деятельность
- Деловая литература
- Делопроизводство
- Корпоративная культура
- Личные финансы
- Малый бизнес
- Маркетинг, PR, реклама
- О бизнесе популярно
- Поиск работы, карьера
- Торговля
- Управление, подбор персонала
- Ценные бумаги, инвестиции
- Экономика
Жанр не определен
Техника
Прочее
Драматургия
Фольклор
Военное дело
Миллиардер из Кремниевой долины. История соучредителя Microsoft - Аллен Пол - Страница 18
Некоторые считают наш Бейсик для «Альтаира» серьезным достижением, потому что мы создали язык, не видя «Альтаира» и даже не имея микропроцессора Intel 8080, на котором строилась машина. Мы в самом деле добились небывалого, но не все понимают, что у нас просто не было выбора. «Альтаир» практически представлял собой коробку с центральным процессором внутри. В нем не было жесткого диска, дисковода для гибких дисков, негде было редактировать и хранить программы. И даже будь у него все это, отладка программ на 8080-м с ограниченной памятью была бы долгим и трудным занятием.
И любой программист, решивший представить в Альбукерке Бейсик для 8080-го, столкнулся бы с громадными проблемами. Он должен был бы для начала сообразить, что нужен симулятор, а затем создать его с нуля на большом компьютере или мини-компьютере. Мы с Биллом получили серьезное преимущество в скорости и производительности за счет средств разработки для нашей Traf-O-Data. Но могли ли мы на самом деле написать интерпретатор Бейсика?
Работу мы строили так же, как и при создании Traf-O-Data. Я должен был создать средства, макроассемблер и симулятор, а Билл занимался структурой интерпретатора. В отличие от пожирающего ресурсы компилятора, который преобразует целый файл исходного кода в Ассемблер или машинный язык, интерпретатор выполняет по одному фрагменту кода, что позволяет снизить издержки пользователей «Альтаира». В то время четыре килобайта памяти стоили в розницу чуть меньше трехсот долларов – приличная сумма для 1975 года, но не препятствие для безумного любителя. Задача была сложная, но мы были уверены, что втиснем упрощенный вариант интерпретатора в эти четыре килобайта, чтобы еще осталось место для маленьких программ, написанных пользователем.
Один важный участок нашего Бейсика оставался белым пятном: операции с плавающей запятой, которые необходимы при работе с большими числами и десятичными дробями в экспоненциальной форме[3]. Однажды мы с Биллом ужинали в кафе «Кариер-Хауса», где продвинутые студенты-математики болтали о гиперкубах и геометрии пяти измерений. Я вслух пожаловался, что придется самому писать математические подпрограммы, и тут кучерявый новичок, сидевший напротив, неожиданно сказал:
– Я делал их для PDP-8.
Мы потащили его в комнату Билла обсуждать наши проблемы – и так мы нашли Монте Давидоффа (Монте выторговал за работу 400 долларов сразу и еще несколько тысяч за доработку в Альбукерке).
Решив затруднение, мы отправились в гарвардскую «Вычислительную лабораторию Айкена» на Оксфорд-стрит – одноэтажное бетонное здание, где стояли обычно незанятые терминалы разделенного времени. Сроки поджимали нас с самого начала. Билл сказал Эду Робертсу, что наш Бейсик почти готов, и Эд ответил, что хотел бы посмотреть его примерно через месяц. На деле же у нас не было даже инструкции по эксплуатации 8080-го. Купив инструкцию, я принялся за работу. У 8080-го оказалось в два с лишним раза больше команд, чем у 8008-го, а значит предстояло написать множество макросов. Но основы архитектуры у двух этих чипов были сходные, так что общий подход оставался прежним. Мне снова требовалось превратить программы PDP-10 в Ассемблер для микропроцессора. Я закончил макросы за пару дней.
Мой симулятор для 8080-го получился больше, но по сути таким же, что и для Traf-O-Data; и я снова модифицировал отладчик PDP-10, чтобы мы могли остановить программу и заглянуть внутрь нашего Бейсика. Бывают в жизни программиста моменты, когда все складывается, когда мозг работает на полную мощность; для меня это был один из таких моментов. Меня воодушевил новый видеомонитор у Айкена (или «стеклянный телетайп» – на жаргоне того времени) – DEC VT05. Очень помог доступ к высокоскоростному принтеру и жесткому диску PDP-10. Через месяц у нас были средства разработки для нового чипа, каких не было больше нигде. Пакет программ для 8080-го получился быстрым и мощным. Я до сих пор горжусь им.
Мои средства разработки дали нам начальный толчок, а программистский талант Билла позволил быстро двигаться вперед. К тому времени, как я доделал набор инструментов, Билл уже продумал структуру интерпретатора. Как сейчас вижу: Билл то шагает по комнате, то сидит, раскачиваясь на стуле, а потом начинает писать в желтом разлинованном блокноте; у него пальцы были в пятнах от разноцветных фломастеров. Когда я закончил симулятор, Билл пересел за терминал. Он, раскачиваясь, проглядывал записи, затем стремительно набивал код, держа руки в своей странной манере, и снова читал. Он мог сидеть так часами без перерыва.
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})Создавая наш доморощенный Бейсик, мы заимствовали кое-что из предыдущих версий – давнишняя программистская традиция. Языки развиваются, идеи смешиваются; в компьютерной технике мы все стоим на чьих-то плечах. Шли недели, задача все больше захватывала нас. Насколько нам было известно, мы создавали первый язык программирования высокого уровня специально для микропроцессора. Иногда мелькало подозрение, что какая-нибудь группа в Массачусетском технологическом или в Стэнфорде может опередить нас, но мы отбрасывали эти мысли. Мы справимся? Мы можем завершить работу и отчитаться в Альбукерке? Да, можем! Мы энергичны и умелы, мы ни за что не упустим такую возможность.
Мы работали без перерыва, в две смены по выходным. Билл практически забросил учебу. Монте как-то проспал занятия по французскому, которые начинались в час дня. Я игнорировал работу в Honeywell, появляясь в офисе в обед. Дотерпев до половины шестого, я возвращался к Айкену, где сидел часов до трех утра. Я сохранял файлы, спал часов пять-шесть – и все сначала. Мы обедали в гарвардской пиццерии или брали по тарелке «пупу» в «Аку-Аку» – местной версии ресторанов «У торговца Вика». Я очень любил их яичные роллы и жареные креветки.
Во время наших ночных бдений я иногда замечал, что Билл дремлет у терминала. Порой он на середине строки начинал клониться вперед, пока не тыкался носом в клавиатуру. Продремав час или два, Билл открывал глаза, приглядывался к экрану и, моргнув пару раз, продолжал точно с того места, где остановился, – потрясающий дар концентрации.
Работая в таком тесном сотрудничестве, мы трое сдружились. Поскольку наша программа выполнялась на верхнем уровне многопользовательской операционной системы TOPS-10, мы могли работать одновременно. Мы устраивали соревнования: кто напишет подпрограмму с меньшим числом команд; разбредались с блокнотами в разные углы и начинали строчить. Потом кто-нибудь подавал голос:
– Я могу за девять.
Другой откликался:
– А у меня – пять!
Когда Монте разложил на полу распечатку своей подпрограммы плавающей запятой, Билл растянулся рядом с длиннющей бумажной гармошкой, выискивая, где еще можно сократить. Мы знали, что каждый сэкономленный байт освободит дополнительное место для приложений пользователя.
(Теперь мы живем в ином мире, где шестнадцать гигабайт памяти – в четыре миллиона раз больше, чем было у нас на «Альтаире» для Бейсика, – упакованы в iPhone. Изящный, короткий код можно считать утерянным искусством. Люди еще пытаются делать программы эффективными, но никто уже не экономит байты – и даже мегабайты.)
Несколько лет назад, когда мы с Монте вспоминали те дни, он сравнил программирование с писательским ремеслом – мне это показалось хорошей аналогией нашего подхода к Бейсику для «Альтаира». Сначала мы определили сюжет – концептуальный этап программирования. Затем мы взяли большую проблему и разделили ее на составные части – «главы», сотни подпрограмм и связанные с ними структуры данных, а потом снова соединили их вместе. Если строчка не работала, мы переписывали черновик. Главная проблема – удерживать целую картину, пока сражаешься с деталями маленькой подпрограммы, и постоянно сопоставлять одно с другим. Это была, пожалуй, самая сложная и захватывающая задача из всех, с какими я сталкивался.
По мере продвижения вперед наша уверенность росла. Однажды мы позвонили в MITS узнать программы установления связи для телетайпа, чтобы написать коды ввода-вывода для «Альтаира». Мы поняли, что мы на верном пути, когда Билл Йейтс, партнер Эда Робертса и ведущий инженер, сказал, что до нас никто не задавал им этот вопрос. Тут мы поняли, что работа наша.
- Предыдущая
- 18/81
- Следующая