Полная версия
НЕэлектронные компьютеры и их создатели
Леонид Черняк
НЕэлектронные компьютеры и их создатели
Благодарности
Автор безмерно благодарен трем людям, компенсировавшим его ошибки и недоработки, и еще больше за их благожелательное отношение: редактору Татьяне Грачевой и коллегам Владиславу Боярову и Юрию Сизову.
Введение
Электронные компьютеры родились всего 75 лет назад, когда возникли необходимость в больших расчетах возможность ее удовлетворить средствами появившихся технологий. Но потребности в средствах, упрощающих счет, возникли гораздо раньше и удовлетворить их можно было только с помощью разного рода механических вычислительных устройств. В их долгую историю мы и погрузимся.
В любой области человеческой деятельности, прогресс становился возможным, когда складывался необходимый баланс между новыми запросами пользователей и возможностями доступных на тот момент технологий. Эта парочка идет рука об руку, если же изобретатели ставили перед собой задачи с опережением реального спроса и доступных технологий, то по прошествии лет их труды представляются ничем иным, как созданием технических курьезов. Ими можно восхищаться, но их реальный вклад в копилку знаний ее велик.
Самый яркий и трагический пример – эпохальная битва Чарльза Бэббиджа на поле создания Разностной и Аналитической машин, в которой он изначально был обречен на поражение. Потомки его оценили, но, по сути, в памяти он остался создателем курьезов. Примерно то же можно сказать о Конраде Цузе, который стоял в одном шаге от цифрового компьютера, но в силу обстоятельств был вынужден сделать ставку не на электронику, а на электромеханические реле и проиграл. Работы этих гениев для современности не имеют никакого значения, но из этого не следует, что о них не нужно знать.
До Эпохи Возрождения скромные потребности человечества в счете удовлетворялись такими простыми устройствами как гномон, астролябия и абак. С созданием артиллерии и развитием мореплавания потребности в расчетах возросли и в ответ на них появились новые инструменты – палочки Непера, логарифмическая линейка, сектор, секстант квадрант и другие. Они с технологической точки зрения были ненамного сложнее предшественников. Плавный эволюционный процесс закончился в XVII веке, когда несколько человек, прежде всего Паскаль и Лейбниц, задумались о создании цифровых механических счетных машин в чем как минимум на полтораста лет опередили время – не было и не могло быть технологий для реализации их замыслов. Все последующие годы сохранялся дисбаланс между изобретательской мыслью и необходимыми технологиями, отягощенный отсутствием спроса, в социальных условиях XVIII века его не могло быть. Тем не менее с конца XVII до начала XIX века было создано немало интересных конструкций. Из-за своей высокой стоимости они не смогли занять хотя бы какое-то заметное место в инженерии или в науке, большая часть из них осталась украшением дворцовых интерьеров. Радикальный прогресс начался вместе с Первой промышленной революцией, к 1850 году возник встречный процесс – науке и бизнесу требовались инструменты облегчающие расчеты, а развитие точного машиностроения открывало возможность удовлетворить эту потребность. Следствием этих обстоятельств стал бум по созданию разного рода механических и позже электромеханических калькуляторов. Остававшиеся втуне 100–200 лет изобретения оказались востребованными. Бум этот продолжался до тридцатых годов XX века, когда обнаружился предел возможностей механики.
Но потребность в автоматизации расчетов возрастала, особенно в разного рода военных приложениях, в ответ на нее было создано несколько монстров, завершивших эпоху механики. Они не стали решением проблемы счета в ядерной физике, баллистике, аэродинамике и в других приложениях. Подходы к ее решению открылись через 10–15 лет, когда были созданы первые электронные цифровые компьютеры, похоронившие все то, что было сделано прежде. Их потенциал и степень влияния на все стороны жизни никто не мог предположить, он обнаружился с появлением микропроцессоров, когда человечество вступило в цифровую эпоху.
Большинство современных людей смотрят на компьютеры исключительно через призму интересующих их приложений, о том, что такое архитектура и физика компьютеров имеет понятие ничтожный процент из тех, кто имеет дело с ними. Все поглотила неизбежная консьюмеризация, что совершенно нормально. Это характерная черта времени, кто сегодня задумывается об устройстве бесчисленного количество гаджетов, которые нас окружают? Однако сохраняется надежда, что кому-то захочется узнать о том, что предшествовало нашему цифровому времени, когда за смешные деньги можно купить смартфон с процессором, на порядки превосходящим по мощности суперкомпьютер тридцати-сорокалетней давности.
Эта книга не содержит детальных описаний механизмов и, как и в предшествующем ей «Путеводителе по истории ИИ», здесь нет картинок. Она тоже своего рода путеводитель. Для интересующихся в Сети есть гигантское количество высококачественных иллюстраций и, что особенно важно: анимаций, позволяющих лучше понять конструкцию механизмов, чем любая книжная графика, рассматривать их – увлекательное занятие. Рекомендую начать с Паскалины.
Книга состоит из двенадцати глав и охватывает период от зарождения счета в доисторические времена до появления первых электронных компьютеров. Идея написания такой книги возникла неожиданно, ранее, более 20 лет исподволь складывался материал для книги об электронных компьютерах, начиная с ENIAC и Colossus, но при попытке систематизировать накопленное стало ясно, что недостает более глубокого исторического контекста, пришлось в него погрузиться и это оказалось удивительно интересным.
Книга названа «НЕэлектронные компьютеры и их создатели», что отражает ее направленность. По прошествии лет интереснее не столько технические детали устройств, сколько время, когда они были созданы, и люди причастные к ним.
Глава 1 Древнейшие методы счета
Глава 2 Первые аналоговые счетные устройства
Глава 3 Абак
Глава 4 Основоположники
Глава 5 Машины XVII и XVIII веков
Глава 6 Логические машины
Глава 7 Бэббидж и его машины
Глава 8 Загадка чародейки чисел
Глава 9 Последователи Бэббиджа
Глава 10 Арифмометры и сумматоры
Глава 11 Электромеханические компьютеры
Глава 12 Счетные устройства в Российской империи
Глава 1
Древнейшие методы счета
Сорок тысячелетий назад наши предки обрели разум в процессе эволюции, чем заслужили наименование homo sapiens, и направили его на решение насущных проблем. В том числе не в последнюю очередь – на учет доступных им весьма ограниченных ресурсов. Необходимость выживания в суровых условиях сначала научила их считать и много позже, только тогда, когда жизнь более или менее наладилась, возникла и потребность писать.
Лишь мифические поданные титана Кроноса, обитавшие в Золотой век, могли позволить себе пренебречь элементарной бухгалтерией и пребывать в нирване. Какие заботы, если под бдительным оком Отца они жили в условиях справедливости и изобилия? Как повествуют Вергилий, Гесиод и другие, в правление Кроноса люди не знали боли, смерти, болезней, голода. У них, живших в гармонии с природой, всего и всегда было в избытке, любые их потребности удовлетворены. Пребывая в постоянной праздности, они предавались невинным радостям жизни – возлежали на пирах, водили хороводы и воздавали хвалу небесам. Буколические сюжеты стали источником вдохновения многим художникам позднего средневековья, наиболее популярны картины Золотого века, написанные Лукасом Кранахом Старшим.
Впрочем, и сейчас есть немало тех, кто мечтает о таком Отце народов и ностальгируют по периоду безбедного существовании, якобы бывшего под его властью. Иногда, сталкиваясь с воспоминаниями тех, кто успел пожить в те советские годы и неустанно повторяет: «Как мы жили», складывается впечатление, что у них тоже отбили естественное желание считать, разве что деньги от получки до получки.
Живущие без счета
Сегодня без особых забот и тревог, хотя и не так роскошно, как при Кроносе, но совершенно свободно и в полном единении с природой на реке Маиси обитает племя индейцев пираха, скрытое от мира непроходимыми амазонскими джунглями. Их общая численность не превышает полутысячи, крошечное сообщество имеет горизонтальное устройство, в нем нет социальной иерархии, нет лидеров и вождей. Их пример подтверждает взгляды Маркса, разработавшего концепцию первобытного коммунизма, традиционной культуры, по его мнению, существовавшей до появления частной собственности и государства. Сохраняющийся на протяжении столетий, неизменный изо дня в день и лишенный разнообразия образ жизнь первобытных коммунаров больше всего напоминает «день сурка». У них атрофирована коллективная память, они не знают прошлого и не задумываются о будущем. При таком существовании достаточно совокупного информационного багажа, распределенного между индивидуумами – каждый индеец обладает достаточными практическими знаниями об окружающей среде – растениях и животных. Пираха считают себя частью природы, детьми леса, они воспринимают окружающие джунгли как сложный живой организм, по отношению к которому испытывают священный страх. В языке этих наивных детей природы отсутствуют прошедшее и будущее время, говорить они могут только о происходящем здесь и сейчас. Из миллиардов населения Земли только они вообще не умеют считать, для оценки количества им хватает трех слов – «один», «несколько» и «много».
Живя в условиях близких к мифическому Золотому веку, пираха свободны от мыслей о накоплении пищи, добытое на охоте или рыбалке немедленно в тот же день съедается, запасов на завтра они не держат, проголодавшись, отправляются за новой порцией. Учет и контроль им не нужны ни в чем, например, матери пираха не могут сказать, сколько у них детей, достаточно того, что они знают их по именам и в лицо.
Самобытность пираха привлекает к ним колоссальное внимание этнографов. Для нас же они точка отсчета.
Зарождение счета
В позднюю ледниковую эпоху Верхнего Палеолита условия существования были отнюдь не тепличными, поэтому 25—50 тысяч лет назад дабы сохраниться нашим прямым предкам кроманьонцам пришлось научиться напрягать мозги. По физической силе они уступали делившим с ними жизненное пространство неандертальцам, зато присущий им более высокий интеллект обеспечивал большую живучесть, он позволил адаптироваться к климатическим изменениям, создать совершенную систему общения с использованием разного рода символов и новую форму организации сообщества, удобные орудия труда. Не последнюю роль сыграла их способность разумнее распоряжаться доступными им ресурсами, для чего потребовался счет, пусть в самом простом, зародышевом виде.
Счет стал одной из составляющих дальнейшего эволюционного процесса. Первые следы доисторической «бухгалтерии» сохранились в виде разного рода зарубок и насечек, из которых возникла унарная система счисления (на латыни слово uno значит один). Мы можем назвать унарную систему непозиционной системой счисления с нумерацией одним единственным символом. Для него в текстах мы используем 1, в других обстоятельствах применим и любой иной символ – черточка, камешек, узелок, зарубка и т.д. Чаще всего на практике числа в унарной системе счисления записываются соответствующим количеством «палочек».
Унарная система счисления
Унарная система, несмотря на древность, поныне все еще в ходу. Ею в советские времена учитывали трудодни, так в колхозах называли выходы на подневольную работу, бригадир отмечал их палочками в тетрадке. Робинзон Крузо зарубками на дереве отмечал прожитые на острове дни, а в наше время, не ведая того, пользуются унарной системой лица, содержащиеся в местах лишения свободы или отбывающие воинскую повинность. Еще черточками на бумаге отмечают входные звонки в колл-центрах и голоса при выборах в небольших сообществах. В настоящие время палочки можно встретить в индикаторах уровня заряда в мобильных устройствах и уровня звука в аудиосистемах.
Есть один удивительный пример, дошедший из древности до нашего времен – чувашские цифры. Это ни что иное, как метод записи чисел в тюркской рунической письменности. Так нумеровали бревна в срубе, числа наносились на специальную бирку ножом или непосредственно на бревно топором. И еще чувашские цифры – важный элемент самобытной культуры, они похожи на римские, но только внешнее, еще у чувашей сохранился уникальный метод представления чисел при счете на пальцах.
Самым древним из найденных свидетельств использования унарной системы счисления считается кость павиана с нанесенными на нее отметками (Кость Ишанго), найденная в 1960 году бельгийским антропологом Жаном де Брокуром. Палеолитическая стоянка, где произошло это открытие, расположена в области Ишанго, недалеко от верховий реки Нила, на территории именовавшейся тогда Бельгийским Конго, теперь это граница между Угандой и Демократической Республикой Конго.
На кости Ишанго имеется несколько рядов отметок, первый начинается с серии, состоящей из трех бороздок, затем число бороздок удваивается до шести, следующая серия начинается четырьмя бороздками и в ней число бороздок удваивается до восьми, в третьей серии последовательность обратная, здесь за десятью бороздками следуют пять. Эту запись можно интерпретировать как свидетельство понимания древними операций удвоения и деления пополам. Интереснее другое – во втором ряду записаны все нечетные числа от 9 до 21, а в третьем ряду простые числа между 10 и 20!
Возраст находки по последним данным оценивается в 20 000 лет, но она не самая древняя, известны более ранние подобные, кость павиана из Лебомбо в Свазиленде (ей 37 000) и ее ровесница, кость волка, найденная в Чехословакии, однако записи на них проще, только насечки без какой-либо системы.
Системы нумерации и счисления
Для начала заметим, что есть пара близких, но не тождественных понятий – «система нумерации» и «система счисления». Чаще под нумерацией понимают присвоение номеров домам, книжным томам и т.д., но есть и другое значение этого слова, так еще называют приемы записи чисел посредством тех или иных символов (специальных или букв). Система же счисления – это собственно запись чисел с использованием той или иной системы нумерации. Между ними есть очевидное различие, на которое обычно не обращают внимание, используя эти понятия как синонимы.
Способы нумерации родились из неудобства оперировать большим количеством палочек в унарной системе. Показательный пример – при ручной обработке результатов голосования 4 точки и 6 палочек ставят определенным образом так, что они образуют перекрещенный квадрат, считать десятками удобнее. Со времен Вавилона и Египта придумывали разные специальные символы, но чаще использовали буквы различных алфавитов.
Что же до систем счисления, их всего два типа – непозиционные и позиционные, в том и другом случае могут использоваться разные системы нумерации. Исторически раньше появились непозиционные или, иначе, аддитивные системы счисления, где каждому символу соответствует определенное число, общее значение записи получается путем суммирования или вычитания значений символов, оно не зависит о позиции символа в записи. Существенно позже появились позиционные или мультипликативные системы, где есть деление на разряды и есть основание – максимальное значение в разряде (2, 3, 5, 8, 10 …). Числовое значение записи равно сумме поразрядного сложения произведений основания на значение в каждом разряде. Мы говорим двоичная или десятичная система счисления, понимая позиционную систему с тем или иным основанием.
Из непозиционных до наших дней сохранилась римская десятичная система. Первые упоминания о ней относятся к середине I тысячелетия до н.э., для нумерации в ней используются буквы – I – один, V – 5 и X –10 … Она заимствована у этрусков и поначалу нумерация, использованная в ней, отличались от современной, но принцип записи сохранился. Эта система аддитивна, число получается путем суммирования с поправкой на то, что младшая цифра, стоящая справа от старшей, суммируется с ней, а слева – вычитается, поэтому вместо VIIII писали IX и XC вместо LXXXX. В старой римской записи числа обозначались и известными символами I, V, X, а также буквами Q и F. В новой Q и F заменили C – 100 (центум) и M 1000 – (милле), кроме того, ввели букву D как символ числа 500 (куиндженти).
Древнеегипетская система счисления намного старше римской, она возникла во второй половине III тысячелетия до н.э. и тоже была десятичной и аддитивной, но в отличие от римской она допускала только сложение, вычитания в ней не было. Для нумерации здесь использовались специальные символы – один для единиц, другой десятков и далее для сотен, тысяч и далее вплоть до миллиона. Внутри каждого разряда система была унарной. За годы существования символы менялись неоднократно, обычно в сторону упрощения.
Вавилонская система на тысячу лет моложе египетской, нумерация здесь адаптирована к ограничениям клинописи, поэтому символов всего два – вертикальный и горизонтальный клинья, из-за такого ограниченного разнообразия в нумерации она достаточно сложна, но ее можно назвать условно шестидесятеричной и еще более частично позиционной. Вавилоняне в математике продвинулись дальше египтян, например, они умели решать квадратные уравнения чему способствовала более удобная квазипозиционная нотация в сочетании с двумя системами счисления– шестидесятеричной и десятичной. Они первыми заметили, что можно применять одни и те же символы, если они будут занимать в записи соответствующее положение. Еще они усовершенствовали свою позиционную систему введением нуля. Перед нами первый и единственный прецедент упрощенной позиционной системы счисления, существовавший до прихода нынешней индийской системы.
В Древней Греции сосуществовали две основные системы записи чисел – аттическая и ионическая, в первой использовалась близкая к десятичной система счисления, а во второй десятичная, но и та, и другая с современной точки зрения были чрезвычайно замысловатыми. В непозиционной аттической записи число 5 служило промежуточным подоснованием системы счисления. Черта, обозначала единицу, повторенная нужное число раз, означала числа до четырех, а пятью служил символ Г, для 10 – символ D, для 100 – символ H, для 1000 – X, для 10000 – символ. Ионическая запись – алфавитная с десятичным основанием и частично позиционная, в ней использовались буквы греческого алфавита и три вспомогательных знака. Греки заимствовали вавилонские принципы позиционности: первые девять букв соответствовали цифрам первого разряда, вторые девять букв – второго, третьи – первым девяти целым кратным числа десять.
Архимед развил ионическую запись, придумав схему октад (классов), схожую по использованию показателей степени числа 10 в современной системе записи чисел. В ней и в позже скопированной с нее славянской системе счисления для нумерации использовался практически весь алфавит, одни буквы служили для цифр в пределах десятка, другие для десятков в пределах сотни и т.д. Эта запись была чрезвычайно сложна и неудобна. Славянская Цифирь использовалась нашими предками в древней Руси с десятого века, букве «Азъ» соответствовала единица, «Буки» – двойка и так далее. Она вышла из употребления в 1725 году и была заменена на арабские цифры по указу Петра I.
Мультипликативная система счисления в зачаточном виде появилась в Древнем Вавилоне, но в современным преставлении этот подход к записи чисел был изобретен в Китае, а потом усовершенствован в Индии. В разных районах Индии существовали разнообразные системы нумерации, но в какой-то момент среди них выделилась одна, в ней в качестве цифр использовали начальные буквы соответствующих числительных на древнеиндийском языке – санскрите. Из Индии этот способ записи чисел перекочевал на Аравийский полуостров, а затем и в Европу. Здесь его назвали арабским, и под этим именем он разошелся по всему миру, хотя надо иметь в виду его индийские корни. Решающую роль в распространении индийской нумерации и десятичной системы счисления в арабских странах сыграла деятельность Мухаммада ибн Муса аль-Хорезми и руководство, составленное им в начале IX века. Оно было переведено в Западной Европе на латинский язык в XII веке. В XIII веке индийская нумерация получает распространение в Италии, и других странах она была принята к XVI веку.
Современная европейская система записи чисел
Создание используемой всем человечеством позиционной системы записи чисел, сочетающей индийскую десятичную систему счисления и нумерацию арабскими цифрами, стало одним из величайших фундаментальных достижений в истории человечества. Сначала использовали Восточные арабские цифры, в странах Ближнего Востока их можно встретить, например, на часах, как у нас римские цифры, они приобрели свой близкий к современному вид в IX веке. Наряду с ними существуют Западные арабские цифры и Современные арабские цифры. В период мавританского владычества на Пиренеях арабские цифры проникли в Европу. Более древняя история арабских цифр имеет многочисленные трактовки, сопровождается различными мифами, достоверно можно сказать только то, что своими корнями они уходят в Индию. В контексте истории компьютинга существенен европейский период, когда арабские цифры и десятичная система счисления заняли монопольное положение. Впервые они упоминаются в Вигиланском кодексе, иллюстрированном собрании документов вестготского периода в Испании. Главными действующими лицами, повлиявшими на принятие европейцами новой системы записи были Папа Сильвестр II и виднейший математик Средневековой Европы Леонардо Пизанский более известный как Леонардо Фибоначчи. Путешествуя по Средиземноморью, Фибоначчи изучал достижения античных, индийских и арабских математиков, что позволило ему написать несколько математических трудов, заложив основу западноевропейской науки. Его усилиями позиционная система укрепилась в Европе и обрела популярность в Эпоху Возрождения. Процесс перехода на новую нотацию был непростым, он встречал заметное сопротивление, решающее влияние на укрепление арабских цифр оказало книгопечатание с его требованиями к стандартизации символов.
Первые приемы работы с числами
Археологические исследования в Древнем Египте, Греции, Месопотамии свидетельствуют о том, что первые средства для упрощения расчетов были рукописными, такие методы, известны большинству из нас (сложение и умножение столбиком, деление уголком), они сохранялись до самого последнего времени, до появления электронных калькуляторов, ныне встроенных в любые мобильные устройства. В древности рукописные приемы совершенствовались, они принимали те или иные формы в зависимости от конкретной культуры и принятых в ней традиций.
Сохранились сведения о многочисленных способах умножения, среди них древнейший, он известен как Квадрат Пифагора, есть множество различных «национальных» способов умножения: Китайский, Итальянский, Индийский. Египетский и даже Русско-крестьянский. Особый интерес представляет метод умножения, который назывался gelosia, изобретенный в Индии и в XIV веке пришедший в Европу при посредничестве персов и арабов. Он описан в книге Summa de arithmetica францисканского монаха Лука Пачоли, одного из создателей современной бухгалтерии и близкого друга Леонардо да Винчи. Труд был опубликован в 1494 году, он содержит свод математических знаний эпохи Возрождения, содержащий главы, посвященные практической арифметике, основам алгебры и геометрии, а также бухгалтерского учета. Суть алгоритма гелосия в том, что сомножители записываются справа и сверху от специальной счетной матрицы, состоящей из полей-квадратов, каждый из которых разделен диагональю, а совместно расположенные по диагонали треугольники образуют «косые» строки-столбцы. При суммировании «по косой» получается результат, его нужно читать сверху вниз и слева направо. Этот алгоритм смог механизировать Джон Непер с помощью изобретенных им палочек.
С делением дело обстояло сложнее, специальный знак косая черта «/» впервые использовал в 1600 году английский математик Уильям Отред более всего известный изобретением логарифмической линейки. Альтернативный ему знак двоеточия «:» предложил немецкий математик Лейбниц почти на полвека позже. В Европе примерно до 1600-х годов был популярен метод деления галерой (метод зачеркивания, galley), возникший на основе китайского и индийского методов. Он упоминается у аль-Хорезми в работах 825 года, у Луки Пачоли. О том как он был сложен говорит итальянская поговорка «Трудное дело – деление» (Dura cosa e la partita). Используемый сегодня метод деления уголком имеет множество национальных вариантов, по-английски его называют long division в отличие от short division, который вопреки названию не короче и не проще. Метод известен с XII века, но в практику его ввел английский математик Генри Бриггс в начале XVII века.