Пример «археологических изысканий ради понимания алгоритма» – мы знаем, что формат файла Microsoft Word как таковой существует. Спецификация на него известна и даже доступна публично (какой-то из антимонопольных процессов потребовал этого от корпорации), но ее стиль и степень подробности не позволяют «просто написать соответствующий код» – многие нюансы требуют экспериментирования. Поэтому гораздо более полезный справочник по форматам Microsoft – опенсорсные библиотеки для чтения этих форматов (например, antiword или Apache POI, а лучше – «перекрестный допрос» обеих библиотек, дабы лучше понять, что является особенностью формата, а что особенностью библиотеки).
Пример ситуации, где старение сильнее автора кода, – программа Sketchpad, созданная в 1963 году. Она была во многом революционной, еще бы – первая интерактивная CAD, первая объектно-ориентированная система… Но несмотря на то, что автор программы по-прежнему жив и в здравом уме, сомнительно, что сегодняшний вице-президент Sun Айвен Сазерленд смог бы подробно объяснить логику исходников, некогда написанных аспирантом Айвеном Сазерлендом на макроассемблере машины TX-2.
Ностальгируя по БЭСМ-6…
Автор: Юрий Романов
В Интернете на странице «Ностальгия по БЭСМ-6» Леонида Брухиса я встретил информацию о том, как однажды Сергей Вакуленко написал первую версию эмулятора БЭСМ-6. И мне очень захотелось включить в тему номера небольшой материал об этой работе. Обуреваемый сложными чувствами [Все очень просто: я сам неравнодушен к этой машине. Не как к «флагману парка советских ЭВМ», как ее когда-то называли. Очень много прекрасных часов любимой работы связаны для меня с аббревиатурой БЭСМ. Оказалось, не только у меня… Так что ностальгия налицо. – Ю.Р.], я списался с Сергеем и объяснил суть моих планов. Вот что он рассказал:
РЕАЛИИ
"Старые видеоархивы, записанные на «Кадр-103» и «Кадр-3ПМ», требуют срочного перевода на современный формат. Дело в том, что полностью прекращено производство запасных частей для этих аппаратов, что делает материалы в этих форматах практически непригодными для использования (не на чем воспроизводить)".
Директор Гостелерадиофонда России А. И. Высторобец
– Да, тема, конечно, интересная. Трудность в том, что я уже смутно помню, как было дело. Тексты первых версий программы, к сожалению, не сохранились. Архивные магнитные ленты тех лет перестали читаться… Основные факты, впрочем, известны.
В 1989 году я защитил диплом, темой которого был перенос Си-компилятора Джонсона (pcc) на БЭСМ-6 и Эльбрус-Б. В дальнейшем компилятор использовался командой Новосибирского ИТМиВТ при разработке Unix для этих машин. При отладке возникла определенная сложность: тестирование порожденного кода оказалось более трудоемким, чем хотелось бы. Чтобы выполнить «сгенеренный» бинарный код на реальной машине, надо было преодолевать не только несовместимость форматов носителей, но и несколько сот метров пространства между разными зданиями ВЦ института Курчатова. Кроме того, в ОС ДИСПАК для БЭСМ-6 не существовало диалогового отладчика с возможностью пошагового выполнения команд. Возникла мысль: а почему бы не сделать эмулятор? Со встроенным отладчиком. Система команд простая и известная, а тонкости команд деления и алгоритма нормализации меня тогда не интересовали [Через несколько лет эти команды доставят много хлопот любителям "археологических раскопок" БЭСМ-6. См., например, www.mailcom.com/besm6/emulnews_ru.shtml].
Для проверки компилятора достаточно было целочисленной арифметики. Эмулятор – программа простая, за неделю он был готов, еще за неделю дополнен всеми необходимыми режимами отладки и трассировки. Месяц-два активного использования – и следующие года три он пролежал в "долгом ящике". Тогда же я похвастался этим «чудом» перед народом из ИТМиВТ, и они этого не забыли.
Году в 1992-м (или в 1991-м?.. точно не помню) Миша Ярославцев, уезжая в Калифорнию, попросил у меня тексты. Перед отъездом он собрал все доступные образы системных дисков БЭСМ-6 и решил на чужбине, теплыми калифорнийскими вечерами, оживить ОС ДИСПАК вкупе с мониторной системой, трансляторами и прочими интересными вещами. В этом его активно поддержал Леня Брухис. С тех пор тексты уже мало похожи на мои: Миша все перелопатил, оптимизировал, а главное – дополнил реализацией экстракодов (системных вызовов). Что весьма нетривиально, так как ни документации по экстракодам, ни текстов ДИСПАК не сохранилось. Также они умудрились аутентичным образом реализовать все команды плавающей точки. Это большое достижение.
Сейчас на сайте Брухиса всякий желающий может оттранслировать программу для БЭСМ-6 на одном из языков – Фортран, Паскаль или Алгол-60. И выполнить с лимитом 20 секунд процессорного времени.
Такой вот поток мыслей… Наверняка я многое забыл, а что-то, возможно, перепутал. И потом, я ведь совсем не писатель…
Есть еще одно ответвление от темы, которое может оказаться интересным. После успеха с БЭСМ-6 Леня Брухис решил взяться за БК-0010 (bk-terak-emu.sourceforge.net). А когда ему удалось отыскать в сарае одного калифорнийского хакера тексты LSX – версии Unix для PDP-11 с очень ограниченным объемом памяти (система считалась безнадежно утерянной), мы совместными усилиями взялись затащить это дело на БКшку. В общем, вполне получилось. Недавно я привел в божеский вид и выложил в Интернет описание Эльбруса-Б и тексты Си-компилятора. Это было последнее неокученное в моем загашнике. Периодически спрашиваю у народа тексты системы Джин от БЭСМ-6, но, к сожалению, пока безуспешно.
Дыры в Паутине
Автор: Виктор Шепелев
Две вещи делают Веб Вебом (Повсеместно Протянутой Паутиной): широко разбросанные независимые тексты-узлы и ниточки-ссылки, что их объединяют. Но по мере взросления и старения Паутины в ней появляются Дыры – рвутся нити, становятся недоступны пути из пункта А в пункт Б… Где вы, Сетевые археологи?..
КОНЦЕПЦИЯ
Эта Паутина была в каком-то смысле даже противоположна самой Сети <…> Паутина обволакивала Сеть, а вовсе не являлась ее синонимом. Сеть искривляла пространство, помогая видеть Паутину.
Мерси Шелли, «Паутина»
К тому времени, как Тим Бернерс-Ли начал работу над концепцией World Wide Web, обе ее составляющие – техническая (Интернет) и идеологическая (гипертекст) – уже много лет существовали [Создание Интернета, как и первых гипертекстовых систем (Xanadu Теда Нельсона и NLS Дугласа Энгельбарта), датируется 1960-ми годами; создание Веба – началом 1990-х]. Гениальная инновация британца состояла, собственно, в объединении этих двух сущностей, что в конечном счете развернуло обе технологии "лицом к простым людям".
Многочисленные ранние гипертекстовые системы предполагали создание всего контента одним автором или сплоченной группой и требовали корректности ссылок между документами. Естественно, что единая гипертекстовая система, тексты в которой созданы множеством независимых авторов по всему миру, потребовала некоторых компромиссов; один из них – принципиальная возможность несуществования страницы, на которую указывает ссылка (в этом случае сервер должен просто вернуть стандартную страницу "404 Not Found").