Бред сивой кобылы. Разностная машина чарльза бэббиджа

В истории вычислительной техники самыми длительными были : домеханический и механический. Они продолжались вплоть до середины 20 века.

Каким же образом человечество совершило переход к электронно-вычислительному этапу, т.е. к электронно-вычислительным машинам или к компьютерам? Как обычно, все начинается с идеи, а точнее, с мечты, после которой уже приходят и идеи.

Мысль о создании такой машины, которая работала бы без участия человека, впервые была высказана английским математиком Чарльзом Бэббиджем (1791-1871).

Но сначала была работа над созданием разностной машины , в ходе которой Бэббиджу и пришла мысль о разработке полностью автоматической машины с программным управлением. Последнюю он назвал . Впрочем, обо всем по порядку.

Как решить проблему ошибок людей в вычислениях

В 18 веке возникла большая потребность в вычислениях для составления различных таблиц, которые широко использовались в астрономии, землемерном, страховом и банковском деле, мореплавании, кораблестроении, строительстве и т.д.

Люди, проводившие подобные вычисления, делали ошибки при составлении таблиц. Это приводило к еще более серьезным ошибкам при последующем использовании данных из таких таблиц, в том числе, в мореплавании, в строительстве и т.д.

В начале 19 века логарифмические и тригонометрические таблицы содержали множество ошибок. Решая проблему их исправления, Бэббидж пришел к выводу о необходимости создания машины для автоматических расчетов.

С 1812 г. профессор Кембриджского университета Чарльз Бэббидж приступил к работе над созданием разностной машины.

Почему машина называется разностной

Название «разностная машина» связано с тем, что в основу ее работы положен метод разностей, разработанный Исааком Ньютоном. Он основан на получении последовательности промежуточных величин.

По существу, метод разностей основывается на том, что уже вычислено значение произведения 5 на 5, и этот результат может быть использован для получения произведения 5 и следующих чисел (6, 7) путем прибавления 5 к известной сумме. Выглядит это следующим образом:

5 x 6 = 30
5 x 7 = 35 получается путем прибавления 5 к полученному произведению (30+5),
5 x 8 = 40 получается путем прибавления 5 к предыдущему произведению (35+5).

Таким образом, умножения заменяются на последовательные сложения.

В разностной машине Бэббиджа данный принцип применен для решения степенных уравнений. Они состоят из переменных и констант, в них используются только операции сложения, вычитания и умножения.

Трудности Беббиджа при создании машины

При создании разностной машины перед Ч.Бэббиджем встали технологические проблемы в большем количестве.

Приходилось не только изобретать узлы и механизмы, но также и способы их изготовления с достаточной точностью, что не позволяли технологии того времени.

Не было станков, соответствующих инструментов. Найти квалифицированных рабочих и инженеров было трудно и дорого. Проблемой было и соблюдение требуемой точности обработки металла.

Тем не менее, к 1822 г. Бэббидж сумел построить действующую модель разностной машины, состоящую из валиков и шестерней, вращаемых вручную при помощи рычага. На этой машине он рассчитал, в частности, таблицу квадратов.

Большая разностная машина

После чего он приступил к созданию большой машины, позволяющей с достаточной точностью вести расчет навигационных, астрономических и тригонометрических таблиц.

Эта машина по замыслу Бэббиджа должна была состоять из 25000 деталей, ее высота 2,4 метра, длина 2,1 метра, вес несколько тонн.

Все детали для машин должны были создаваться вручную и требовали очень большой точности, так как малейшие отклонения в каждой из деталей могли вызвать значительные ошибки и погрешности при вычислениях.

В 1832 году ученый посетил ряд промышленных центров в Англии и Шотландии. Постоянно изучая новое в промышленности, он посещал все, какие только мог, заводы и фабрики в Британии и на континенте.

В результате Бэббидж сам стал отличным механиком и провел ряд усовершенствований по инструментам, станкам и методам обработки.

Однако из-за разногласий с исполнителем, выпускающим детали для разностной машины, проект закрылся в 1833 г. с прекращением государственного финансирования.

Разностная машина Ч.Бэббиджа, 1991 г.

У Ч.Бэббиджа было много последователей из разных стран, создававших разностные вычислительные машины вплоть до середины XX века.

Заработала через 200 лет

Долгие годы шли споры по поводу того, реально ли было Бэббиджу построить работающую разностную машину. К 200-летию рождения Бэббиджа Лондонский музей науки в 1991 г. запустил разностную машину по чертежам Бэббиджа с небольшими простейшими изменениями.

Она состоит из 4000 деталей и весит около 3 тонн; выполнена из бронзы, стали и железа, может вычислять разности 7 порядка.

Машина работает при помощи поворота рукоятки, является действующим экспонатом Лондонского научного музея.

В 2000 году к экспозиции добавилось спроектированное Бэббиджем печатающее устройство – принтер весом 3,5 тонны. Оба устройства, изготовленные по технологиям середины XIX века, превосходно работают - в расчётах Бэббиджа было найдено всего две ошибки. Так что, если будете в Лондоне, можете зайти в музей полюбоваться на это чудо техники.

Разностная машина Бэббиджа, США

Если Вы думаете, что лондонская разностная машина является единственной во всем мире, то Вы ошибаетесь.

