Коллектив Авторов - Цифровой журнал «Компьютерра» № 146
Обзор книги Коллектив Авторов - Цифровой журнал «Компьютерра» № 146
Компьютерра
05.11.2012 - 11.11.2012
Статьи
Sketchpad Айвена Сазерленда и сила случая
Евгений Лебеденко
Опубликовано 09 ноября 2012 года
В конце пятидесятых годов прошлого века руководство Массачусетского Технологического Института (MIT) передало университетскому городку вычислительную машину TX-0. Каждый студент и аспирант MIT получил право использовать TX-0 для любых целей раз в день в течение часа. Вряд ли кто-то подозревал, что из этого выйдет.
Без того компьютера, возможно, не появилась бы одна из первых компьютерных игр — Spacewar. Не будь Spacewar, молодой аспирант Айвен Сазерленд, вероятно, выбрал бы совсем другую тему для своей докторской диссертации. Тогда, скорее всего, не увидел бы свет и его Sketchpad — уникальный программно-аппаратный комплекс, оказавший огромное влияние на развитие систем автоматизированного проектирования и формирование базовых принципов графических пользовательских интерфейсов. История вычислительной техники пошла бы по иному пути.
Вычислительный «Вихрь»В середине прошлого века MIT стал одним из центров, где совершенствовались американские системы противовоздушной обороны. В 1940 году на его базе была организована лаборатория сервомеханизмов под управлением профессора Гордона Брауна. Задача, стоящая перед лабораторией, была не из простых: реализовать взаимодействие корабельных радарных установок и бортовой артиллерии с компьютером. Кроме того, лётчики хотели получить универсальный авиасимулятор, который мог быть легко перенастроен под любой тип самолёта.
Аспирант Брауна Джей Форрестер быстро понял, что аналоговые вычислители, традиционно применяемые в этой области, недостаточно эффективны. А успешное применение для баллистических расчётов цифрового компьютера ENIAC только закрепило в нём это убеждение.
Трудность заключалась в том, что существовавшие тогда способы взаимодействия операторов с цифровыми вычислительными машинами решительно не годились ни для симуляции, ни для автоматизированного управления артиллерией. Оператор не мог получать результаты вычислений в режиме реального времени или быстро вводить информацию. Самые простые операции требовали длительной возни с перфокартами или перфолентами.
Вычислительная машина Whirlwind
Чтобы преодолеть эти проблемы, была начата разработка интерактивной вычислительной системы Whirlwind («Вихрь»). Для своего времени это была невероятно мощная машина. Арифметический модуль Whirlwind состоял из 12500 электронных ламп и трудился на частотах 1 и 2 мегагерца, выполняя двадцать тысяч операций в секунду. Whirlwind обеспечивал параллельную обработку шестнадцатибитных данных, используя для этого тридцать две команды.
Для визуализации компьютерных данных решили применить хорошо зарекомендовавшие себя в радарных установках экраны на электронно-лучевых трубках. Чтобы указать координаты цели, оператор крутил рукоятки, расположенные вокруг дисплея. Whirlwind стал, вероятно, первым компьютером, использующим для взаимодействия с человеком графические образы.
Дисплей Whirlwind имел немало общего с экраном радарной установки
В пятидесятые годы его вычислительная мощь стала основой SAGE (Semiautomatic Ground Environment) — автоматизированной системы ПВО, объединившей Whirlwind с радарными установками на обеих побережьях США. Из главного кампуса MIT занимавший целый этаж Whirlwind переехал в мозговой центр SAGE — лабораторию Линкольна.
Первые шаги САПРИнженеры лаборатории Линкольна существенно усовершенствовали средства ввода-вывода Whirlwind. Дисплей, отображавший всего 256 точек, получил матрицу 64х64 точки. Оператору Whirlwind больше не приходилось запоминать координаты объектов и возиться с рукоятками ввода координат. Вместо этого он использовал «световой пистолет», которым можно было указать на дисплее нужный объект. Компьютер вычислял координаты светового пятна и по ним идентифицировал связанный с ним объект.
Оператор использует световой пистолет
Whirlwind и его преемники, компьютеры TX-0 и TX-2, годились не только для управления системами ведения огня. В 1949 году лаборатории поручили разработку системы компьютерного управления фрезерным станком. Дело в том, что создание новых реактивных истребителей требовало изготовления компонентов корпуса с высочайшей точностью, которая была недостижима даже самыми квалифицированными фрезеровщиками.
Результатом работы учёных MIT стала представленная в сентябре 1952 года система ЧПУ, считывающая данные об обрабатываемой детали с перфоленты и управляющая трёхосевым фрезерным станком. Трудоёмкий процесс разработки и отладки программ-перфолент ЧПУ вскоре был полностью автоматизирован с использованием Whirlwind и TX-0. Эта технология автоматизации получила название APT (Automatically Programmed Tool) и фактически стала прародителем современных САПР.
Алюминиевая деталь, выточенная под управлением APT III
Важнейшую роль в формировании программной части APT сыграл Дуглас Росс, одним из первых осознавший необходимость унификации описания обрабатываемых деталей и создания независимой от типа контроллера среды программирования.
Под руководством Росса были решены задачи программной унификации компонентов чертежа с использованием высокоуровневых операторов. Подобный подход позволил устранить непреодолимый ранее барьер между инженером-проектировщиком и компьютером, превращая последний из специализированного вычислителя в инструмент общего назначения.
Суммируя технологииРассказ о Sketchpad не случайно начался с истории Whirlwind и APT. Технические решения, использованные Айвеном Сазерлендом, появились именно в ходе реализации этих проектов. Whirlwind и его последователи обладали уникальным для своего времени интерфейсом — экраном и световым пистолетом, или пером, — который, однако, использовался лишь для узкого круга военных задач. Система автоматизированного проектирования APT оперировала описаниями графических объектов, но их приходилось задавать с помощью традиционных перфокарт и перфолент. Sketchpad объединил лучшие стороны этих проектов.
Научную карьеру Айвена Сазерленда можно назвать блестящей. Ещё школьником он увлекся программированием, самостоятельно собрав простенький релейный компьютер SIMON, придуманный популяризатором вычислительной техники Эдмундом Беркли. Бакалавром Сазерленд стал в Технологическом институте Карнеги, выиграв стипендию за разработку умной робомыши Фрэнкен. Докторскую диссертацию, для написания которой Сазерленд перебрался в MIT, вызвался консультировать сам Клод Шеннон.
Панель управления TX-0 и TX-2
На идею, из которой вырос Sketchpad, молодой аспирант MIT наткнулся в институтском кампусе, куда руководство лаборатории переместило TX-0. Использовать машину мог кто угодно и как угодно, благо компьютер был совершенно автономен и, что важно, обладал ЭЛТ-дисплеем. Конечно же, студенческая братия приспособила его для игр.
Это само по себе было очень необычным. Spacewar, которую разработали студенты MIT, считается едва ли не первой компьютерной игрой в истории. По экрану перемещались космические корабли, стреляющие друг в друга. Чтобы победить, нужно было уничтожить вражеский корабль и уцелеть самому.
В этой игрушке Сазерленд увидел то, что другие проглядели: люди, не имеющие навыков программирования, легко взаимодействовали с компьютером, используя его дисплей.
Spacewar! — первая компьютерная игра
К тому времени Джек Гилмор, один из предшественников Сазерленда в лаборатории Линкольна, разработал Scopewriter — видимо, первый интерактивный текстовый редактор, способный отображать на экране числа, символы алфавита и простые блок-схемы. До этого программистам приходилось работать с рулонами распечаток своих программ.
Сазерленд решил пойти дальше. Если экран компьютера можно использовать в качестве интерактивного «визуального принтера», то почему бы его вкупе со световым пером не превратить в «визуальный плоттер» — инструмент проектировщика? Ведь наиболее естественный способ передать компьютеру чертёж — нарисовать его на экране компьютера! Сейчас идея кажется очевидной, но пришла бы она Сазерленду на ум без той обстановки, в которую он погрузился, будучи аспирантом MIT?