Бизенц Торра - Том 15. От абака к цифровой революции. Алгоритмы и вычисления
Еще одно открытие — появление цифровой клавиатуры — предвосхитило основу интерфейса будущих компьютеров. До этого в калькуляторах использовались особые способы ввода множителей, что также требовало особой подготовки в области вычислений. Открытие клавиатуры сделало калькуляторы доступными для всех.
С массовым внедрением промышленных решений автоматические вычисления стали идти параллельным курсом с автоматизацией текстильной промышленности.
Француз Базиль Бушон уже в 1725 году создал перфорированную ленту для программирования ткацкого станка, на которой содержалась информация об узорах на ткани. Лента помещалась в станок, и постепенно получалась ткань с заданным узором. Несколько лет спустя, в 1728 году, помощник Бутона Жан-Батист Фалькон усовершенствовал его систему и заменил ленту перфорированными картами. В 1803 году Жозеф Мари Жаккар (1752–1834) создал знаменитый автоматический станок Жаккара на основе системы инженера Жака де Вокансона, в которой использовались карты и вращающийся барабан. Автоматический станок Вокансона, созданный в 1740 году, работал под управлением одного оператора. Система, в которой использовались перфокарты, наиболее эффективная на тот момент, непрерывно развивалась и позднее стала применяться в компьютерах XX века. Статистик Герман Холлерит (1860–1929) использовал перфокарты для кодирования результатов переписи населения США 1890 года. Холлерит был первым, кому удалось обработать информацию автоматически, поэтому он считается создателем информатики (это слово образовано слиянием слов «информация» и «автоматика»).
Перфокарты в станке Жаккара, представленном в Музее науки и промышленности в Манчестере.
Чарльз Бэббидж
Английский философ, математик, изобретатель и инженер Чарльз Бэббидж, считающийся изобретателем вычислительных машин, — один из самых выдающихся и противоречивых героев нашей истории. Он родился на окраине Лондона предположительно в 1791 году; достоверно известна лишь дата его крещения — 6 января 1792 года, в церкви Сент-Мэри в Ньюингтоне. Он изучал математику и химию — сначала в Кембриджском Тринити-колледже, куда поступил в 1810 году, затем в менее крупном и престижном колледже Петерхаус (1812). Считается, что Бэббидж сменил колледж потому, что двое его близких друзей по Тринити-колледжу Джон Гершель и Джордж Пикок превосходили его в учебе, а в Петерхаусе он стал первым учеником. В 1814 году он получил степень бакалавра, в 1817 — степень магистра математики.
Потрет Чарльза Бэббиджа кисти Сэмюэля Лоренса.
В 1812 году Бэббидж, Гершель и Пикок с коллегами под руководством профессора Роберта Вудхауза основали Аналитическое общество. Их целью было распространение аналитического исчисления Лейбница и противостояние анализу Ньютона.
Наиболее значимым достижением общества стал перевод с французского книги Сильвестра Франсуа Лакруа Traite de calcul differentiel et integral («Трактат о дифференциальном и интегральном исчислении», 1816), а также введение Пикоком нотации Лейбница на некоторых экзаменах (1817). Трехтомный труд Лакруа, переведенный Бэббиджем, Гершелем и Пикоком, получил широкое распространение в Англии. В 1819 году общество стало называться Кембриджским философским обществом.
В год окончания университета (1814) Бэббидж женился на Джорджиане Витмор. У них было восемь детей. Когда его отец, жена и ребенок умерли в 1827 году, Бэббидж получил в наследство недвижимость и солидную сумму, однако чувствовал себя совершенно разбитым и подавленным. По совету врача он на год отправился в путешествие по Европе. По возвращении он занял должность профессора Кембриджского университета, ранее принадлежавшую Ньютону. Однако он счел жалование невысоким и появлялся в университете, только когда требовалось оценить кандидатов на премию Смита, которая вручалась лучшему студенту Кембриджа.
Чарльз Бэббидж вошел в историю как создатель механических вычислительных машин. Первой из них была разностная машина (Difference Engine), которую он создал для вычисления значений многочленов. Принцип ее действия был основан на использовании конечных разностей, что позволило избежать умножения и деления. Изготовление машины было начато в 1822 году при поддержке британского правительства, однако этот проект так и не был завершен. Работы над машиной остановились в 1834 году, когда было прекращено финансирование проекта.
Изображение разностной машины Чарльза Бэббиджа, опубликованное в журнале Harper's Magazine в декабре 1864 года.
Некоторые исследователи считают, что машина Бэббиджа не могла быть закончена из-за существовавших на тот момент технических ограничений. Однако швед Георг Шутц (1785–1873) и его сын Эдвард, прочитав статью о разностной машине Бэббиджа, создали свой вариант этой машины и представили его в 1843 году.
Позднее, в 1851 году, при поддержке Шведской академии наук они построили машину большего размера, способную выполнять вычисления с точностью до 15 знаков после запятой и печатать результаты расчетов.
В отличие от Чарльза Бэббиджа, который не смог завершить работу над своей машиной, Шутц создал полностью рабочий экземпляр. В 1991 году в лондонском Музее науки был воссоздан первый прототип машины Бэббиджа с использованием технологий того времени. Также был воссоздан второй прототип, который в настоящее время хранится в Музее компьютерной истории в городе Маунтин-Вью (штат Калифорния, США). Машина Бэббиджа позволяла выполнять расчеты с точностью до 31 знака, вычислять значения многочленов седьмой степени и имела размеры 2,4 X 2,1 X 0,9 м. Размеры машины Шутца составляли 54 X 86 X 65 см, однако она была способна вычислять значения многочленов всего лишь третьей степени с точностью до 15 знаков. В 2000 году в лондонском Музее науки также была построена печатная машина, спроектированная Бэббиджем для своей вычислительной машины.
Оставив работу над разностной машиной в 1834 году, Бэббидж занялся новым устройством, которое он назвал аналитической машиной (Analytical Engine). Аналитическая машина стала ближайшим предком современных компьютеров. С помощью разностной машины можно было вычислять лишь значения многочленов, в то время как аналитическая задумывалась как устройство широкого применения, способное вычислять значения произвольных функций. Источником энергии для новой машины Бэббиджа служил паровой двигатель, ввод информации выполнялся с помощью перфокарт, вывод — с помощью печатной машины и устройства для нанесения перфорации на перфокарты. В памяти машины могло храниться до тысячи 50-значных чисел. Она также содержала арифметическое устройство для выполнения четырех основных действий, которое Бэббидж назвал мельницей (the mill).
Для программирования машины использовался особый язык, ставший прообразом современных языков программирования. Помимо базовых инструкций этот язык содержал операторы циклов, условные операторы и инструкции для хранения данных. С формальной математической точки зрения машина Бэббиджа была эквивалентна машине Тьюринга, появившейся век спустя.
Бэббидж работал над машиной совместно с Адой Лавлейс, дочерью лорда Байрона. Ее вклад был по достоинству оценен позднее, и теперь Ада Лавлейс считается первым программистом в истории. Она предвидела, что в будущем компьютеры будут использоваться не только для численных расчетов, в то время как Бэббидж уделял основное внимание именно им.
* * *
АДА БАЙРОН, ГРАФИНЯ ЛАВЛЕЙС (1815–1852)
Ада Августа Байрон была единственной дочерью лорда Байрона и Анабеллы Милбэнк. Девочка не знала отца, так как родители разошлись за месяц до ее рождения, и лорд Байрон навсегда покинул Англию. Она была болезненным ребенком (слабое здоровье она унаследовала от отца), поэтому обучалась на дому. Особое внимание при этом уделялось математике и другим наукам. Ее обучали известные преподаватели: Уильям Френд, Уильям Кинг, Мэри Сомервилл и Огастес де Морган. Учителя считали, что девочка сможет стать исследователем первой величины. Мэри Сомервилл представила ее Чарльзу Бэббиджу. В знак признания ее заслуг по созданию языков программирования Министерство обороны США назвало в ее честь язык программирования Ада.
* * *
Они начали сотрудничать, когда Бэббидж попросил Аду Байрон перевести с французского текст Луиджи Менабреа об аналитической машине, написанный вскоре после выступления Бэббиджа в Турине, куда его пригласил математик Джованни Плана. Ада дополнила статью Менабреа примечаниями, которые по объему превысили исходный текст. В знаменитом примечании G помимо других важнейших открытий описывается алгоритм вычисления чисел Бернулли на языке программирования машины Бэббиджа с помощью двух циклов. Так было доказано, что машина Бэббиджа может иметь самое широкое применение. Это была первая в мире компьютерная программа. Ада также описала алгоритмы вычисления тригонометрических функций, в которых использовались переменные.