В 2005 г. мультимиллионер и бывший технический директор Натан Мирвольд заказал специалистам музея вторую копию знаменитого механического вычислителя. Она была доставлена в США.

В специальной экспозиции Музея компьютерной истории эта машина была ровно год. После этого Мирвольд установил ее у себя дома.

Чарльз Бэббидж (1791-1871) - пионер создания вычислительной техники, который разработал 2 класса вычислительных машин - разностные и аналитические. Первый из них свое название получил благодаря математическому принципу, на котором основан - методу конечных разностей. Его красота заключается в исключительном использовании арифметического сложения без необходимости прибегать к умножению и делению, которые сложно реализовать механически.

Больше чем калькулятор

Разностная машина Бэббиджа представляет собой счетное устройство. Она оперирует числами единственным способом, на который способна, постоянно складывая их в соответствии с методом конечных разностей. Ее нельзя использовать для общих арифметических расчетов. Аналитическая же машина Бэббиджа гораздо больше, чем просто калькулятор. Она знаменует переход от механизированной арифметики к полномасштабным вычислениям общего назначения. На разных этапах эволюции идей Бэббиджа насчитывалось по меньшей мере 3 проекта. Поэтому на его аналитические машины лучше ссылаться во множественном числе.

Удобство и инженерная эффективность

Бэббиджа являются десятеричными устройствами в том смысле, что они используют 10 цифр от 0 до 9, и цифровыми потому, что оперируют только с целыми числами. Значения представлены шестернями, а каждому разряду отведено свое колесо. Если оно останавливается в промежуточном положении между целыми значениями, то результат считается неопределенным, а работа машины блокируется, чтобы показать нарушение целостности расчетов. Это является своеобразной формой обнаружения ошибок.

Бэббидж также рассматривал использование систем счисления, отличных от десятеричной, в т. ч. двоичной и с основанием 3, 4, 5, 12, 16 и 100. Он остановился на десятеричной по причине ее привычности и инженерной эффективности, поскольку благодаря ей значительно уменьшается количество движущихся частей.

Разностная машина №1

В 1821 г. Бэббидж начал разработки с механизма, предназначенного для расчета и табуляции полиномиальных функций. Автор описывает его как устройство для автоматического вычисления последовательности значений с автоматической печатью результатов в виде таблицы. Интегральной частью конструкции является принтер, механически связанный с расчетной секцией. Разностная машина №1 представляет собой первую полноценную конструкцию для автоматического выполнения расчетов.

Время от времени Бэббидж менял функциональные возможности устройства. Дизайн 1830 г. изображает машину, рассчитанную на 16 цифр и 6 порядков разности. Модель состояла из 25 тыс. частей, разделенных поровну между вычислительной секцией и принтером. Если бы устройство было построено, то весило бы, по оценкам, 4 т и имело бы высоту 2,4 м. Работа по созданию разностной машины Бэббиджа была остановлена в 1832 г., после спора с инженером Джозефом Клементом. Государственное финансирование окончательно прекратилось в 1842 г.

Аналитическая машина

Когда работа над разностным аппаратом застопорилась, в 1834 году Бэббидж задумал более амбициозное устройство, которое позже получило название аналитического универсального программируемого вычислительного механизма. Структурные свойства машины Бэббиджа во многом соответствуют основным блокам современного цифрового компьютера. Программирование производится с помощью перфокарт. Эта идея была заимствована у жаккардового ткацкого станка, где они служат для создания сложных текстильных узоров.

Логическая структура аналитической машины Бэббиджа в основном соответствует доминирующему дизайну компьютеров электронной эры, который подразумевает наличие памяти («магазина»), отделенной от центрального процессора («мельницы»), последовательное выполнение операций и средства для ввода и вывода данных и инструкций. Поэтому звание пионера вычислительной техники автор разработки получил вполне заслуженно.

Память и центральный процессор

У машины Бэббиджа есть «магазин», где хранятся числа и а также отдельная «мельница», где выполнялась арифметическая обработка. Она имела набор из 4 арифметических функций и могла выполнять прямое умножение и деление. Кроме того, устройство было способно производить операции, которые теперь получили названия условного разветвления, цикла (итерации), микропрограммирования, параллельной обработки, фиксации, формирования импульсов и т. п. Сам автор такую терминологию не использовал.

ЦПУ аналитической машины которое он называл «мельницей», обеспечивает:

  • хранение чисел, операции над которыми производятся немедленно, в регистрах;
  • имеет аппаратные средства для произведения с ними основных арифметических операций;
  • передачу ориентированных на пользователя внешних инструкций в детальное внутреннее управление;
  • систему синхронизации (такт) для выполнения инструкций в тщательно подобранной последовательности.

Механизм управления аналитической машины выполняет операции автоматически и состоит из двух частей: нижнего уровня, контролируемого массивными барабанами, называемыми бочками, и высокого уровня, использующего перфокарты, разработанными Жаккардом для ткацких станков, широко применявшихся в начале 1800-х годов.

Устройства вывода

Результат вычислений выводится различными способами, включая печать, перфокарты, построение графиков и автоматическое производство стереотипов - лотков из мягкого материала, на которых производится оттиск результата, способных служить формой для отливки пластин для печати.

Новая конструкция

