Валерий Владимирович Шилов
Удивительная история информатики и автоматики

Предисловие

   На рубеже веков информационные (а фактически компьютерные, т. е. основанные на применении компьютеров) технологии стали неотъемлемой частью жизни современного человека, элементом общечеловеческой культуры. Современное общество без них уже немыслимо. Теоретической основой этих технологий является информатика, которая сегодня преподается в школе.
   Основные разделы информатики, подлежащие изучению согласно школьной программе, – это системы счисления, представление чисел в ЭВМ, основы алгоритмизации, элементы программирования и элементы математической логики. Большей части школьников, не собирающихся в дальнейшем получать специальность, связанную с информатикой, они представляются совершенно оторванными от жизни и не имеющими отношения к практике.
   «За бортом» изучения остается и история этой отрасли знания – знаменательные открытия, любопытные факты, имена ученых и изобретателей.
   Кроме того, ощущается явный дефицит популярной и исторической литературы по информатике на русском языке, а выходящие книги зачастую переполнены непроверенными данными, описаниями никогда не имевших места фактов и пересказами давно опровергнутых легенд. Информацию школьники и даже учителя нередко получают из не выдерживающих никакой критики статей в текущей периодике и из Интернета.
   Цель книги «Удивительная история информатики и автоматики» – хотя бы частично восполнить перечисленные выше «пробелы». Автор стремился, не углубляясь в теоретический или прикладной материал, познакомить читателя с некоторыми интересными эпизодами истории информационных и компьютерных технологий, заинтересовать его и побудить к дальнейшему, более глубокому изучению не только этой области, но и смежных с ней – автоматики и вычислительной техники.
   Представленный в книге материал не подчинен сквозному сюжету, а состоит из отдельных очерков. Они посвящены истории некоторых областей информатики и автоматики с древности и до наших дней, а также происхождению и историческому развитию некоторых ключевых терминов.
   Надеюсь, что книга не только сможет стать интересным чтением, но и окажется полезной как для школьников, так и для учителей.
 
   В. Шилов

Компьютеры и программы

О слове «информатика»

   В начале 1960-х годов американский программист Уолтер Бауэр с несколькими коллегами решили создать собственную компанию по разработке программного обеспечения. Разумеется, немедленно встал вопрос о ее названии. Поскольку программы работают с данными (по-английски data), в первую очередь вспомнилось слово Datamatics (в том, что название должно заканчиваться греческим суффиксом – atics, имеющим значение «наука о…», никто не сомневался). Однако зарегистрировать его Бауэру не удалось, поскольку оно уже было использовано фирмами Raytheon и Honeywell, выпускавшими компьютер Datamatic 1000.
   Разочарование было недолгим, и следующий вариант был принят с восторгом. Слово informatics понравилось всем, и название без промедления было зарегистрировано. Правда, о том, кто же именно предложил его, компаньоны спорят до сих пор.
   В это же время во Франции возникла другая программистская фирма, Société pour L’Informatique et Applique (SIA), основанная одним из первых французских программистов Филиппом Дрейфусом. Очень быстро слово l’Informatique обрело популярность и в значении «наука об обработке информации с помощью электронных вычислительных машин», получив одобрение Французской академии, было официально включено в словарь современного французского языка. В формах informatik, informatica, информатика и др. оно вскоре вошло во все европейские языки.
   А вот в США дело обстояло совершенно по-иному. Фирма Informatics на протяжении многих лет успешно отстаивала свои права на зарегистрированную торговую марку. Однажды за разрешением использовать слово к Бауэру обратились представители крупнейшего американского профессионального общества ACM (Association for Computing Machinery), которое решило изменить свое название на Society for Informatics («Общество информатики»). Предложение было очень лестным, но, посоветовавшись с юристами, Бауэр отклонил его – название фирмы является неотъемлемой частью ее активов, и его изменение грозило принести акционерам значительные убытки.
   Свое старое название ACM сохранило до сегодняшнего дня, а наука, изучаемая нами как информатика, в США носит название Computer Science.
   Между прочим, когда несколько лет спустя Бауэр и Дрейфус встретились в Париже и разговорились, то выяснили, что они оба придумали новое слово одновременно – в марте 1962 года.

