книга по вычислительной технике. В истории вычиислительной техники можно выделить четыре эпохи
Скачать 0.85 Mb.
|
Глава 1. Доэлектронная история вычислительной техники Современная история вычислительных машин (теперь приня- то говорить — компьютеров) насчитывает чуть больше пятидесяти лет, однако у этой истории есть предыстория длиной в несколько веков. Никакие великие изобретения не рождаются на пустом мес- те, у них всегда есть предшественники и прародители. Знание ис- тории науки и техники необходимо не только для общей культуры. Известно, что прогресс идет по спирали и все новое — хорошо забытое старое. В будущих поколениях компьютеров непременно реализуются (разумеется, на новой научно - технической базе) идеи, не нашедшие достойного воплощения десятки лет назад. Наш обзор доэлектронной истории вычислительной техники будет очень кратким и лишенным очень многих интересных и жи- вописных деталей. Интересующихся этим вопросом более глубоко мы отсылаем к прекрасным руководствам (См. «Литературные ссыл- ки и методические замечания»). При этом мы осветим лишь прин- ципиальные, узловые события истории, цепь которых даст возможность понять, что создание современного компьютера — не чудо сверхъестественных сил, а закономерный результат техничес- кого творчества поколений ученых и конструкторов. 22 1.1. Общий исторический фон Могла ли быть ЭВМ построена в прошлом или позапрошлом веке? Конечно нет, потому что тогда не было соответствующей эле- ментной базы: радиолампы и транзисторы изобретены значительно позже. Всякое устройство, в том числе вычислительное, существу- ет не само по себе, а в определенном окружении, технологическом контексте, на фоне общего уровня техники своего времени. На рисунке изображены основные события истории вычисли- тельной техники, о которых мы будем говорить позже, на времен- ной оси в контексте общего уровня техники. В истории вычиислительной техники можно выделить четыре эпохи. Домеханическая эпоха — с древнейших времен до середины XVII века. Элементную базу вычислительных устройств тех лет составляли подручные предметы — камешки, палочки и т. п. Вели- чайшие достижения домеханической эпохи — счеты и логарифми- ческая линейка. Механическая эпоха Эл-механич. эпоха Электронная эпоха 1600 г. 1700 г. 1800 г. 1900 г. 2000 г. 1642 Первая вычисли- тельная машина (Паскаль) 1673 Арифмометр (Лейбниц) 1887 Табулятор (Холлерит) 1941 Первая работающая программно-управляемая машина (Цузе) 1944 Машина MARK-I (Айкен) 1820-1834 Проекты разностной и аналитической машин (Бэббидж) Основные события доэлектронной истории вычислительной техники 23 Механическая эпоха. XVII и XVIII века — время расцвета точ- ных механических устройств. Часы, механические игрушки, при- боры тех лет до сих пор поражают воображение. Именно в это золотое для механики время были созданы первые конструкции вычислительных машин — суммирующая машина Паскаля и ариф- мометр Лейбница. Вершина механической эпохи — аналитическая машина Бэббиджа, по смелости инженерных решений на столетие опередившая свое время. Однако, несмотря на все свое совершен- ство, машина Бэббиджа проектировалась как чисто механическая, приводимая в движение небольшим паровым двигателем. Электромеханическая эпоха. Только в первой трети XIX века были построены электрические машины и наступил век электриче- ства. Наряду с техникой сильных токов, пришедшей на замену па- ровым машинам, стала развиваться слаботочная. В 1831 г. Д.Генри в США и Сальваторе дель Негро в Италии изобрели электромаг- нитное реле. Сначала электромеханические элементы были очень ненадежными и неподходящими для построения сложных прибо- ров, но уже в конце XIX века появилась техническая возможность превратить чисто механические вычислительные устройства в элек- тромеханические, в которых передача сигналов осуществлялась не рейками и шестеренками, а импульсами тока. Начало электромеха- нической эпохи отмечено изобретением табулятора Холлерита, а конец — релейными вычислительными машинами типа MARK. Электронная эпоха. Царство электромеханики в технике была недолгим — меньше столетия. В начале XX века были изобретены первые электронные приборы — радиолампы. Вакуумный диод предложен Флеммингом (Великобритания, 1904 г.), триод — Ли де Форрестом (США, 1906 г.). К середине 30-х гг. электронные лампы стали применяться во всех радиотехнических устройствах, однако их использование в вычислительной технике стало возможным лишь после изобретения триггера — радиосхемы с двумя устойчивыми состояниями, которая пришла на смену электромагнитному реле. Триггер был создан независимо друг от друга М.А.Бонч-Бруевичем (СССР, 1918 г.) а также У.Экклзом и Ф.Джорданом (Великобрита- 24 ния, 1919 г.). На его основе в 20-х и 30-х годах были построены основные составляющие вычислительной техники — регистры, счетчики, логические схемы. Таким образом, к 40-м годам была со- здана элементная база электронной вычислительной техники, и вско- ре, в 1945 году, была создана первая ЭВМ Радиолампы тысячекратно ускорили работу вычислительных ус- тройств, но очень скоро стали ощущаться их принципиальные не- достатки: низкая надежность, громоздкость и большое потребление энергии. Ламповые компьютеры 50-х годов насчитывали десятки тысяч логических элементов, и это был естественный предел их сложности, так как более громоздкие конструкции просто невоз- можно заставить работать. Но вот на смену радиолампам в конце 50-х годов пришли транзисторы, которые со временем становились все меньше и меньше. Наступила пора микроэлектроники, когда были практически сняты ограничения на сложность электронных устройств: современные микросхемы насчитывают миллионы дис- кретных элементов. Технологический прорыв 70-х годов оказался столь существенным, что его назвали микропроцессорной револю- цией. Эта революция продолжается и по сей день, число транзисто- ров в одной микросхеме продолжает удваиваться каждые полтора-два года (так называемый закон Мура), как долго так будет — пока не- известно. Вместе с тем микропроцессорная революция не означает смену технологической эпохи. Микросхемы, как бы не росла их сложность, состоят из тех же самых базовых активных элементов — электрон- ных транзисторов. А транзистор — он и есть транзистор, даже если размеры его измеряются долями микрона. Новая, постэлектронная эпоха наступит тогда, когда на смену транзисторам придут принци- пиально новые активные элементы. Прогнозы на этот счет самые разнообразные. Большинство ученых склоняется к тому, что эле- ментная база будущих компьютеров будет оптической, более ради- кальные говорят о биологических элементах, но пока все это — лишь футуристические рассуждения. Жизнь показывает, что долго- срочное прогнозирование научно-технического прогресса — вещь ненадежная. 25 Таков в общих чертах технико-исторический фон, на котором происходило и происходит создание вычислительной техники. Те- перь обратимся к конкретным фактам. 2.2. Простейшие цифровые вычислительные устройства — абак и счеты Самыми важными арифметическими операциями с точки зре- ния образованного человека древнего мира — купца или сборщика налогов,— были сложение и вычитание. Трудно представить себе, как с ними могли бы справиться, скажем, римляне, пользуясь толь- ко принятой у них непозиционной системой счисления. Попробуй- те, например, решить такую простенькую задачку с римскими цифрами: MCMXCVI + CCLXIV = ? К счастью, уже древние римляне располагали простейшим при- способлением для ускорения счета, основанным на позиционной системе счисления, который назывался абак. Абак представляет со- бой дощечку, разделенную вертикальными перегородками на не- сколько отделений, соответствующим отдельным разрядам числа в позиционной системе счисления. В отделени- ях помещались камеш- ки (по латыни «камешек» — «calculus», отсюда про- исхождение слов «калькуляция», «каль- кулятор»). Число их в отделении равно значе- нию разряда и может меняться (в десятичной Древнеримский абак 26 системе счисления) от 0 до 9. Сложение чисел производится путем поразрядного добавления камешков, при переполнении отделения оно очищается и делается перенос единицы в следующий разряд. Вот и все — просто и быстро. Единственное неудобство — камеш- ки легко рассыпаются и могут потеряться при переноске. Арабские купцы разнесли абак по всему миру. Практичные китайцы нанизали камеш- ки на спицы, вставили их в деревянную раму и повернули все на 90 градусов. В таком виде абак в XVI веке попал в Россию и стал назы- ваться русскими счетами. Прошло более 400 лет, а счеты на Руси и ныне в ходу. Некото- рые продавцы и официанты любят их боль- ше, чем электронные калькуляторы, может быть, потому, что со счетами легче «ошибить- ся» в стоимости покупки (в свою, разумеет- ся, пользу). 1.3. Логарифмическая линейка и ее потомки — аналоговые вычислительные машины Если спросить молодого человека, живущего в конце XX века, что он думает о науке и технике XVII века, он, скорее всего, высо- комерно выскажется о «первобытном и примитивном» уровне раз- вития. И будет абсолютно неправ, так как XVII век — одна из высочайших вершин человеческого гения. Шекспир и Бах, Ньютон и Паскаль, Лейбниц и Декарт — все это XVII век. В этом веке были сделаны великие географические открытия, заложены основы со- временной физики и математики, сооружены грандиозные здания вроде собора св. Павла в Лондоне, изобретены телескоп, микро- скоп, термометр, барометр, придуманы логарифмы и построены Русские счеты 27 первые механические вычислительные машины. В этом параграфе мы поговорим о логарифмической линейке, которая появилась в первой трети XVII века, вскоре после того, как в 1614 году шотландский барон Джон Непер (Nepier, John; 1550- 1617) опубликовал свою первую книгу «Magnifici logarithmorum cannonis discriptio». Я надеюсь, читатель еще представляет себе ло- гарифмическую линейку, которая более трех веков верой и прав- дой служила бесчисленным поколениям ученых и инженеров, студентов и школьников. Даже когда появились электронные каль- куляторы, многие инженеры предпочитали пользоваться испытан- ным и надежным помощником — линейкой. Рассказывают, что автор проекта останкинской телебашни инженер Н.В.Никитин (кстати, выпускник Томского политехнического института) все расчеты сде- лал на логарифмической линейке. Когда об этом узнали руководя- щие товарищи (дело было в 1960-е годы), они всполошились, работу остановили, и заставили пере- проверить вычисления на ком- пьютерах. Но все оказалось в порядке,— и башня, как видим, стоит до сих пор. Принцип действия лога- рифмической линейки основан на основном правиле логариф- мов: log(a•b) = log(a) + log(b), что позволяет заменить опера- 1 2 3 4 5 6 1 2 3 4 5 6 a b a • b Принцип действия логарифмической линейки a=2, b=3, a•b=6 Логарифмическая линейка 28 цию умножения сложением, а операцию деления — вычитанием. Само же сложение (вычитание) производится путем простого пре- мещения двух реек с нанесенными на них одинаковыми логариф- мическими шкалами Нас, однако, будут интересовать сейчас не конкретные приемы работы с логарифмической линейкой, а более общий вопрос о вза- имоотношении дискретного и непрервного в вычислительной тех- нике. На абаке или счетах число представляется в цифровой, т.е. в символической,"знаковой форме, и это представление совершенно точное. Если 375 так 375, не больше и не меньше. Каждый разряд числа изображается целым числом камешков, нельзя положить 3 с половиной или 5 и 6 десятых камня. Даже если число не целое, то точно представляется соответствующая ему десятичная дробь с фиксированным числом знаков после запятой. Поэтому абак явля- ется простейшим примером цифровой или, более точно, дискрет- ной вычислительной машины (так как представляться могут не только числа, но и другие дискретные объекты). В противоположность абаку, на логарифмической линейке пред- ставляется не цифровая запись числа, а некоторый его физический аналог. Первому сомножителю соответствует перемещение движка относительно неподвижной шкалы, второму — перемещение визи- ра бегунка относительно шкалы движка, результату — перемеще- ние бегунка относительно неподвижной шкалы. Аналоги являются непрерывными физическими величинами, поэтому представление всегда не точное, а приближенное, так как невозможно точно выс- тавить движок на цифру, скажем, 2 — будет или меньше или боль- ше.— да и сами шкалы имеют некоторую погрешность. Таким образом, логарифмическая линейка является простейшим приме- ром аналоговой вычислительной машины. Цифровые (дискретные) и аналоговые вычисления — это две постоянно сосуществующие и конкурирующие ветви математики. Математика древнего мира была в подавляющей степени связана с аналоговыми (геометрическими) построениями. Строго говоря, цир- куль и линейка — это тоже древнейшая аналоговая вычислитель- 29 ная машина. С изобретением симво- лических алгоритмов ариф- метики роль аналоговых вычислений стала ослабе- вать, так как цифровые ме- тоды способны обеспечить более высокую точность вычислений. Обычная ло- гарифмическая линейка, например, дает результат с точностью до 1 — 0.1 % (2—3 знаков после запя- той), причем ошибка быст- ро накапливается с увеличением сложности вычислений. Для астрономии или географии, например, такая точ- ность совершенно недостаточна, поэтому, начиная с XVII века, кон- структорская мысль была направлена в основном на создание и развитие цифровых вычислительных машин, и что из этого полу- чилось — мы увидим дальше. Однако не всегда и не везде нужна астрономическая точность, поэтому, параллельно с цифровой, развивалась и аналоговая вы- числительная техника. В XIX и XX веках для аналоговых вычисле- ний использовались самые различные физические процесссы: механические 1 , гидравлические, после изобретения радиоламп и транзисторов — электронные. Еще в 1960-х годах популярность ана- 1 В 1930 г. профессор Массачусетского технологического института (МТИ) Ванне- вар Буш (Boosh, Vannevar; 1890-1974) построил «дифференциальный анализатор» — большую механическую аналоговую машину, способную решать сложные диф- ференциальные уравнения. Он представлял собой сложнейшую систему реек, шес- теренок, валиков размером с целую комнату. Обязанности оператора на этой машине выполнял молодой аспирант Клод Шеннон (Shannon, Claude; р. 1916 ) — будущий автор теории информации. С тех пор МТИ стал крупнейшим центром исследований в области вычислительной техники и информатики. Большая аналоговая вычислительная машина (1960-е годы). 30 логовых электронных вычислительных машин была сравнима с циф- ровыми, их изучение было обязательным на всех технических фа- культетах. Это объяснялось многими факторами: • аналоговые машины в то время были намного проще, меньше по размерам и дешевле цифровых; • на аналоговых машинах очень лекго выполнялись трудоемкие операции дифференцирования и интегрирования функций, решения дифференциальных уравнений высоких порядков; • результат вычислений получался немедленно после ввода исходных данных, причем этот результат получался сразу в виде физической величины и мог быть непосредственно использован для отображения на экране осциллографа (графических дисплеев не было еще и в помине). В силу указанных причин аналоговые вычислительные маши- ны широко использовались в системах управления самолетами, ра- кетами, производственными процессами. Однако после изобретения микропроцессоров (1970-е годы), когда цифровые ЭВМ резко уменьшились в габаритах и подешеве- ли, аналоговые ЭВМ сильно сдали в конкурентной борьбе с ними. Стало проще перевести аналоговый сигнал в цифровую форму, выполнить требуемые вычисления, а на выходе обратно преобразо- вать результат в физическую величину. По такому пути пошли зву- козапись, и телевидение — об этом мы также поговорим позже. Значит ли это, что аналоговые вычисления вытеснены навсег- да? Я глубоко убежден, что нет, и в этом одно из проявлений цик- личности технического прогресса. Дело в том, что некоторые объекты, например, графические образы, являются исключительно трудными для символьной обработки. Даже самые мощные цифро- вые процессоры, вооруженные наисовременнейшими алгоритмами, пасуют перед распознаванием рукописного текста, а малограмот- ный человек легко решает эту задачу. Почему? Установлено, что в человеческом мозгу одно полушарие (левое) подобно цифровой вычислительной машине оперирует со знаками и абстрактными 31 понятиями. Правое же полушарие отвечает за образное, неструкту- рированное, аналоговое мышление. Только совместная работа обо- их полушарий делает мозг таким, как он есть — недоступным для конкуренции со стороны компьютеров в обозримом будущем. Попытки «впрячь в одну телегу коня и трепетную лань» приво- дят к идее построения гибридных, то есть цифро-аналоговых вы- числительных машин, которые представляются весьма перспективными для XXI века. Мы так подробно остановились на аналоговых вычислитель- ных машинах для того, чтобы к этой теме больше не возвращаться. Все дальнейшее изложение будет посвящено проблемам цифровых машин — их прошлому, настоящему и будущему. Вернемся же в славный XVII век и познакомимся с историей создания первой механической цифровой вычислительной маши- ны. 1.4. Суммирующая машина Паскаля Честь создания первой механической счетной машины принадлежит великому французскому ученому и изобретателю Блезу Паскалю (Pascal, Blaise; 1623 — 1662), известному своими достижениями в физике и математике (закон Паскаля для жидкостей и газов, треугольник Паскаля для вычисления биномиальных коэффици- ентов и др.). Отец Паскаля, который во времена кардинала Ришелье (Richelieu, 1585—1642) служил сборщиком налогов, очень много времени и сил тратил на утомительные арифметические выкладки, и юный Блез задался целью облегчить арифметические вычисления для отца. В 1642 году, в воз- Блез Паскаль (1623—1662) 32 расте 19 лет, он публично про- демонстрировал механичес- кую вычислительную машину — «Паскалину». Главный недостаток абака или счетов — необходимость ручного преноса единицы в старший разряд при перепол- нении предыдущего. Механи- зировать этот процесс на камешках (костяшках) не уда- валось, нужно было изобрести новый элемент с десятью устойчи- выми состояниями, отображающими цифры разряда. После долгих раздумий Паскаль изобрел ... колесо, но не простое, а зубчатое, с 10 зубцами. Поворот колеса на один зубец (1/10 часть окружности) соответствует увеличению значения разряда на единицу, а при по- лоном обороте колеса специальный, доаольно сложный, механизм передачи десятков (см. рис.) поворачивает следующее колесо ров- но на один зубец. Говоря современным языком, Паскаль изобрел многоразрядный десятичный механический счетчик оборотов, который до сих пор используется в спидометрах автомобилей, электросчетчиках и т.д. Более того, счетчик Паскаля с не- которыми усовешенствованиями стал центральныи устройством — сумматором — всех последу- ющих механических и электро- механических вычислительных машин вплоть до середины XX века, и даже в первых конструк- циях элекктронных машин сред- ствами электроники моделировалась работа цикли- ческого десятичного счетчика, пока фон Нейман не предложил Паскалина (1642 г.) Механизм передачи десятков в машине Паскаля 33 перейти на двоичную систему счисления (об этом мы будем гово- рить в следующей главе). Паскаль более 10 лет занимался усовершенствованием своей машины, было сделано 50 ее экземпляров из латуни, слоновой кос- ти, других материалов (до наших дней сщхранилоь 8, в том числе один хранится в музее корпорации IBM). Машина получила извес- тность, а Паскаля за ее изобретение сравнивали с Архимедом. Мно- жество людей приходило в Люксембургский дворец, где она была выставлена для всеобщего обозрения. Однако широкого распрост- ранения Паскалина не получила по нескольким причинам. Во-пер- вых, она была достаточно сложной и дорогой, а, во-вторых, и это самое главное, машшина предназначалась исключительно для сло- жения и вычитания 6—10 разрядных чисел, а самые трудоемкие операции умножения и деления она не механизировала. Этого удоб- ства сборщикам налогов пришлось ждать еще 50 лет. 1.5. Арифмометр — от машины Лейбница до электронного калькулятора Операция умножения многознач- ных чисел сводится к повторному сло- жению; именно так поступаем мы, выполняя умножение «столбиком» на бумаге (см. пример). При реализации этого алгоритма на машине Паскаля приходится не- сколько раз (в нашем примере шесть) вводить одно и то же множимое, вре- менами сдвигая его на один разряд вле- во, что очень утомительно. Оригинальное решение проблемы предложил в 1673 году знаменитый не- Готфрид Лейбниц 34 мецкий математик, философ, дипломат Готфрид Лейбниц (Leibnitz, Gottfried; 1646—1716). Он ввел в вычислительную машину два прин- ципиальных усовершенствования. Во-первых, для повторного ввода одного и того же числа он испоьзовал ступенчатые валики (по одному на каждый разряд) и поворотную рукоятку. Поворачивая рукоятку на один оборот, мож- но, в зависимости от положения промежуточной шестеренки на ва- лике, добиться ее поворота на заданную долю окружности. Во-вторых, он поместил механизм ввода чисел на подвижную каретку, которая на очередном шаге умноженая перемещается вле- во относительно сумматора на один разряд (в последующих конст- рукциях арифмометров оказалось удобнее неподвижным сделать механизм ввода, а на каретку поместить сумматор, поэтому сдвиг сумматора происходит вправо). Таким образом, введя один раз множимое, можно многократно вводить его со сдвигом в счетчик, производя операцию умножения. Операция деления выполняется аналогично, путем повторного вы- читания делиталя из делимого, для чего рукоютку прибора следует 1526 1526 312 312 1526 1526 1526 1526 1526 3052 1526 сдвиг-> 3052 1526 1526 1526 18312 476112 сдвиг-> 18312 1526 1526 1526 476112 а) б) Алгоритм умножения целых чисел при вычислениях на бумаге и машине Паскаля (а) и на арифмометре (б). 35 крутить в другую сторону. Арифметическая машина Лейбница совершенствовалась в деталях, но не в принципе, на протяжении следующего XVIII, а затем и XIX веков, она получила название арифмомет- ра и стала производиться мно- гими фирмами. Наиболее популярной была модель фран- цузского инженера Карла Тома- са, который в 1821 году организовал серийное производство арифмометров в Париже, по- этому арифмометры этой конструкции назывались томас-машина- ми. Только через 200 лет, в 1873 году петербургский изобретатель В.Т.Однер, швед по происхождению, предложил более простое и компактное, чем валик Лейбница, устройство для ввода чисел в арифмометр — так называемое колесо Однера с переменным чис- лом зубцов. На базе своего изобретения Однер организовал широ- комастабное производство арифмометров. В 1917 году Однер эмигрировал в Швецию, но производство арифмометров в России постоянно увеличивалось. На московском заводе имени Ф.Дзержинского арифмомет- ры Однера выпускались под маркой «Феликс», в 1969 году их было выпущено 300 000 шт. С помощью арифмометра были составлены фундамен- тальные математические таб- лицы, выполнены сложнейшие астрономичес- кие расчеты, так что «желез- Арифмометр Лейбница (1673 г.) Арифмометр "Феликс", выпуск 1960-х годов. 36 ный Феликс» — это почтен- ный и заслуженный вычис- лительный прибор, и в коллекции музея истории вычислительной техники он стоит на самом почетном месте. Усовершенствование арифмометра продолжалост вплоть до 70-х годов XX века. К ручке приделали электромоторчик, неудоб- ный рычажковый ввод заме- нили на клавишный — в результате появилось целое семейство электромеханических калькуляторов. Я застал эти машины в лаборатории счетно-решающих устройств СФТИ в 1964-65 годах. Особенное впечатление произвела немец- кая Zoemtron тем, что она совершенно самостоятельно, с ужасаю- щим треском и лязганьем, производила деление многозначных чисел. Любимым занятием было заставить ее делить на нуль и посмотреть, что из этого получится. Машина не замечала подвоха и продолжала греметь шестеренками до тех пор, пока нажатием специальной кла- виши не останавливали это пустое занятие. В середине 1960-х годов появились первые электронные каль- куляторы. По своим функциональным возможностям они полнос- тью копировали электромеханические вычислители, имели приблизительно те же размеры, зато работали бесшумно. За про- шедшие 30 лет калькуляторы сильно «похудели» (сейчас их встраи- вают даже в часы и авторучки), подешевели, стали удобнее в пользовании и проч. и проч. Однако в идейном отношении совре- менные электронные калькуляторы недалеко ушли от арифмометра Лейбница: они предназначены для выполнения одной изолирован- ной операции. Если нужно выполнить цепочку вычислений, то при- ходится каждый раз записывать результат на бумажку и вновь Электромеханически й калькулятор середины 1960-х годов 37 вручную вводить исходные данные для следующей операции. И ни- какая электроника сама по себе ничего нового не дает, так как в калькуляторах (механических или электронных) не реализован фун- даментальный принцип, который, собственно, и превратил кальку- лятор в компьютер — принцип программного управления. 1.6. Принцип программного управле- ния. Вычислительные машины Бэббиджа Программное управление С точки зрения вычислительной техники XVIII век был беден крупными событиями, но вот на- ступил век XIX. Великая французская револю- ция, европейские войны, звездный час наполеоновской империи... На фоне этих политических событий было сделано одно эпо- хальное техническое изобретение: в 1904 году французский меха- ник Жан-Мари Жаккар (Jacquard, J. M.; 1752 — 1834 ) построил ткацкий станок, который автоматически, без участия человека, ткал узорное полотно (оно так теперь и называется — жаккардовое). Станок управлялся программным механизмом на перфокартах. Перфокарта представля1ла собой прямоугольный кусок тонко- го картона с пробитыми на нем рядами отверстий, каждый ряд со- ответствовал одной нити основы ткани. Желаемый рисунок предварительно кодировался на перфокартах, в процессе работы ко- лода перфокарт протягивалась через станок и ощупывалась про- граммным механизмом. Есть отверстие — щуп опускался и челнок в этом месте нырял под основу, нет—челнок проходил над осно- вой... Таким образом можно запрограммировать сколь угодно слож- ный рисунок, и станок отработывал его без ошибок и с недостижимой для человека скоростью. Более того, для того, чтобы сменить рисунок, не нужно переналаживать станок — достаточно просто сменить программу на перфокартах. В усовершенствован- 38 ных станках можно было программиро- вать даже циклы для повторяющихся ча- стей рисунков. Станок Жаккара произвел револю- цию в технике, ибо он ознаменовал со- бой воплощение нового технологического принципа — прин- ципа программного управления. Вслед за ткацким станком вскоре появились и другие программно-управляемые ав- томаты, например, механическое пиани- но — пианола. Идея применить принцип про- граммного управления к вычислитель- ному устройству и «ткать алгебраические узоры, как ткацкий станок Жаккара — цветы и листья» 1 была высказана выдающимся английским ученым и изобретателем Чарльзом Бэббиджем (Babbage, Charles; 1791 - 1871 ). Судьба Бэббиджа замечательна и драматична. Сын богатых родителей, выпускник Кембриджского университета, он отли- чался чрезвычайно широкими научными интересами и до глубо- кой старости сохранял высокую работоспособность. Опубликовал множество работ по математике, физике, астрономии, геологии, экономике, лингвистике. Кроме научных занятий увлекался при- кладным техническим творчеством (сделал ряд изобретений для железнодорожного транспорта, разработал систему управления маяками, придумал логический автомат для игры в крестики- нолики и др.). Главному делу своей жизни — конструированию вычислительных машин — Бэббидж посвятил более 50 лет. Пос- ле него осталось 37 кв. м. чертежей, несколько моделей отдель- ных частей разностной и аналитической машин. Его технические 1 Это сравнение принадлежит Аде Лавлейс. Чарльз Бэббидж (1791—1871) 39 идеи на столетие опередили свое время 1 К идее программного управления Бэббидж пришел не сразу, а после 14 лет работы над проектом так называемой разностной ма- шины. Мысль о создании такой машины пришла Бэббиджу в 1820 году, когда он ознакомился с работами французских ученых по со- ставлению десятичных математических таблиц. Работы велись дву- мя вычислительными мастерскими (для взаимной перепроверки), в каждой около ста человек изо дня в день вели однообразные выкладки по фиксированному алгоритму конечных разностей, ис- пользующему только сложение и вычитание. Эту рутинную рабо- ту Бэббидж решил поручить механическому вычислителю. В течение двух лет былл разработан первый проект и сделана не- большая действующая модель. Продемонстрировав модель Коро- левскому обществу (аналог нашей Академии Наук), Бэббидж добился правительственного финансирования и начал работу над постройкой машины в полном масштабе. К сожалению, при реализации проекта Бэббидж столкнулся с большими технологическими трудностями. Уровень машиностро- ения того времени не позволил осуществить столь амбициозный замысел, к тому же Бэббидж постоянно переделывал чертежи, внося бесконечные улучшения и усовершенствования. Работа затягива- лась, финансирование иссякло, и, наконец, в 1842 году решением парламента незаконченная машина и все чертежы были переданы на хранение в музей. Аналитическая машина Еще работая над проектом разностной ма- шины, Бэббидж понял, что ее возможнос- ти можно неизмеримо увеличить, если схе- му вычислений сделать не жесткой, а управляемой с помощью пер- фокарт. Первый набросок новой машины (она была названа аналитической) появился в 1834 году, затем в течение многих лет, 1 В истории науки Бэббидж известен не только своими изобретениями, но и чудаче- ствами. Много сил и энергии он потратил на политическую борьбу с уличными шар- манщиками, которые раздражали его непрошенными концертами. 40 практически до самой смерти, Бэббидж занимался ее усовершен- ствованием. Было разработано более 300 подробных чертежей ма- шины и ее отдельных узлов, в том числе 25 вариантов общих планов. Чертежи машины были литографированы и разосланы ученым раз- ных стран, с лекциями о ее устройстве Бэббидж выступал в Италии и на международных выставках. По замыслу автора, машина должна была состоять из четырех основных блоков. Первый блок Бэббидж назвал «mill», то есть «мельница», пред- назначен для выполнения четырех арифметических действий. По современной терминологии это — процессор. Вычисления должны были вестись в десятичной системе счисления, точность представ- ления чисел составляла 50 десятичных знаков, при этом сложение двух 50-разрядных чисел должно было происходить за 1 сек., умно- жение и деление — за 1 мин. Второй блок называется «store», что означает «склад», или, по- нашему, оперативная память. Временное хранение чисел должно было осуществляться на вертикальных осях с 50 (по числу разря- дов) колесами на каждой. Всего предполагалось иметь на складе 1000 осей (ячеек памяти). Нельзя не удивиться размаху планов Бэб- биджа: даже в первых электронных компьютерах середины XX века не было такого адресного пространства. Третий блок представлял собой устройство управления. Он со- стоял из двух жаккардовских перфокарточных механизмов: один для программы, второй — для исходных данных. При этом необходимо сказать, что система команд аналитичес- кой машины включала не только арифметические дей- ствия, но и условную переда- чу управления. Последний, чтевертый блок предназначался для Фрагмент аналитической машины Бэббиджа (реконструкция) 41 внешнего обмена. Планировалось иметь широкий спектр устройств ввода-вывода. В качестве основного устройства вывода использовался карточный перфоратор, кроме него предполагалось выводить результаты вычислений на бумагу, а также вы- давливать их на металлические пластинках, чтобы в дальнейшем можно было печатать таблицы без ошибок, вносимых типографс- кими наборщиками. Предполагалось еще сконструировать и под- ключить к машине механический графопостроитель. Даже по современным меркам проект аналитической машины выглядит весьма внушительно. Бэббидж предложил множество ори- гинальных технических решений (например, схему сквозного пере- носа), которые оставались актуальными почти сто лет. В сравнении с первой электронной вычислительной машиной ENIAC, постро- енной в 1945 году, проект Бэббиджа имел ряд принципиальных преимуществ. Например, в ENIAC программа программа вводи- лась не с перфокарт, а коммутировалась переключателями и соеди- нительными штеккерами. К сожалению, аналитическая машина, как и ращностная, так и осталась на бумаге. Основная причина та же — отсутствие техно- логии точной механической обработки деталей; для приведение в движение длинной цепи шестеренок требовалась слишком боль- шая сила. Большую роль сыграл и субъективный фактор. По мне- нию историка науки Поварова «...неуспех проекта был обусловлен скорее деловыми и личными причинами, нежели собственно тех- ническими. Как часто бывает, судьба изобретения тесно сплелась с судьбой изобретателя. Бэббидж был ученый-романтик, стремивший- ся все время вперед, к неведомому и небывалому. Его гениальная интуиция легко схватывала принцип решения, но он не всегда учи- тывал практические трудности исполнения, не достигнув одного, спешил к другому». По чертежам и описаниям Быббиджа впоследствии было пост- роено несколько образцов аналитической машины. Первая умень- Перфокарта Бэббиджа 42 шенная реализация предпринята шведами отцом и сыном Шютца- мив 1854 г., еще при жизни Бэббиджа. Машина весила около 1 т и содержала 4320 деталей, на всемирной выставке в Париже ей была присуждена золотая медаль. В 1876 г. в США Джордж Грант пост- роил разностную машину, содержащую 15 тыс. деталей и имевшую в длину 2.4 м в длину и 1.5 м в высоту, весом 900 кг. Машина про- работала 20 лет, а затем была передана в музей. Сын Чарльза Бэббиджа Генри в 1906 году реконструировал по чертежам отца часть аналитической машины — арифметическое устройство и устройство печати результатов с точностью 29 зна- ков. Эта модель в настоящее время хранится в Научном музее Лон- дона. В 1969 году фирма IBM изготовила для музея полномасштабный макет аналитической машины, но этот макет изображал только внешний вид устроуства и был неработоспособ- ным. Проектирование разностных машин продолжалось вплоть до 40- х годов XX века, когда надобность в них отпала, так как табулиро- вание функций стало производиться не с помощью специализированных механизмов, а по машинным программам на универсальных компьютерах. Ада Лавлейс и возникновение программирования Несмотря на то, что аналитическая маши- на не была воплощена в металле, для нее были составлены программы. Судьбе было угодно распорядиться так, что первым в ис- тории программистом стала женщина, и не кто-нибудь, а един- ственная дочь великого английского поэта Августа Ада Байрон, по мужу графиня Лавлейс (Lovelace, Ada; 1815—1852 ). Ада получила прекрасное воспитание, была талантливым му- зыкантом, знала несколько иностранных языков, увлекалась ма- тематикой. В 19 лет она познакомилась и подружилась с Чарльзом Бэббиджем, считала себя его ученицей и помощницей. Посколь- ку Бэббидж был сильно занят чертежами, Ада, обладавшая пре- красным слогом и ясностью мышления, считала своим долгом популяризировать идеи учителя. Когда в 1842 году вышла ста- тья итальянского инженера Л.Ф.Менабреа с техническим описа- 43 нием аналитической машины, состав- ленным по записям лекций Бэббиджа в Италии, Ада вызвалась перевести ее на английский язык и снабдить коммен- тариями. В этих «комментариях пере- водчика» она проанализировала основные понятия программирования, такие как простой цикл, цикл в цикле, рабочая переменная, условная переда- ча управления и т. д. В заключение приводился пример достаточно слож- ной программы для аналитической ма- шины, вычисляющей числа Бернулли 1 . Хотя объем комментариев более чем в два раза превысил объем самой статьи, Ада скромно подписалась инициаломи «AAL». Эта была ее единственная на- учная работа, но этой работой она навсегда вписала свое имя в историю науки. «Несколько страниц, написанных в ночь перед дуэлью Эва- ристом Галуа, открыли миру гениального математика. Единствен- ная песнь — «Марсельеза», сочиненная капитаном Руже де Лилем, сделала его имя бессмертным. Составленные 28-летней графиней Августой Адой Лавлейс примечания к статье итальян- ского инженера Л.Ф.Менабреа дают основания считать ее пер- вой программистской, чье имя навсегда останется в истории вычислительной мтематики и вычислительной техники». Ада Лавлейс (1815—1852) 1 Программа Ады Лавлейс содержит 25 шагов, она составлена очень изящно, мини- мизируя память и перфокарты. Для того, чтобы проверить, насколько правильно на- писана эта программа (отладить ее на машине автор не имела возможности), в 1978 году в СССР был поставлен эксперимент. Программу перевели на язык Фортран, для чего потребовалось 85 операторов, и протестировали на компьютере. Оказа- лось, что в программе Ады Лавлейс содержится одна алгоритмическая ошибка и одна опечатка. После их исправления программа заработала правильно. 44 1.7. Табуляторы: от Холлерита до машиносчетных станций Табулятор Холлерита Электромеханическая эпоха в истории вычисли- тельной техники начинается с создания в 1887 г. табулятора американским инженером Германом Холлеритом (Hollerith, Hermann; 1860—1929) 1 . Холлерит в 1879— 1882 г. работал в Бюро цензов (статистическом ведомстве) США, которое каждые десять лет проводило переписи населения, и ему было хорошо известно, сколь трудоемкой является ручная обработ- ка их результатов. Например, итоги переписи 1880 года, когда насе- ление страны составляло около 50 млн человек, были получены толь- ко через 7,5 лет. В своей «машине для переписи насе- ления» Холлерит предложил использовать перфокарты, подобные жаккардовым. Каж- дая перфокарта имела 6 рядов круглых от- верстий по 32 колонки в каждой, впоследствии отверстия стали квадратны- ми, число рядов увеличилось до 12, а чис- ло колонок до 80 На каждый объект переписи заводилась отдельная перфокарта, в которой с помо- щью специального пробойника — перфо- ратора — в соответствущих позициях делались отверстия, отвечающие опреде- ленным значениям признаков (пол, возраст и т. д.). Холлерит впоследствии вспоми- нал, что на эту мысль его навел железно- Герман Холлерит (1860-1929) 1 Хотя электромагнитное реле было изобретено в 1831 году, еще до начала работы Бэббиджа над проектом аналитическй машины, однако вплоть до последней чет- верти XIX века надежность электромагнитных приборов была совершенно недо- статочной для построения сложных устройств, и они не могли конкурировать с механическими. 45 дорожный кондуктор, который компостером пробивал дырки в биле- тах пассажиров, причем у каждого пассажира был свой билет. Для автоматическо- го подсчета статистики Холлерит предложил особое устройство, на- званное им табулятором. Перфокарты в табуляторе ощупывались стержнями на пружинках, при наличии отверстия стержень прохо- дил через него и опускался в чашечку со ртутью, замыкалась элект- рическая цепь и срабатывал соответствующий электрический счетчик импульсов. Число счетчиков в табуляторе менялось от 32 до 120, поэтому за один пропуск колоды карт получалась статисти- ка по большому числу признаков. Табуляторы Холлерита произвели настоящую революцию в ста- тистике. Результаты следующей переписи 1890 года, проведенной с их помощью, были получены всего через два года, после этого началось победное шествие перфокарт и табуляторов по планете. Уже в 1890 г. они используются для переписи населения в Авст- ро-Венгрии, в 1891 г. — в Кана- де, в 1897 г. — в России. Холлерит постоянно совершен- ствовал свое изобретение: меха- низировал подачу перфокарт в табуляторе, усовершенствовал перфоратор, придумал автомати- ческую сортировку и т.д. Для про- изводства табуляторов и сопутствуещего перфокарточного оборудования в 1896 году Холле- рит организовал фирму "Tabulating Табулятор Холлерита. Рисунок из патента 1887 г. Вверху справа располагается панель со счетчиками Перфокарта Холлерита (современный 80-колонный вариант). 46 Mashines Company", которая после ряда реорганизаций полу- чила в 1924 г. название "International Business Mashines", сокращенно IBM. Постоянно развиваясь, IBM стала самой могущественной корпорацией в компьютерном мире, прозван- ной за любимый фирменный цвет "голубым гигантом". На протяжении почти всего XX века фирма IBM определяла лицо вычислительной техники, и мы в своем историческом обзоре еще не раз с нею столкнемся. Возникновение промышленности обработки данных Строго говоря, табулятор образца 1887 г. не был вычислительной машиной, так как он ничего не вычислял, а просто считал пробивки на перфокартах. В 1908 г. Холле- рит ввел в конструкцию электромеханичес- кий сумматор, использующий ступенчатый валик Лейбница, в 1911 г. табулятор дополняется печатающим устройством, затем создают- ся модели, способные вычитать и умножать. Табуляторы становят- ся очень сложными техническими устройствами, насчитывающими до 100 000 деталей, а общая длина соединительных проводов в них достигала 5 км В усовершенствованом виде табуляторы могли использоваться не только для статистических приложений, но и для выполнения простых вычислений в экономике. В 20-х годах XX века сформиро- валась целая отрасль промышленности, занимавшаяся производ- ством и применением счетно-перфорационной (иначе называемой счетно- аналитической) техники. Общее число счетно-аналитичес- ких комплексов, куда кроме табуляторов входили перфораторы, кон- трольники, сортировки и т. п. к 30-м годам достигло 6-8 тыс. шт. Перфокарты расходовались сотнями миллионов, на их изготовле- ния уходили целые леса. Перфоратор Холлерита 47 Эпоха счетно-перфо- рационных машин продол- жалась до 1960-х годов, даже ЭВМ не сразу вытес- нили табуляторы. Дело в том, что в применении вы- числительных машин дос- таточно четко выделились два направления. Первое — научно-технические расчеты, для которых ха- рактерны небольшие объе- мы вводимых-выводимых данных и сложные алго- ритмы вычисления. Ана- литическая машина Бэббиджа была изначальо ориентирована именно на это направление, поэтому перфокарты в ней использовались в основном для хранения программы, которая могла быть при этом сколь угодно длинной и сложной. Другое направление — экономические расчеты. Алгоритмы вы- числений в них как правило предельно просты, в бухгалтерии, на- пример, вообще не используется операция вычитания, зато исходных данных очеь много, причем эти данные однородны по структуре. Для таких расчетов табулятор оказался идеальным устройством. Программа вычислений в нем заранее набиралась штеккерами на коммутационной доске, а перфокарты, которые табулятор "пожи- рал" со скоростью до 10 000 шт. в час, содержали однородные ис- ходные данные, например, зарплату одного сотрудника за один рабочий день. На базе счетно-перфорационных машин в 30-е годы были орга- низованы "фабрики вычислений" — машиносчетные станции, ко- торые обслуживали сразу множество учреждений, банков, начисляя зарплату, пенсии, коммунальные платежи, механизируя работу цен- трализованных бухгалтерий. Табулятор Т-5 отечественного произ- водства), 1950-е годы. Вверху слева — приемник перфокарт, посредине — печатающее устройство. Внизу — коммутационная доска 48 Крупная машиносчетная станция выглядила как промышлен- ное предприятие. В перфорационном зале десятки девушек с неве- роятной скоростью стучали по клавишам, перфокарты тысячами укладывали на тележки и везли в табуляторный цех. Там стоял лязг и грохот, гудели моторы сортировок, стучали рычаги табуляторов, из печатающих устройств медленно выползали широкие бумажные ленты с ровными рядами цифр. Ленты потом разрезали на малень- кие лоскутки и раздавали работникам обслуживаемых учреждений как расчетные листки к зарплате. Спросите своих бабушек и деду- шек, они эти листки хорошо помнят. Табуляторы оказали очень большое влияние на последующее развитие вычислительной техники. Первые поколения электронных компьютеров унаследовали конструкцию их устройств ввода-вы- вода, перфокарта Холлерита долгое время, до появления дисплеев, оставалась основным носителем информации и символом инфор- матики в целом. До сих пор ширина строки на алфавитно-цифро- вом дисплее равна 80 символам, как раз по размеру перфокарты, Формат многих языков программирования, например, Фортрана или Кобола, так и остался ориентированным на перфокарты, а колода перфокарт — это непосредственный предок современной реляци- онной базы данных. В электромеханическую эпоху сформировался мировой рынок вычислительной техники, на котором кроме "голубого гиганта" IBM заняли свое место Hewlett-Packard, Remington Rand (США), Bull (Франция) и др, в СССР был построен первый завод счетно-анали- тических машин (САМ) в Москве. Сформировавшаяся промышлен- ная структура стала тем фундаментом, на котором через несколько десятилетий возникнет индустрия электронных компьютеров. 49 Конрад Цузе (1910-1995) 1.8. Сложные электромеханические и релейные машины — предвестники ЭВМ Как отмечалось выше, табуляторная техника в предвоенные годы как-то прикрыла нишу экономических расчетов, однако для сложных научно-технических расчетов они были малопригодны, явно устуая по вычислительным возможностям проекту анали- тической машины Бэббиджа. Известно несколько попыток в пол- ной мере реализовать принцип программного управления на электромеханической элементной базе, все они относятся к кон- цу 30-х — началу 40-м гг. XX века. К ним относятся проекты Цузе, Айкена и Стибица. Проекты Цузе Исторически первые и наиболее передо- вые технические решения были предло- жены талантливым немецким инженером Конрадом Цузе (Zuse, Kohnrad; 1910—1995) в 1938-1945 годах. Цузе начал работу над проектами вычислительных машин в 1934 году в возрасте 24 лет, еще ничего не зная о трудах Бэббиджа, с которыми он познако- мился в 1937 году. В 1938 году он создает модель Z-1 на механи- ческих элементах, которая оказалась ненадежной, затем промежуточную модель Z-2 и, наконец, в 1941 году Z-3, которая стала первой в истории по- строенной и работающей программно-управ- ляемой универсальной вычислительной машиной. Машина Z-3 была собрана на обычных те- лефонных реле (2600 шт.), оперативная память составляла 64 22-разрядных слова. Управление осуществлялось от 8-дорожечной перфоленты, в качестве которой применялась обычная ки- нопленка. Система команд одноадресная, ис- пользовалась двоичная (еще до фон Неймана!) 50 системы счисления, одна- ко операции условной пе- редачи управления в машине не было. Ско- рость работы: сложение 0.3 с, умножение 4-5 с. Ввод исходных данных с клавиатуры, вывод — на световое табло из лампо- чек. Условия работы Кон- рада Цузе никак не соот- ветствовала гениальности его замыслов. Работая в гитлеровской Германии в годы второй мировой войны, он был отрезан от всех источников информации и работал в одиночестве, превратив в мастерскую одну из комнат родительского дома. Когда союзни- ки начали бомбить Берлин, большинство конструкций, в том чиле Z-3, сгорело. Осталась лишь незаконченная модель Z-4. Погру- зив ее на тележку, Цузе вместе с потоком беженцев отправился на юг Германии, в Баварские Альпы, где стал дожидаться окон- чания войны. В это время в американцы начали охоту за немец- кими учеными — участниками ракетного и атомного проектов, однако Цузе счастливо избежал пленения, спрятав свою машину в сарае сельского дома. В первые послевоенные годы Цузе, не имея средств и воз- можностей работать над проектированием вычислительных ма- шин, был вынужден заниматься чисто теоретическими проблемами. Именно в это время он придумал первый в исто- рии высокоуровневый язык программирования Plancalcul — «пла- нирующее вычисление», о котором мы будем говорить в дальнейшем. Только в 1949 г ему удалось организовать собствен- ную фирму «Zuse», в которой он наладил выпуск сначала ре- лейных, а впоследствии и электронных вычислительных машин. Однако время было упущено, немецкую инициативу перехвати- ла Америка. Машина Z-3 (1941 г). 51 В отличие от машин Цузе, американский проект MARK-I раз- рабатывался в тепличных условиях, с истинно американским раз- махом, он был широко разрекламирован в печати. По этой причине долгое время историки науки отдавали приоритет именно этой раз- работке, хотя она была создана на три года позже Z-3. Проект MARK-I Идея машины возникла в 1937 году у со- трудника Гарвардского университета Говар- да Айкена (Aiken, Howard; 1900—1973) в ходе работы над докторс- кой диссертацией. Он предложил, опираясь на идеи Бэббиджа, построить на современной технической базе из стандартных дета- лей табуляторов, выпускаемых фирмой IBM, универсальную про- граммно-управляемую машину для сложных научных вычислений. В 1939 г. Айкен обратился за поддержкой к Томасу Уотсону, президенту IBM, которому в то время было уже 65 лет, но отличав- шемуся отменной интуицией и деловой хваткой. Уотсон решил, что, реализовав этот проект, фирма IBM сможет оказать существенную помощь своей стране в начавшейся мировой войне. Поэтому, посо- ветовавшись с командованием Военно-Морским Флотом, он про- ект одобрил, выделил на расходы 500 000 долларов, работа закипела и через пять лет, в 1944 году машина была готова. Заключенная, по настоянию Уотсона, в элегантный корпус из стекла и нержавеющей стали, машина имела в длину 17 м, в высоту 2.5 м, весила 5 т, содержала око- ло 750 тыс. деталей, соединен- ных проводами общей протяженностью около 800 км. «Мечта Бэббиджа претворилась в жизнь. Если бы он жил на 75 лет позже, то я бы остался без работы», — так оценил Айкен создание MARK-I. Как и аналитическая ма- шина Бэббиджа, MARK-I ра- ботала в десятичной системе Компьютер MARK-I ((1944 г.). 52 Грейс Мюррей Хоппер (1906-1992) счисления на механических сумматорах, однако параметры ее были гораздо скомнее: точность 23 разряда плюс знак, емкость памяти 132 слова. Зато арифметическое устройство было значительно слож- нее, наряду с четырьмя действиями арифметики выполнялись опе- рации вычисления синуса, логарифма, антилогарифма. Сложение выполнялось за 0.3 с, умножение и деление за 5.7 и 15.3 с соответ- ственно. Для ввода констант имелся набор из 420 переключателей, а управление осуществлялось с помощью бумажной перфоленты. Законченная машина была перенесена в Гарвардский универ- ситет, где она под наблюдением Эйкена стала решать задачи расче- та артиллерийских таблиц для ВМФ. Однако вскоре между Айкеном и Уотсоном произошла крупная ссора, так как Айкен проявил чер- ную неблагодарность и во время публичной презентации машины почти не упомянул о роли IBM в этом проекте. В отместку Уотсон решил утереть нос Айкену и приказал своим сотрудником сделать новый компьютер, который бы по всем статьям превзошел MARK- I. Что из этого вышло, мы узнаем позже. Грейс Хоппер Машина MARK-I имела полноценное программ- ное управление, следовательно, для нее нужно было разрабатывать программы. Программным обеспечением этого колосса в военное время зани- малась команда из трех офице- ров Военно-морского флота США: двое мужчин (Роберт Кемпбелл и Ричард Блок) во главе с младшим лейтенантом Грейс Хоппер (Hopper, Grace Murray; 1906—1992). Случилось так, что через сто лет после Ады Лавлейс вто- рым в истории программистом стала опять женщина. Получив математическое образование и степень доктора математики, Грейс Хоппер в годы войны по- 53 ступила на военную службу в ВМФ США и была напралена в Гар- вардский университет для обслуживания самого первого компьюте- ра. Грейс Хоппер внесла очень большой вклад в становление программирования, Она разрабатывала программное обеспечение для первой серийной ЭВМ UNIVAC, принимала активное участие в раз- работке первых языков и систем автоматизации программирования. В чине контр-адмирала курировала разработку программ для воен- но-морского флота. Между прочим, с легкой руки Хоппер в практику программиро- вания вошло слово «debugging» (отладка). Дело было так. Однажды жарким, влажным летним днем таинственная неисправность заста- вила замолчать громыхающий компьютер MARK-I. После тщательно проведенного исследования программисты установили, что контак- ты одного из реле были заблокированы останками мотылька, невесть как проникшего через лабиринт электрических цепей компьютера. С предельной осторожностью мотылька извлекли пинцетом, а это со- бытие вместе с насекомым зафиксировали в журнале, который по распоряжению ВМС США педантично заполнялся на протяжении всей работы компьютера. Позднее Хоппер вспоминала: «Когда к нам зашел офицер, чтобы узнать, чем мы занимаемся, мы ответили, что очисткой компьютера от насекомых (debugging)". Термин этот при- жился и стал использоваться для обозначения поиска ошибок в ком- Запись в рабочем журнале MARK-1: "Реле номер 70 па- нель F. (Мотылек) в реле. Первый достоверный случай обнаружения насекомого". 54 пьютере, особенно в их программном обеспечении. Слово «bug» в английском языке имеет несколько значений в том числе и «насеко- мое» и «техническая неисправность». Релейные машины Джорджа Стибица Параллельно с гарвардским проектом MARK, работы по созданию сложных ре- лейных вычислительных устройств велись в Нью-Йорке, в знаменитой своими научными достижениями Bell Laboratiries, где ими руководил математик Джордж Стибиц (Stibitz, George Robert; 1904 — 1995). Простейший двоичный сумматор Сти- биц построил еще в 1937 году, а в 1939 году была создана конструк- ция из 400 телефонных реле, предназначенная для выполнения опе- раций над комплексными числами. Этот вычислитель, названный Bell-I, вошел в историю информатики благодаря эксперименту по телеобработке, проведенному в 1940 году, о чем мы более подробно расскажем в главе 4. Впоследствии Стибиц построил ряд релейных вычислительных устройств, постоянно усложняя их конструкцию и повышая уни- версальность. В специализированной машине Bell-II (1943 г.) ре- шались задачи интерполяции и гармонического анализа, причем здесь впервые были применены схемы для автоматического обнару- жения ошибок. В 1946 — 1947 годах была построена самая мощная машина этого семейства Bell-V. Она содержала 9 000 реле и весила 10 тонн. Операции выполнялись с 7-разрядными десятичными чмслами с плавающей запятой, сложение, умножение и деление выполнялись соответственно за 0,3, 1,0 и 2,2 с. Хотя по скорости вычислений эта электромеханическая машина не могла сравниться с уже работающей в то время электронной ENIAC, однако в ней присутствовали технические решения, опередившие свое время и оказавшие заметное влияние на архитектуру будущих ЭВМ. К ним относятся арифметика с плавающей запятой и мультипроцессор- ная, пользуясь современной терминологией, организация. Попытки конструровать релейные вычислительные машины продолжались вплоть до 50-х годов. После успешного дебюта MARK- I Говард Айкен в 1947 построил более мощную чисто релейную (13 55 тыс. реле) модель MARK-II, в СССР уже в 1957 г. была сконструи- рована надежная релейная вычислительная машина РВМ-I . Одна- ко эти достижения бледнели на фоне первых работающих элеккт- ронных компьютеров. Электромеханическая эра безвозвратно ушла, наступил век электроники. 1.9. Выводы 1. В доэлектронной истории вычмслительной техники можно выделить три эпохи: • домеханическая (до XVII в.), • механическая (XVII в. - первая половина XIX в.), • электромеханическая (вторая половина XIX в. - первая половина XX в.), 2. Простейшими вычислительными устройствами домеханической эпохи были абак и счеты. По принципу действия они являются цифровыми (дискретными), так как оперируют с цифровой за- писью числа. 3. Наряду с цифровыми вычислительными устройствами существу- ют аналоговые, оперирующие с физическими величинами, пред- ставляющими значение числа. Простейшим аналоговым вычис- лителем является логарифмическая линейка, изобретенная в первой половине XVII в. В дальнейшем аналоговые вычисли- тельные машины развивались вместе с цифровыми, они про- шли все эпохи вплоть до электронной, однако в 70-х годах были вытеснены дешевыми цифровыми компьютерами. 4. Первая цифровая механическая вычислительная машина — «Пас- калина» — была изобретена французским ученым и изобрета- телем Блезом Паскалем в 1642 году. Она могла выполнять опе- рации сложения и вычитания. 5. Машина Паскаля была усовершенствована великим немецким 56 ученым Готфридом Лейбницем в 1673 году. Он ввел в конст- рукцию ступенчатый «валик Лейбница» и подвижную каретку. В результате получился прообраз арифмометра, выполняющего четыре арифметических жействия. Арифмометры постоянно совершенствовались на протяжении XVIII и XIX в., они выпус- кались промышленностью в массовых количествах и дожили до второй половины XX в. Впоследствии их заменили электроме- ханические, а затем электронные калькуляторы. 6. Принцип механического программного управления был впервые реализован французским механиком Жаккаром, который в 1804 году построил ткацкий станок, управляемый перфокартами. Перфокарта Жаккара была впоследствии использована Бэббид- жем и Холлеритом для управления вычислительными машина- ми. 7. Программно-управляемая механическая вычислительная машина была изобретена английским ученым Чарльзом Бэббиджем в его проекте аналитической машины, первый набросок которой по- явился в 1834 году. Идеи Бэббиджа на столетие опередили свое время, структура аналитической машины соответствует всем со- временным представлениям об архитектуре компьютера. Из-за технологических и организационных трудностей аналитическая машина не была построена. 0. Первой в истории программисткой была ученица Бэббиджа Ада Лавлейс (урожденная леди Байрон). Для непостроенной еще ма- шины она разработала программу, применив в ней все основ- ные принципы программирования (условная передача управле- ния, циклы, рабочие переменные и т. д.). 9. Электромеханическая эпоха в истории вычислительной техники началась с изобретения в 1887 году американским инженером Германом Холлеритом перфокарточного табулятора, предназна- ченного для переписи населения. Холлерит основал компанию по производству табуляторов, впоследствии превратившуюся в корпорацию IBM. На основе табуляторов в 20-30-е годы XX в. 57 возник мировой рынок вычислительнорй техники и сформиро- валась отрасль промышленности обработки данных. 10. В конце 1930-х — начале 40-х годов был построен ряд сложных электромеханических вычислительных маших, предвосхитивших появление ЭВМ. К ним относятся проекты Конрада Цузе (Гер- мания), Говарда Айкена (США, Гпрвардский университет, г. Бостон)) и Джорджа Стибица (США, Bell Laboratories, Нью- Йорк). 11. Первая в истории работающая программно-управляемая уни- версальная вычислительная машина Z-3 была построена немец- ким инженером Конрадом Цузе в 1941 году. Она была собрана на телефонных реле и управлялась перфолентой. Условия во- енной Германии не позволили Цузе довести свои проекты до промышленного внедрения. 12. Крупнейшая электромеханическая вычислительная машина MARK-I была построена в 1944 году в США по проекту Говар- да Айкена. Она имела полноценное программное управления и использовалась для расчета артиллерийских таблиц. Программ- ное обеспечение для этой машины разрабатывала группа офи- церов под руководством женщины-адмирала Грейс Хоппер. 13. Параллельно с гарвардским MARK в крупнейшем в США ис- следователском институте в области радиотехники Bell Laboratories в 1940 — 1947 годах под руководством Джорджа Стибица было построено несколько релейных вычислительных машин серии Bell. Конструкции этих машин содержали передо- вые технические решения, оказавшие заметное вдияние на ар- хитектуру будущих ЭВМ (аппаратный контроль ошибок, ариф- метика с плавающей запятой, сложные команды типа операций с комплексными числами, мультипроцессорные вычисления, те- леобработка). 58 1.10. Контрольные вопросы 1. Какие вычислительные устройства домеханической эпохи вам известны? 2. Каким событием отмечено начало механической эпохи в истории вычислительной техники? 3. Когда появились первые электрические машины? 4. Каким событием отмечено начало электромеханической эпохи в истории вычислительной техники? 5. Когда была изобретена логарифмическая линейка? 6. Каковы достоинства аналоговых вычислительных машин по сравнению с цифровыми? 7. Каковы недостатки аналоговых вычислительных машин по сравнению с цифровыми? 8.В каком веке были изобретены первые механические вычислительные устройства? 9. Кто изобрел первую механическую вычислительную машину? 10. Какие арифметические действия выполняла вычислительная машина Паскаля? 11. Кто изобрел механический десятичный счетчик? 12. Что изобрел Готтфрид Лейбниц? 13. Что изобрел Чарльз Бэббидж? 14. В какой вычислительной машине был впервые применен принцип программного управления? 15. На каких конструктивных элементах была построена аналитическая машина Бэббиджа? 59 16. Какие идеи, воплощенные в проекте аналитической машины Бэббиджа, опередили свое время на много десятилетий? 17. Кто был первым в истории программистом? 18. Что изобрел Герман Холлерит? 19. Какие операции выполнял табулятор Холлерита образца 1887 года? 20. Как вводится программа вычислений в табулятор? 21. Кто считается основателем фирмы IBM? 22. Кем была построена первая в истории работающая программно-управляемая вычислительная машина? 23. На каких конструктивных элементах была построена машина Z-3? 24. На каких конструктивных элементах была построена вычислительная машина MARK-I? 25. Где была построена машина MARK-I? 26. Кто такая Грейс Хоппер? 27. Когда появился термин debugging? 28. В какой фирме работал Джордж Стибиц? 29. На каких конструктивных элементах были построены машины Bell-I — Bell-V? 29. Какие архитектурные особенности, оказавшие влияние на организацию будущих ЭВМ, присутствовали в вычислительных машинах Стибица? |