Новаторскую работу над аналитической машиной Бэббидж в основном завершил к 1840 г. и начал разрабатывать новое устройство. В период с 1847 по 1849 год он закончил разработку разностной машины №2, представлявшей собой улучшенную версию оригинала. Эта модификация была рассчитана на операции с 31-разрядными числами и могла привести в табличную форму любой полином 7-го порядка. Дизайн был изящно простым и требовал лишь третью часть от количества деталей первоначальной модели, обеспечивая равную с ней вычислительную мощность.

В разностной и аналитической машинах Чарльза Бэббиджа использовалась одна и та же конструкция устройства вывода, которое не только делало распечатку на бумаге, но и автоматически создавало стереотипы и самостоятельно производило форматирование согласно заданному оператором макету страницы. При этом предусматривалась возможность настройки высоты строки, числа столбцов, ширины полей, обеспечивались автоматическое сворачивание строк или столбцов и расстановка пустых строк для удобства чтения.

Наследие

Помимо нескольких частично созданных механических сборок и тестовых моделей небольших рабочих секций, ни одна из конструкций не была реализована полностью в течение жизни Бэббиджа. Основная собранная в 1832 г. модель была 1/7 частью разностной машины №1, которая состояла примерно из 2 тыс. деталей. Она безупречно работает по сей день и является первым успешным автоматическим вычислительным устройством, которое реализует математические расчеты в механизме. Бэббидж умер, когда собиралась небольшая экспериментальная часть аналитической машины. Многие детали конструкции сохранились, как и полный архив чертежей и записок.

Проекты огромных механических вычислительных машин Бэббиджа считаются одним из потрясающих интеллектуальных достижений XIX века. Только в последние десятилетия его работа была детально изучена, и степень важности того, что он совершил, становится все более очевидной.

Александр Костинский Мы живем в эпоху триумфа компьютерной техники. Но кто первым предложил архитектуру современного компьютера? Кто был первым программистом? Одни историки науки предлагают считать родоначальником вычислительной техники знаменитого физика, математика, философа Блеза Паскаля, который разработал проект "Паскалины" - первой механической вычислительной машины. Но большинство исследователей все-таки полагают создателем первой программируемой вычислительной машины Чарльза Бэббиджа (Charles Babbage), а первым программистом называют почитательницу и соратницу Бэббиджа леди Аду Августу Лавлейс - английскую графиню, единственную дочь великого английского поэта лорда Джорджа Байрона. Сегодня мы расскажем о первых шагах современной вычислительной математики, подробно остановившись на этих двух замечательных фигурах. Автор передачи - Михаил Кошкин при участии Владимира Губайловского, текст читают Александр Костинский и Владимир Губайловский.

Михаил Кошкин: Чарльз Бэббидж родился в 1791 году. Он проявил математические способности в период учебы в кембриджском колледже Святой Троицы, куда поступил в 1810 году. Продолжил своё образование он во Франции, где познакомился с великими математиками Пьером Лапласом и Жаном Батистом Фурье. Но чистая математика его не привлекла. Сильнейшее влияние на молодого математика оказал барон Гаспар де Прони, вычислитель при французском правительстве с 1790 по 1800 годы. Успехи де Прони натолкнули Бэббиджа на мысль о построении технологии автоматических вычислений.

Послереволюционное правительство Франции решило существенно улучшить логарифмические и тригонометрические таблицы. Эту работу и поручили барону де Прони, руководившему Бюро переписи.

Он удачно перенес идею разделения труда на вычислительный процесс. Де Прони распределил исполнителей по трем уровням: высшую ступень занимали выдающиеся математики, среди них были Адриен Лежандр и Лазар Карно. Они готовили математическое обеспечение. На втором уровне стояли образованные "технологи", которые организовывали рутинный процесс вычислительных работ. Последними в этой структуре были вычислители computers. От них требовалось только аккуратно складывать и вычитать. На первых порах компьютерами работали в прошлом девушки сомнительного поведения, которым французская революция помогла и настоятельно посоветовала сменить профессию. С этого момента начинается блестящая карьера слова "компьютер".

Выдающаяся заслуга Гаспара де Прони в том, что он свел сложные математические вычисления к рутинным операциям, не требующим от подавляющего большинства исполнителей творческого подхода. Дело в том, что подавляющее большинство практических физических и инженерных задач невозможно решить с необходимой точностью с помощью аналитических выражений. На их смену в начале ХIХ века приходят численные методы. Де Прони создал и заставил работать первую вычислительную машину, где в качестве "процессора" использовался человек-вычислитель. Более точно "машину" де Прони можно назвать "вычислительной мануфактурой". Этот замечательный подход применялся при проектировании очень сложных конструкций кораблей, мостов, самолетов, ракет, при вычислениях траекторий снарядов вплоть до расчетов первых атомных бомб.

Именно распределение вычислительного труда у де Прони наводит Бэббиджа на мысль заменить ошибающегося человека-вычислителя, как он надеялся, безошибочной "машиной".

Первая попытка Чарльза Бэббиджа создать вычислительную разностную машину Difference Engine - окончилась неудачей. Она строилась на принципе счёта "конечных разностей". С середины 30-х годов Бэббидж работает над проектом программируемой машины - Analytical Engine. Она становится делом всей его жизни. То была первая машина, управляемая внешней программой.