К вопросу об алгоритмах

   В любом учебнике информатики можно прочитать о том, что слово алгоритм происходит от имени великого среднеазиатского ученого Мухаммеда ибн Муса аль-Хорезми, жившего в первой половине IX века (точные годы его жизни неизвестны, но считается, что он родился около 780 года, а умер около 850 года). Аль-Хорезми означает «родом из Хорезма» (Хорезм – историческая область на территории современного Узбекистана, центром которой является древний город Хива).
   Около 825 года аль-Хорезми написал сочинение, в котором впервые дал описание придуманной в Индии позиционной десятичной системы счисления. К сожалению, арабский оригинал его книги не сохранился, так что ее название нам неизвестно. Аль-Хорезми сформулировал правила вычислений в новой системе и, вероятно, впервые использовал цифру «0» для обозначения пропущенной позиции в записи числа (ее индийское название арабы перевели как as-sifr или просто sifr, отсюда такие слова, как цифра и шифр). Приблизительно в это же время индийские цифры начали применять и другие арабские ученые.
   В первой половине XII века книга аль-Хорезми в латинском переводе проникла в Европу. Переводчик, имя которого до нас не дошло, дал ей название «Algoritmi de numero Indorum» («Индийское искусство счета, сочинение аль-Хорезми»).
   Таким образом, латинизированное имя арабского ученого было вынесено в заглавие книги, – и сегодня ни у кого нет сомнений, что слово алгоритм попало в европейские языки именно благодаря этому сочинению. Однако вопрос о его смысле длительное время вызывал ожесточенные споры. На протяжении многих веков происхождению слова давались самые разные объяснения.
   Одни выводили algorism из греческих algiros («больной») и arithmos («число»). Из такого объяснения не очень ясно, почему числа вдруг «заболели». Или же тогда больными считались люди, имеющие несчастье заниматься вычислениями? Свое объяснение предлагала и знаменитая энциклопедия Брокгауза и Ефрона (1890–1907 годы): алгорифм (кстати, до революции использовалось написание алгоритм, через «фиту») – «от арабского слова Аль-Горетм, т. е. корень». Разумеется, эти объяснения вряд ли можно счесть убедительными.
 
 
   Страница арабской рукописи
   Заметим, кстати, что такого рода языковые упражнения могут приводить к самым произвольным и нелепым выводам. Так, в начале XIX века санкт-петербургский профессор Я. В. Толмачев, стараясь доказать исконно русское происхождение некоторых слов, производил слово кабинет не от французского cabinet, а от фразы «как бы нет». В самом деле, писал он, человек заходит в кабинет и исчезает с наших глаз – его «как бы нет». Остается непонятным, почему так толковался именно кабинет, ведь точно так же мы не видим человека, заходящего, к примеру, в сарай… Еще более курьезным было объяснение слова республика. Согласно Толмачеву, кровожадные низвергатели тронов кричали: «Режь публику!» – откуда и произошло наименование республиканской формы правления…
   Упомянутый выше перевод сочинения аль-Хорезми стал первой ласточкой, и в течение нескольких следующих столетий появилось множество других трудов, посвященных все тому же вопросу – обучению искусству счета с помощью цифр. И все они в названии имели слово algoritmi или algorismi.
   Про аль-Хорезми позднейшие авторы ничего не знали, но поскольку первый перевод книги начинается словами: «Dixit algorizmi:…» («Аль-Хорезми говорил:…»), все еще связывали это слово с именем конкретного человека.
   Очень распространенной была версия о греческом происхождении книги. В англо-норманнской рукописи XIII века, написанной в стихах, читаем:
 