Новая машина отличалась от арифмометра наличием регистров. В них сохранялся промежуточный результат вычисления, и с помощью тех же регистров выполнялись действия, предписанные "программой". Возможности изобретенных регистров поразили самого автора: "Шесть месяцев я составлял проект машины, более совершенной, чем первая. Я сам поражен той вычислительной мощностью, которой она будет обладать, еще год назад я не смог бы в это поверить".

Архитектура Analytical Engine практически соответствует современным компьютерам. В ней есть все три классических составляющих: control barrel - управляющий барабан, сейчас говорят управляющее устройство, store - хранилище (теперь мы называем это памятью или запоминающим устройством) и mill - мельница (современный термин - арифметическое устройство). Регистровая память способна была хранить как минимум 100 десятичных чисел по 40 знаков, теоретически же могла быть расширена до тысячи 50-разрядных(!) чисел. Для сравнения укажем, что запоминающее устройство крупнейшей в 1945 году ЭВМ "Эниак" содержало всего 20 десятиразрядных чисел. Арифметическое устройство машины Бэббиджа аппаратно поддерживало все четыре арифметических действия. Машина складывала два числа за 3 секунды, а умножала или делила - за 2 минуты. Эта "мельница" состояла из трех основных регистров: два для операндов, то есть чисел, а третий для результатов действий, относящихся к умножению. Еще имелась таблица для хранения промежуточных результатов и счетчик числа итераций. Основная программа размещалась, можно сказать записывалась, на управляющем барабане. В дополнение к барабану использовались перфокарты, предложенные Жозефом Жаккаром в 1801 году для быстрого перехода с узора на узор в ткацких станках.

На вход машины должны были поступать два потока перфокарт, которые Бэббидж назвал operation card (управляющими картами) и variable card (картами переменных). Управляющие перфокарты руководили процессом обработки данных, записанных на перфокартах переменных. Информация записывалась на перфокартах путем пробивки отверстий. Из операционных перфокарт можно было составить библиотеку функций. Помимо этого, Analytical Engine, по замыслу Бэббиджа, должна была содержать устройство печати и устройство вывода результатов на перфокарты для последующего использования. Так что Бэббидж стал пионером идеи ввода-вывода.

Analytical Engine так реализована и не была. Бэббидж писал в 1851 году: "Все разработки, связанные с Analytical Engine, выполнены за мой счет. Я провел целый ряд экспериментов и дошел до черты, за которой моих возможностей не хватает. В связи с этим я вынужден отказаться от дальнейшей работы".

Почему хотя бы одна аналитическая машина так и не была изготовлена Бэббиджем, хотя еще при его жизни было построено несколько действующих гораздо более простых экземпляров других конструкторов? Кроме хронической нехватки финансирования, важнейшая причина - технологическая. Тогда не умели быстро обрабатывать металл с необходимой степенью точности - а проекту требовались тысячи одних только зубчатых колес. Нередко самому Бэббиджу приходилось изобретать технологии производства отдельных деталей. Он сделал около 30 вариантов общей компоновки машины и более 200 чертежей ее узлов. Может быть, неудача постигла ученого еще и потому, что Бэббидж был слишком увлечен самой проблемой и не смог вовремя поставить себе разумные границы.

В 1864 году Бэббидж написал: "Пройдет, вероятно, полстолетия, прежде чем люди убедятся, что без тех средств, которые я оставляю после себя, нельзя будет обойтись". Он ошибся на 30 лет: в начале сороковых годов XX века Говард Айкен построил машину Mark I, о которой он говорил, как об "осуществленной мечте Бэббиджа".

Большое влияние на посмертную судьбу машин оказал генерал Бэббидж, сын изобретателя. Выйдя в отставку в 1874 году, он изучал труды отца, а с 1880 года 16 лет восстанавливал в "железе" первую дифференциальную машину. Им был создан небольшой её фрагмент, который печатал результаты вычислений. Кроме того, сын Бэббиджа сделал несколько миникопий Difference Engine и разослал их по всему миру.

В 1991 году, к двухсотлетию со дня рождения ученого сотрудники лондонского Музея науки воссоздали по его чертежам "разностную машину № 2" весом более двух с половиной тонн, а в 2000 году - еще и принтер Бэббиджа. Он весил три с половиной тонны. Оба устройства, превосходно работают - в расчётах Бэббиджа было найдено всего две ошибки.

Августа Ада Байрон Кинг родилась 10 декабря 1815 года и умерла в возрасте 37 лет. Она не помнила отца, а имя его в доме матери было под запретом.

Мать Ады, Анна Изабелла, занималась математикой. Миссис Байрон пригласила для дочери своего бывшего учителя - шотландского математика Огастеса де Моргана. Среди друзей миссис Байрон был и Чарльз Бэббидж.

Девочка не обманула ожиданий матери. Тринадцати лет от роду она чертила летательные аппараты. Впрочем, есть свидетельства, что Ада тайком сочиняла стихи. В тринадцать лет Ада написала матери: "Если ты не можешь дать мне поэзию, не дашь ли ты мне тогда поэтичную науку?"

Когда Аде исполнилось семнадцать, девушку представили королю и королеве. В июле 1835 года она вышла замуж за Уильяма, 8-го лорда Кинга 29 лет, ставшего первым графом Лавлейсом. Сэр Уильям был спокойным, уравновешенным и приветливым человеком. Он с одобрением относился к научным занятиям жены и помогал ей как мог.

В 1840 году Бэббидж посетил Турин, его пригласили прочесть лекции о своей машине. В отличие от Англии, лекции имели шумный успех. По-видимому, они читались по-французски, поскольку один из слушателей, Луиджи Менабреа, преподававший в Туринской артиллерийской академии, составил и издал конспект на французском языке "Элементы аналитической машины Чарльза Бэббиджа".

Ада Лавлейс перевела очерк Менабреа на английский язык и добавила "Примечания переводчика". "Примечания" вызвали настоящий восторг Бэббиджа.

В очерке Менабреа пишет: "Сам процесс вычисления осуществляется с помощью алгебраических формул, записанных на перфорированных картах, аналогичных тем, что используются в ткацких станках Жаккара. Вся умственная работа сводится к написанию формул, пригодных для вычислений, производимых машиной, и неких простых указаний, в какой последовательности эти вычисления должны производиться".

Хотя Бэббидж написал свыше 70 книг и статей, а также составил большое число неопубликованных описаний вычислительной машины, полного и доступного описания и, главное, анализа возможностей машины для решения различных задач он так и не сделал. Бэббидж говорил, что слишком занят разработкой машины, чтобы уделять время её описанию. Работа Лавлейс не только восполняла этот пробел, но и содержала глубокий анализ особенностей аналитической машины.

Восемь примечаний Ады Лавлейс, посвящены, в основном, трём взаимосвязанным вопросам: особенностям работы устройства; его теоретическим возможностям и программированию решения конкретных задач на аналитической машине.

В Примечании А сравнивая две машины - разностную (то есть калькулятор) и аналитическую программируемую вычислительную машину, леди Лавлейс пишет, что вычислительная машина - совершенно иная область науки и техники и старается выработать терминологию. По ее определению аналитическая машина - воплощение науки об операциях, и она сконструирована специально для действий над абстрактными числами как объектами этих операций. Леди Лавлейс пишет: "Под словом операция, мы понимаем любой процесс, который изменяет взаимное отношение двух или более вещей, какого рода эти отношения ни были бы. Это наиболее общее определение (охватывающее все предметы во Вселенной). Операционный механизм может быть приведён в действие независимо от объекта, над которым производится операция. Этот механизм может действовать не только над числами, но и над другими объектами, основные соотношения между которыми могут быть выражены с помощью абстрактной науки об операциях и которые могут быть приспособлены к действию операционных обозначений и механизма машины. Предположим, например, что соотношения между высотами звуков в гармонии и музыкальной композиции поддаются такой обработке; тогда машина сможет сочинять искусно составленные музыкальные произведения любой сложности или длительности".

Примечание D интересно для истории программирования. Здесь приведена программа решения на машине системы двух линейных уравнений с двумя неизвестными. Лавлейс впервые применяет термин "рабочая переменная".

В примечании Е Ада уточняет и развивает соображения Менабреа о возможности расчёта на аналитической машине функций вида: Y= a + bx , Y = A + BcosX. Здесь Лавлейс формулирует: "Многие лица, недостаточно знакомые с математикой, считают, что роль машины сводится к получению результатов в цифровой форме, а природа самой обработки данных должна быть арифметической и аналитической. Это заблуждение. Машина может обрабатывать и объединять цифровые величины точно так, как если бы они были буквами или любыми другими символами общего характера, и фактически она может выдать результаты в алгебраической форме". В этом же примечании Лавлейс впервые вводит понятие цикла операций, а также понятие цикла циклов.

В примечании F содержится интересное замечание о возможностях аналитической машины получать решение такой задачи, которую из-за объема невозможно решить вручную.

В заключительном примечании G дана программа вычисления чисел Бернулли, в которой Лавлейс демонстрирует возможности программирования на аналитической машине.

Итак, Ада Лавлейс опубликовала три первые в мире вычислительные программы. Наиболее подробно она описала программу решения системы двух линейных алгебраических уравнений с двумя неизвестными. От ее идеи "рабочей переменной" остаётся лишь шаг до общего оператора присваивания - одной из основополагающих операций всех языков программирования. Вторую программу она составила для вычисления тригонометрической функции; для этой процедуры Лавлейс ввела понятие цикла - одной из фундаментальных конструкций структурного программирования. В третьей программе, составленной для вычислений чисел Бернулли, были придуманы рекурсивные вложенные циклы.

Дочь Байрона так увлеклась проблемой, что предложила Бэббиджу, давать консультации всем людям, заинтересованным в использовании вычислительных машин, чтобы Бэббидж не отвлекался от построения аналитической машины. Но в 1842 году правительство Великобритании отказало Бэббиджу в финансовой поддержке.

Леди Лавлейс была страстным игроком, азартным и увлекающимся. Она играла вместе со своим мужем графом Лавлейсом, верным спутником ее жизни, и своим другом и учителем Чарльзом Бэббиджем.