«Алгоризм был придуман в Греции.
Это часть арифметики.
Придуман он был мастером по имени Алгоризм,
Который дал ему свое имя.
И поскольку его звали Алгоризм,
Он назвал свою книгу «Алгоризм».
 
   Около 1250 года английский астроном и математик Иоанн Сакробоско написал труд по арифметике «Algorismus vulgaris», на столетия ставший основным учебником по вычислениям в десятичной позиционной системе счисления во многих европейских университетах. Во введении Сакробоско назвал автором науки о счете мудреца по имени Алгус (Algus). А в популярной средневековой поэме «Роман о розе» (1275–1280 годы) Жана де Мена «греческий философ Алгус» ставится в один ряд с Платоном, Аристотелем, Евклидом и Птолемеем! Встречался также вариант написания имени Аргус (Argus). И хотя согласно древнегреческой мифологии корабль «Арго» был построен Ясоном, именно этому Аргусу приписывалось строительство корабля.
   Более того, «мастер Аргус» (или Алгус) стал в средневековой литературе олицетворением счетного искусства. И в уже упоминавшемся «Романе о Розе», и в известной итальянской поэме «Цветок», написанной Дуранте, имеются фрагменты, в которых говорится, что даже «mestre Argus» не сумеет подсчитать, сколько раз ссорятся и мирятся влюбленные. Великий английский поэт Джефри Чосер в поэме «Книга герцогини» (1369 год) писал, что даже «славный счетчик Аргус» (noble countour Argus) не сможет счесть чудовищ, явившихся в кошмарных видениях герою.
   Впрочем, греческая версия была не единственной. Мифический Алгор (Algor) именовался то королем Кастилии (Rex quodam Castelliae), то индийским королем, то арабским мудрецом (philosophus Algus nomine Arabicus).
   Однако со временем такие объяснения все менее занимали математиков, и слово algorism (или algorismus), неизменно присутствовавшее в названиях математических сочинений, обрело значение способа выполнения арифметических действий посредством арабских цифр, т. е. на бумаге, без использования счетной доски – абака. Именно в таком значении оно вошло во многие европейские языки. Например, с пометкой «устаревшее» оно присутствует в общепризнанном словаре английского языка «Webster’s New World Dictionary», изданном в 1957 году.
 
   Древнегреческий абак (современная реконструкция)
   Алгоритм – это искусство счета с помощью цифр, но поначалу слово цифра относилось только к нулю. Знаменитый французский трувер Готье де Куэнси около 1200 года в одном из стихотворений использовал сочетание algorismus-cipher (которое означало цифру «0») как метафору для характеристики абсолютно никчемного человека. Очевидно, понимание такого образа требовало соответствующей подготовки слушателей, а это означает, что новая система счисления уже была им достаточно хорошо известна.
   Многие века абак был фактически единственным средством для практических вычислений, им пользовались все – и купцы, и менялы, и ученые. Достоинства вычислений на счетной доске разъяснял в своих сочинениях такой выдающийся мыслитель, как Герберт Аврилакский, ставший в 999 году папой римским под именем
   Сильвестра II. Новое с огромным трудом пробивало себе дорогу, и в историю математики вошло упорное противостояние лагерей абацистов (сторонников производства арифметических вычислений исключительно при помощи абака) и алгорисмиков, которые пропагандировали использование для вычислений арабских цифр. Интересно, что известный французский математик Никола Шюке в реестр налогоплательщиков города Лиона был вписан как алгорисмик (algoriste).
   Но прошло не одно столетие, прежде чем новый способ счета окончательно утвердился, – столько времени потребовалось, чтобы выработать общепризнанные обозначения, усовершенствовать и приспособить к записи на бумаге методы вычислений. В Западной Европе учителей арифметики вплоть до XVII века продолжали называть магистрами абака – как, например, математика Никколо Тарталью.
   Итак, сочинения по искусству счета назывались алгоритмами. Из многих сотен можно выделить и такие необычные, как написанный в стихах трактат «Carmen de Algorismo» (латинское carmen и означает «стихи») Александра де Вилла Деи или учебник венского астронома и математика Георга Пурбаха «Opus algorismi jocundissimi» («Веселейшее сочинение по алгоритму»).
   Однако постепенно значение слова расширялось. Ученые начинали применять его не только к сугубо вычислительным, но и к другим математическим процедурам. Например, около 1360 года французский философ Николай Орем написал математический трактат «Algorismus proportionum» («Вычисление пропорций»), в котором впервые использовал степени с дробными показателями и фактически вплотную подошел к идее логарифмов. Когда же на смену абаку пришел так называемый счет на линиях, многочисленные руководства по нему стали называть «Algorithmus linealis» («Правила счета на линиях»).
   Можно обратить внимание на то, что первоначальная форма algorismi спустя какое-то время потеряла последнюю букву, и слово приобрело более удобное для европейского произношения вид algorism. Позднее и оно, в свою очередь, подверглось искажению, скорее всего, по аналогии со словом arithmetic.
 
   Счет на линиях (средневековый рисунок)
 
   В 1684 году Г. В. Лейбниц в сочинении «Nova Methodus pro maximis et minimis, itemque tangentibus…» впервые использовал слово алгоритм (аlgorithmo) в еще более широком смысле: как систематический способ решения проблем дифференциального исчисления.
   В XVIII веке в одном из германских математических словарей, «Vollstandiges mathematisches Lexicon» (изданном в Лейпциге в 1747 году), термин algorithmus все еще объясняется как понятие о четырех арифметических операциях. Но такое значение не было единственным, ведь терминология математической науки в те времена еще только формировалась. В частности, выражение algorithmus infinitesimalis применялось к способам выполнения действий с бесконечно малыми величинами. Пользовался словом алгоритм и Леонард Эйлер, одна из работ которого так и называется – «Использование нового алгоритма для решения проблемы Пелля» («De usu novi algorithmi in problemate Pelliano solvendo»). Мы видим, что понимание Эйлером алгоритма как синонима способа решения задачи уже очень близко к современному.
   Однако потребовалось еще почти два столетия, чтобы все старинные значения слова вышли из употребления. Этот процесс можно проследить на примере проникновения слова алгоритм в русский язык.
   Историки датируют 1691 годом один из списков древнерусского учебника арифметики, известного как «Счетная мудрость». Это сочинение известно во многих вариантах (самые ранние из них почти на сто лет старше) и восходит к еще более древним рукописям XVI века. По ним можно проследить, как знание арабских цифр и правил действий с ними постепенно распространялось на Руси. Полное название этого учебника – «Сия книга, глаголемая по еллински и по гречески “арифметика”, а по немецки “алгоризма”, а по русски “цифирная счетная мудрость”».
   Таким образом, слово алгоритм понималось первыми русскими математиками так же, как и в Западной Европе. Однако его не было ни в знаменитом словаре В. И. Даля (1863–1866 годы), ни – спустя сто лет – в «Толковом словаре русского языка» под редакцией Д. Н. Ушакова (1935 год). Зато слово алгорифм можно найти и в популярном дореволюционном Энциклопедическом словаре братьев Гранат (1891–1903 годы), и в первом издании (1926 год) Большой советской энциклопедии (БСЭ). И там, и там оно трактуется одинаково – как правило, по которому выполняется то или иное из четырех арифметических действий в десятичной системе счисления. Однако к началу XX века для математиков слово алгоритм уже означало любой арифметический или алгебраический процесс, выполняемый по строго определенным правилам.
   Алгоритмы становились предметом все более пристального внимания ученых, и постепенно это понятие заняло одно из центральных мест в современной математике. Что же касается людей, от математики далеких, то к началу 1940-х годов это слово они могли услышать разве что во время учебы в школе в сочетании «алгоритм Евклида». Несмотря на это, алгоритм все еще воспринимался как термин сугубо специальный, что подтверждается отсутствием соответствующих статей в менее объемных изданиях. В частности, его нет даже в десятитомной Малой советской энциклопедии (1957 год), не говоря уже об однотомных энциклопедических словарях. Но зато спустя десять лет, в третьем издании БСЭ (1969 год) алгоритм уже характеризуется как одна из основных категорий математики, «не обладающих формальным определением в терминах более простых понятий и абстрагируемых непосредственно из опыта».
   Как мы видим, за сорок лет алгоритм превратился в одно из ключевых понятий математики, и признанием этого стало включение слова не только в энциклопедии, но и в толковые словари. Например, оно присутствует в «Малом академическом словаре русского языка» (1981 год) – именно как термин из области математики.
   Одновременно с развитием понятия алгоритма постепенно происходила и его экспансия из чистой математики в другие сферы. И начало ей положило появление компьютеров, благодаря которому слово алгоритм обрело новую жизнь. Вообще можно сказать, что его сегодняшняя известность напрямую связана со степенью распространения компьютеров. Например, в третьем томе «Детской энциклопедии» (1959 год) о вычислительных машинах говорится немало, но они еще не стали чем-то привычным и воспринимаются скорее как некий атрибут светлого, но достаточно далекого будущего. Соответственно и алгоритмы ни разу не упоминаются на ее страницах. Но уже в начале 70-х годов прошлого столетия, когда компьютеры перестали быть экзотической диковинкой, слово алгоритм стремительно входит в обиход. Это чутко фиксируют энциклопедические издания. В «Энциклопедии кибернетики» (1974 год) в статье «Алгоритм» он уже связывается с реализацией расчетов на вычислительных машинах, а в «Советской военной энциклопедии (1976 год) даже появляется отдельная статья «Алгоритм решения задачи на ЭВМ».
   За последние полтора-два десятилетия компьютер стал неотъемлемым атрибутом нашей жизни, компьютерная лексика становится все более привычной. Слово алгоритм в наши дни известно, вероятно, каждому. Оно уверенно шагнуло даже в разговорную речь, и сегодня мы нередко встречаем в газетах и слышим в выступлениях политиков выражения вроде «алгоритм поведения», «алгоритм успеха» (а кто-то даже употребил выражение «алгоритм предательства»!). Академик Н. Н. Моисеев назвал свою книгу «Алгоритмы развития», а известный врач
   Н. М. Амосов – «Алгоритм здоровья». А это означает, что слово живет, приобретая все новые значения и смысловые оттенки.