Игрой она увлеклась не случайно. Бэббиджу так и не удалось добиться от правительства финансовой поддержки для постройки вычислительной машины. Изобретатель перепробовал все способы добывания денег - от написания романа до конструирования автомата для игры в "крестики-нолики", чтобы потом демонстрировать его за деньги, но тщетно. И тогда супруги Лавлейс принялись за разработку системы беспроигрышных ставок на бегах, рассчитывая таким путем добыть средства для продолжения работы над вычислительными машинами. Тактическую проверку системы осуществляли сообща, активно играя на английских ипподромах.

Беспроигрышная система ставок себя не оправдала. И Бэббидж, и муж Уильям Лавлейс, проиграв внушительную сумму, сравнительно скоро отказались от участия в игре и от усовершенствования системы. Но Ада, при помощи некоего Джона Кросса, упорно продолжала играть. Она израсходовала почти все принадлежащие ей средства и к 1848 году изрядно задолжала. Её матери пришлось погасить эти долги, а заодно и выкупить компрометирующие письма у Джона Кросса.

В начале пятидесятых годов появлялись первые признаки болезни, унесшей жизнь Ады Лавлейс. В ноябре 1850 года она пишет Бэббиджу: "Здоровье моё настолько плохо, что я хочу принять Ваше предложение и показаться по приезде в Лондон Вашим медицинским друзьям". Несмотря на принимаемые меры, болезнь прогрессировала и сопровождалась тяжёлыми мучениями. 27 ноября 1852 года Ада Лавлейс скончалась в возрасте 37 лет, как и ее отец Джордж Гордон Байрон.

В своих "Примечаниях" леди Лавлейс написала и о проблеме искусственного интеллекта. Написала тогда, когда вообще не с кем было эту проблему обсуждать. Она размышляла над вопросами, которые возникнут лишь через столетие.

В своей знаменитой статье "Может ли машина мыслить?" английский математик и логик Алан Тьюринг цитирует леди Лавлейс: "Аналитическая машина не претендует на то, чтобы создавать что-то действительно новое. Машина может выполнить только то, что мы умеем ей предписать". Тьюринг не соглашается. Он пишет: "Мнение о том, что машины не могут чем-либо удивить человека, основывается, как я полагаю, на одном заблуждении, которому в особенности подвержены математики и философы. Я имею в виду предположение о том, что коль скоро какой-то факт стал достоянием разума, тотчас же достоянием разума становятся все следствия из этого факта. Во многих случаях это предположение может быть весьма полезно, но слишком часто забывают, что оно ложно. Естественным следствием из него является взгляд, что якобы нет ничего особенного в умении выводить следствия из имеющихся данных, руководствуясь общими принципами". Далее Тьюринг пробует логически построить модель самообучающейся машины: "Важная особенность обучающейся машины состоит в том, что ее учитель в значительной мере не осведомлен о многом из того, что происходит внутри нее, хотя он все же в состоянии в известных пределах предсказывать поведение своей ученицы. Сказанное особенно применимо к дальнейшему воспитанию машины, прошедшей уже хорошую подготовку и вышедшей из начальной стадии "машины-ребенка"".

Но аргумент леди Лавлейс тем не менее не был окончательно поколеблен ни Тьюрингом, ни другими современными исследователями. Та острота и жесткость, с которой она поставила проблему нового знания, оказалась очень полезной не столько для программирования, сколько для методологии науки двадцатого века.

В мае 1979 года министерство обороны Соединенных Штатов объявило победителя в конкурсе на разработку универсального языка программирования. Им был признан язык Ада, названный в честь Ады Августы Лавлейс. Его создали ученые и программисты под руководством Жана Ишбиа. Прототипом языка стал другой язык программирования - "Паскаль". Он был назван в честь физика, математика, философа Блеза Паскаля, который в возрасте девятнадцати лет в 1624 году, разработал проект "Паскалины" - первой механической вычислительной машины.

(Для начала советую прочесть первую и вторую части статьи.)
Разностная машина Чарльза Бэббиджа впервые позволила автоматизировать процесс вычислений и производить его в некоторой степени без вмешательства человека. Как было сказано в предыдущей части, для вычисления функций типа логарифма, тригонометрических функций и прочих, их необходимо было разбить на участки, каждый из которых представлялся своим многочленом, и только потом можно было произвести расчёт значений функции для данного участка. Переходя от одного многочлена к другому, оператор машины должен был вручную ввести все исходные значения регистров. К тому же машина позволяла производить только операцию сложения, что было не много даже по меркам 19го века.

Раздумывая над этой проблемой, Бэббидж пришёл к выводу, что можно построить такую машину, которая бы сама меняла значения исходных регистров в зависимости от значения результата. То есть сама бы могла управлять процессом вычислений. В дальнейшем, развивая эту идею, Бэббидж пришёл к мысли не просто сделать машину, которая бы табулировала функцию полностью автоматически, а создать машину которая бы позволяла решать весь класс вычислительных задач. Для этого алгоритм такой машины должен быть не жёстко зашит в её конструкцию, а задаваться извне, а сама машины должна уметь выполнять все арифметические операции, а также управлять ходом выполнения вычислений. Новую вычислительную машину Бэббидж назвал Аналитической.

Основными частями Аналитической машины являлись:
1.«склад» - устройство для хранения чисел, то есть память в современной терминологии;
2.«мельница» - устройства для выполнения арифметических действий (Арифметическое устройство);
3.устройство, управляющее операциями машины;
4.устройства ввода и вывода;

(Элемент «мельницы». Рисунок Генри Бэббиджа. )

В такой архитектуре не сложно узреть прообраз современного компьютера с его памятью, процессором (мельница + устройство управления) и устройствами ввода вывода.

«Шину обмена» данными между АЛУ и памятью представлял собой набор зубчатых реек. Объём памяти должен был составлять тысячу чисел по 50 десятичных знаков. Для числа из 50-ти десятичных разрядов со знаком необходимо 168 бит, то есть объём ОЗУ был чуть больше двадцати килобайт. Для сравнения советую посмотреть объём ОЗУ первых компьютеров.

Как было сказано в предыдущей части, работая над аналитической машиной, Бэббидж придумал оригинальную схему предварительного переноса. Стоит сказать, что перед этим он продумал более двадцати вариантов исполнения схемы последовательного переноса, прежде чем понял, что для кардинального ускорения процесса необходим совершенной иной принцип.

Как и в разностной машине, регистры, хранящие числа, представляли собой зубчатые колёса. Знак числа задавался отдельным зубчатым колесом. Если данное колесо отображало чётное число, то это интерпретировалось как положительный знак, иначе как отрицательный.

Операции умножения и деления предполагалось реализовать как последовательные сложения или вычитания.

Расчётное время выполнения операций должно было составлять одну секунду для сложения и вычитания и одну минуту для умножения и деления, что не так уж и плохо для 19го века.

Для ввода данных в память и управлением работой машины, Бэббидж задумал использовать перфокарты. На тот момент они уже существовали не один десяток лет, и были изобретены Жаккаром Жозефом-Мари для управления узором автоматизированного ткацкого станка.
Аналитическая машина использовала два механизма с перфокартами - один механизм задавал операции, которые должна была выполнять мельница, второй же управлял переносом данных между «мельницей» и «складом».

(Ткацкий станок с картами Жаккара. )

Во время прибывания Бэббиджа в Италии к нему обратился метематик, профессор Мосотти. «Он заметил, что теперь вполне готов поверить в способность механизма овладеть арифметическими и даже алгебраическими соотношениями в любой нужной степени. Но он добавил что не может понять, как машина может сделать выбор, который часто необходим при аналитическом исследовании (то есть в процессе вычислений), когда представляются два или более путей, особенно в том случае, когда правильный путь, как это часто бывает, неизвестен до тех пор, пока не проделаны предшествующие вычисления». На этот случай в Аналитической машине была предусмотрена возможность организации условного выполнения и циклов. Для этого механизм переноса последнего разряда управлял движением перфокарт и мог заставить этот механизм повторить действие либо пропустить его.

Устройства вывода позволяли выводить на печать в результат вычислений машины в одной или двух копиях, воспроизводить в виде стереотипного отпечатка или пробивать результат на перфокартах.

Работая над аналитической машиной, Бэббидж сделал более 200 чертежей её различных узлов и около 30 вариантов компоновки машины. Однако размер замысла, и сложный характер изобретателя отсрочили рождение его изобретений на добрую сотню лет. Если взглянуть на разностную машину, которая по замыслу Бэббиджа должна был табулировать до 20-го знака функции с постоянными седьмыми разностями, то близкая по возможностям машина появилась в 1934-м году - она табулировала функции с постоянными разностями седьмого порядка и с точностью до 13 знаков. Что же говорить об исполинских возможностях задуманной аналитической машины…

(Часть печатающего механизма машины. )

После смерти Чарльза Бэббиджа, его сын, Генри, занялся аналитической машиной, решив сосредоточиться на двух узлах - «мельнице» и печатающем устройстве. В 1888-м году были готовы данные узла машины, которые смогли вычислить и напечатать произведение на числа натурального ряда с 29 знаками. При вычислении 32-го члена машина выдала неверный результат из-за сбоя в механизме переноса. Всю оставшуюся жизнь Генри продолжал работу над аналитической машиной отца, а также занимался популяризацией идей вычислительных машин.

Не смотря на то, что Бэббидж за свою жизнь написал немало книг и статей, он так и не создал подробного изложения принципов работы разностной и аналитической машины, так как считал создание машин более важным занятием, нежели их описание. Подробное описание разностной машины было дано Дионисием Ларднером, а аналитическая машина была описана в статье Луиджи Фредериго Менабреа. Именно эта статья и привела к тому, что на свет появилась первая в мире программа и первый программист. Честь носить такое звание имеет Ада Августа Лавлейс, дочь поэта Байрона. Чарльз Бэббидж был знаком с семьёй юной талантливой девушки и всячески поощрял её тягу к науке. Однажды Ада заинтересовалась вычислительными машинами Бэббиджа и взялась за перевод статьи Менабреа. Работая над переводом, Ада, дополнила её своими комментариями, примерами практического использования машин, а также составила «программу» вычисления чисел Бернулли. Имя Ады было увековечено в названии одного из языков программирования - Ада (Ada). Подробнее углубляться в биографию Ады я не буду, т.к. данная тема уже была раскрыта на хабре.