От календаря к компьютеру

   Человек придумал цифры для того, чтобы считать и вычислять. Но на протяжении многих веков потребности в вычислениях ограничивались в основном подсчетом – т. е. определением числа единиц какого-либо объекта, будь то количество овец в стаде или монет в казне. Вероятно, единственными людьми, которые на самом деле покрывали бумагу (точнее, поскольку бумагу еще не изобрели, свитки папируса, куски пергамента или восковые дощечки) рядами цифр, были астрономы Древнего мира. А в середине первого тысячелетия нашей эры – после распространения христианства в Европе – одной из самых важных задач астрономии стало вычисление точной даты празднования Пасхи.
   Искусство ее вычисления столетиями оставалось центральной проблемой математики и астрономии. Оно получило название компут (computus, от латинского computare – «вычислять»). Люди, занимавшиеся компутом, назывались… Нет, не компутерами, а компутистами.
   Латынь в Средние века была широко распространенным языком, на котором разговаривали придворные и сочинялись ученые трактаты. Постепенно слово comput, видоизменяясь, проникало и в другие европейские языки, в том числе в английский. В 1646 году известный английский врач и ученый-энциклопедист Томас Браун в сочинении «Pseudodoxia epidemica» впервые использовал слово computer для обозначения человека, профессионально занимающегося пасхальными вычислениями (таким образом, оно заменило латинское computiste).
   Слово прижилось, поскольку оно отвечало потребностям времени. Действительно, по сравнению с античностью жизнь общества неимоверно усложнилась. Бурно развивались торговля, промышленность, мореплавание, картография, физика и другие науки. Везде надо было проводить вычисления, но, к сожалению, искусство счета не было общим достоянием. Хотя в школах и университетах обучали вести вычисления на бумаге с использованием арабских цифр, но в основном ограничивались умением складывать и вычитать. Умножение же и особенно деление были известны (и доступны) далеко не каждому. В подтверждение можно привести, например, такой факт. Известный английский мемуарист Сэмюэл Пепис, начавший работать клерком Адмиралтейства, 4 июля 1662 года записал в своем дневнике: «…я пытаюсь изучить математику (прежде всего стараюсь выучить таблицу умножения)». То, что Пепис, окончивший Кембриджский университет, не умел ни умножать, ни делить, ярко характеризует уровень математического образования эпохи.
   Поэтому во многих европейских странах начиная с XV века сформировалось сословие мастеров счета. Были они (правда, несколько позже) и в России. Вспомним бессмертную комедию Д. И. Фонвизина «Недоросль» (1782 год), один из персонажей которой, отставной солдат Цыфиркин, так говорит о себе: «Малу толику арихметике маракую, так питаюсь. у счетных дел. Не всякому открыл Господь науку: так кто сам не смыслит, меня нанимает то счетец поверить, то итоги подвести. Тем и питаюсь: праздно жить не люблю».
   До середины XVIII века мастера счета, подобно Цыфиркину, в основном перебивались случайными заказами. Но в 1767 году в Англии вышел первый выпуск ставшего впоследствии ежегодным «Морского альманаха» («Nautical Almanac»). Основным предназначением издания было помочь морякам определять долготу в открытом море, поэтому альманах содержал различные астрономические таблицы (в первую очередь лунные расстояния с интервалом в три часа на каждые сутки года). Для расчета таблиц по всей стране нанимались квалифицированные вычислители, выполнявшие свою работу на дому, причем каждый из них производил полный набор расчетов на определенный период времени. Из сохранившихся списков следует, что первой женщиной-компьютером, привлеченной для выполнения счетных работ, стала некая Мэри Эдвардс. Организатором работ и редактором альманаха был королевский астроном Невил Маскелин.
   После этого различные схемы организации вычислительных работ с помощью коллектива людей применялись во многих странах в течение почти 200 лет. История знает такие масштабные проекты использования людей-компьютеров, как предложенный в 1922 году кембриджским математиком Льюисом Ричардсоном план задействовать одновременно 64 000 (!) счетчиков в разных странах для расчета прогноза погоды. Компьютеры вели свои расчеты на бумаге, а ближе к концу XIX века впервые стали использовать арифмометры. Для того, чтобы отличить «счетные машины» от «счетных людей», различные устройства для механизации счета стали называть калькуляторами (calculator) или вычислительными машинами (computing machine).
   Своего расцвета профессия компьютера достигла в 1930—1940-е годы. В это время была особенно велика потребность в различных таблицах – математических, астрономических, баллистических, навигационных и других. Для их составления требовалось производить огромный объем вычислений, и количество людей, вовлеченных в эту деятельность, исчислялось тысячами. В штатном расписании научных организаций и фирм значились такие должности, как «младший компьютер», «помощник компьютера», «компьютер» и «старший компьютер». Например, известный американский ученый в области вычислительной техники Герберт Грош, начавший свой трудовой путь в 1935 году именно с должности компьютера, в последние годы жизни в шутку называл себя «самым старым компьютером на Земле».
 
   Люди-компьютеры за работой. Фотография. 1920-е годы
 
   Когда в середине 1940-х годов стали появляться первые электронные вычислительные машины, их воспринимали всего лишь как большие и очень быстрые арифмометры, способные с огромной скоростью производить вычисления. Они должны были заменить на этой работе людей-компьютеров и, естественно, также получили это наименование. Чтобы избежать терминологической путаницы, в 1945 году знаменитый компьютерный пионер, создатель серии релейных электромеханических машин Джорж Стибиц, предложил сохранить названия калькулятор и вычислительная машина за простыми механизмами, способными выполнять за один раз одну из четырех арифметических операции над парой чисел, а словом компьютер называть машины, «способные автоматически выполнять последовательности таких операций и сохранять промежуточные результаты». Людей, которые работают на таких машинах, Стибиц предложил называть операторами (operator).