Судьба Чарльза Бэббиджа была не менее сложная, чем судьба его вычислительных машин. Отношение современников к этому учёному со временем менялось от гения до чудака и даже до изобретателя, повредившегося рассудком на почве вычислительных машин. За свою жизнь он создал большое количество разнообразных изобретений, таких как спидометр, динамометр, придумал единый почтовый тариф и прочее. Президент Королевского общества лорд Росс писал что «Бэббидж только своими изобретениями в области машиностроения вполне возместил те средства, которые правительство вложило в строительство его разностной машины».

Идея, родившаяся в девятнадцатом веке и ставшая реальностью в веке двадцатом, сделала переворот не только в науке, но и в нашей повседневной жизни. Жизнь Бэббиджа, история создания его вычислительных машин является ярчайшим примером того на сколько дальновидным и упорным может быть гений, и на сколько тернистым и долгим бывает путь созидания.

PS: Всем кому интересны механические вычислительные машины, их история создания, описание конструкции и принципов работы и зарождение их электронных собратьев рекомендую найти и прочитать книгу «От абака до компьютера» за авторством Р. С. Гутера и Ю. Л. Полунова 1981 года издания.

На момент прекращения работ над созданием разностной машины деятельный мозг Бэббиджа был занят решением уже другой, более тяжелой задачи. Бэббидж пожелал создать новый прибор - Аналитическую машину (Analytical Engine). Ее главным отличием от разностной машины должно было стать то обстоятельство, что она была программируемой и могла выполнять любые заданные ей вычисления.

От арифмометра новая машина отличалась наличием регистров. В них сохранялся промежуточный результат вычисления, и с их же помощью выполнялись действия, предписанные программой. Вычислительные возможности, открывшиеся после изобретения регистров, поразили самого Бэббиджа. На этот счет сохранилась следующая реплика изобретателя: «Шесть месяцев я составлял проект машины, более совершенной, чем первая. Я сам совершенно поражен той вычислительной мощностью, которой она будет обладать. Еще год назад я не смог бы в такое поверить!»

Архитектура Аналитической машины Чарльза Бэббиджа уже практически соответствует современным ЭВМ. В ней присутствуют все три классических составляющих компьютера:

Control barrel - управляющий барабан (управляющее устройство - УУ), -store - хранилище (теперь мы называем это памятью - ЗУ) -mill - мельница (арифметическое устройство - АУ).

Регистровая память машины Бэббиджа была способна хранить как минимум сто десятичных чисел по 40 знаков, теоретически же могла быть расширена до тысячи 50-разрядных (для сравнения укажем, что запоминающее устройство одной из первых ЭВМ «Эниак» в 1945 г. сохраняло всего 20 десятиразрядных чисел). Арифметическое устройство имело, как мы бы сейчас сказали, аппаратную поддержку всех четырех действий арифметики. Машина производила сложение за 3 секунды, умножение и деление - за 2 минуты. Эта «мельница» состояла из трех основных регистров: два для операндов, а третий для результатов действий, относящихся к умножению. Имелись также таблица для хранения промежуточных результатов и счетчик числа итераций. Основная программа заносилась на барабан (Управляющее устройство), в дополнение к ней могли использоваться перфокарты, предложенные Жозефом Мари Жаккаром еще в 1801 г. для быстрого перехода с узора на узор в ткацких станках.

Большую помощь в разработке машины Бэббиджу оказала Ада Лавлейс (урожденная Байрон). Лавлейс была дочкой знаменитого английского поэта лорда Байрона, но так его никогда и не увидела, так как незадолго до ее рождения он уехал в Грецию, где и погиб в составе отряда повстанцев. Лавлейс бывала в гостях у Бэббиджа со своей подругой Мэри Соммервилл. Бэббидж всегда относился к ним приветливо и подолгу объяснял назначение всех устройств машины. А вскоре он обнаружил незаурядные математические способности Ады Лавлейс. Именно она впоследствии создаст первые в мире теоретические основы программирования, напишет первый учебник по программированию, и войдет в историю как «первая программистка».

Именно Лавлейс принадлежит идея использования для подачи на вход машины двух потоков перфокарт, которые были названы операционными картами и картами переменных: первые управляли процессом обработки данных, которые были записаны на вторых.

Информация заносилась на перфокарты путем пробивки отверстий. Из операционных карт можно было составить библиотеку функций. Помимо этого, Analytical Engine, по замыслу автора, должна была содержать устройство печати и устройство вывода результатов на перфокарты для последующего использования. Так что Бэббидж стал пионером идеи ввода-вывода.

Бэббидж предлагал также создать механизм для перфорирования цифровых результатов на бланке или металлических пластинках. Для хранения информации в памяти ученый собирался использовать не только перфокарты, но и металлические диски, которые будут поворачиваться на оси. Металлические пластинки и металлические диски могут теперь рассматриваться нами как далекие прототипы магнитных карт и магнитных дисков.

Только в одном отношении аналитическая машина не была автоматической. Функции, записанные таблично, должны были быть заранее отперфорированы. Предвосхищая будущее вычислительных машин, Бэббидж писал: «Кажется наиболее вероятным, что она рассчитывает гораздо быстрее по соответствующим формулам, чем пользуясь своими же собственными таблицами». И действительно, в современных вычислительных машинах существует обширная библиотека стандартных подпрограмм, с помощью которой рассчитываются функции различной степени сложности. Интересно, что термин «библиотека» для данного применения также был впервые употреблен Чарльзом Бэббиджем!



Поделиться