Значение логической алгебры долгое время игнорировалось, поскольку ее приемы и методы не содержали практической пользы для науки и техники того времени. Однако, когда появилась принципиальная возможность создания средств вычислительной техники на электронной базе, операции, введенные Булем, оказались весьма полезны. Они изначально ориентированы на работу только с двумя сущностями: истина и ложь. Нетрудно понять, как они пригодились для работы с двоичным кодом, который в современных компьютерах тоже представляется всего двумя сигналами: ноль и единица.
Не вся система Джорджа Буля (как и не все предложенные им логические операции) были использованы при создании электронных вычислительных машин, но четыре основные операции: И (пересечение), ИЛИ (объединение), НЕ (обращение) и ИСКЛЮЧАЮЩЕЕ ИЛИ - лежат в основе работы всех видов процессоров современных компьютеров. [4]
На протяжении XVIII века, известного как эпоха Просвещения, появились новые, более совершенные модели, но принцип механического управления вычислительными операциями оставался тем же. Идея программирования вычислительных операций пришла из той же часовой промышленности. Старинные монастырские башенные часы были настроены так, чтобы в заданное время включать механизм, связанный с системой колоколов. Такое программирование было жестким одна и та же операция выполнялась в одно и то же время. [4]
Идея гибкого программирования механических устройств с помощью перфорированной бумажной ленты впервые была реализована в 1804 году в ткацком станке французского изобретателя Жозефа Мари Жаккарда (1752-1834). Машина Жаккарда представляет собой зевообразовательный механизм ткацкого станка для выработки крупноузорчатых тканей. Дает возможность раздельно управлять каждой нитью основы или небольшой их группы. [3]
Гаспар де Прони предложил технологию вычислений, при ручном счете, разделившего численные вычисления на три этапа: разработка численного метода, составление программы последовательности арифметических действий, проведение собственно вычислений путем арифметических операций над числами в соответствии с составленной программой. [6]
выдающимся английским математиком и изобретателем Чарльзом Бэббиджем (1792-1871), осуществившим, качественно новый шаг в развитии средств цифровой вычислительной техники - переход от ручного к автоматическому выполнению вычислений по составленной программе. [3] Перечисление всех новаций, предложенных ученым, получится довольно длинным, однако в качестве примера можно упомянуть, что именно Бэббиджу принадлежат такие идеи, как установка в поездах «черных ящиков» для регистрации обстоятельств аварии, переход к использованию энергии морских приливов после исчерпания угольных ресурсов страны, а также изучение погодных условий прошлых лет по виду годичных колец на срезе дерева. Помимо серьезных занятий математикой, сопровождавшихся рядом заметных теоретических работ и руководством кафедрой в Кембридже, ученый всю жизнь страстно увлекался разного рода ключами-замками, шифрами и механическими куклами. [6]
Во многом благодаря именно этой страсти, можно сказать, Бэббидж и вошел в историю как конструктор первого полноценного компьютера. Разного рода механические счетные машины были созданы еще в XVII-XVIII веках, но эти устройства были весьма примитивны и ненадежны. А Бэббидж, как один из основателей Королевского астрономического общества, ощущал острую потребность в создании мощного механического вычислителя, способного автоматически выполнять длинные, крайне утомительные, но очень важные астрономические калькуляции. Математические таблицы использовались в самых разнообразных областях, но при навигации в открытом море многочисленные ошибки в таблицах, рассчитанных вручную, бывало, стоили людям жизни. Основных источников ошибок было три: человеческие ошибки в вычислениях; ошибки переписчиков при подготовке таблиц к печати; ошибки наборщиков.
Будучи еще весьма молодым человеком, в начале 1820-х годов Чарльз Бэббидж написал специальную работу, в которой показал, что полная автоматизация процесса создания математических таблиц гарантированно обеспечит точность данных, поскольку исключит все три этапа порождения ошибок. Фактически вся остальная жизнь ученого была связана с воплощением этой заманчивой идеи в жизнь. Первое вычислительное устройство, разработанное Бэббиджем, получило название «разностная машина», поскольку в вычислениях опиралось на хорошо разработанный метод конечных разностей. Благодаря этому методу все сложно реализуемые в механике операции умножения и деления сводились к цепочкам простых сложений известных разностей чисел.
Хотя работоспособный прототип, подтверждающий концепцию, был построен благодаря правительственному финансированию весьма быстро, сооружение полноценной машины оказалось делом весьма непростым, поскольку требовалось огромное количество идентичных деталей, а индустрия в те времена только-только начинала переходить от ремесленного производства к массовому. Так что попутно Бэббиджу пришлось самому изобретать и машины для штамповки деталей. К 1834 году, когда «разностная машина № 1» еще не была достроена, ученый уже задумал принципиально новое устройство - «аналитическую машину», явившуюся, по сути дела, прообразом современных компьютеров. К 1840 году Бэббидж практически полностью завершил разработку «аналитической машины», которая, к сожалению, так и не была до конца построена изобретателем при жизни. Особенностью Аналитической машины стало то, что здесь впервые был реализован принцип разделения информации на команды и данные. Аналитическая машина содержала два крупных узла - "склад!" и "мельницу!". Данные вводились в механическую память "склада!" путем установки блоков шестерен, а потом обрабатывались в "мельнице!" С использованием команд, которые вводились с перфорированных карт (Как в ткацком станке Жаккарда). А потому он начал проектировать «разностную машину № 2» - как бы промежуточную ступень между первым вычислителем, ориентированным на выполнение строго определенной задачи, и второй машиной, способной автоматически вычислять практически любые алгебраические функции.
Мощь общего вклада Бэббиджа в информатику заключается, прежде всего, в полноте сформулированных им идей. Ученым была спроектирована система, работа которой программировалась через ввод последовательности перфокарт. Система была способна выполнять разнообразные типы вычислений и настолько гибка, насколько это могли обеспечить инструкции, подаваемые на вход. Иными словами, гибкость «аналитической машины» обеспечивалась благодаря «программному обеспечению». Разработав чрезвычайно развитую конструкцию принтера, Бэббидж стал пионером идеи компьютерного ввода-вывода, поскольку его принтер и пачки перфокарт обеспечивали полностью автоматический ввод и вывод информации при работе вычислительного устройства.
Были сделаны и дальнейшие шаги, предвосхитившие конструкцию современных компьютеров. «Аналитическая машина» Бэббиджа могла хранить промежуточные результаты вычислений (набивая их на перфокарты), чтобы обработать их впоследствии или использовать один и тот же промежуточный массив данных для нескольких разных калькуляций. Наряду с разделением «процессора» и «памяти», в «аналитической машине» были реализованы возможности условных переходов, разветвляющих алгоритм вычислений, и организации циклов для многократного повторения одной и той же подпрограммы. Не имея под рукой реального вычислителя, в своих теоретических рассуждениях Бэббидж продвинулся настолько, что сумел глубоко заинтересовать и привлечь к программированию своей гипотетической машины дочь Джорджа Байрона Августину Аду Кинг, графиню Лавлейс, обладавшую бесспорным математическим дарованием и вошедшую в историю как «первый программист».
К сожалению, Чарльзу Бэббиджу не довелось увидеть воплощения большинства из своих революционных идей. Работу ученого всегда сопровождали несколько очень серьезных проблем. Его крайне живой ум совершенно не был способен удержаться на месте и дождаться завершения очередного этапа. Едва предоставив мастерам, чертежи изготовляемого узла, Бэббидж тут же начинал вносить в него поправки и добавления, непрерывно отыскивая пути для упрощения и улучшения работы устройства. Во многом именно из-за этого практически все начинания Бэббиджа так и не были доведены до конца при его жизни.
Однако вплоть до начала 1990-х годов общепринятое мнение было таково,
что идеи Чарльза Бэббиджа слишком опережали технические возможности его времени, а потому спроектированные вычислители в принципе невозможно было построить в ту эпоху. И лишь в 1991 году, к двухсотлетию со дня рождения ученого сотрудники лондонского Музея науки воссоздали по его чертежам 2,6-тонную «разностную машину № 2», а в 2000 году - еще и 3,5-тонный принтер Бэббиджа. Оба устройства, созданные по технологиям середины XIX века, превосходно работают и наглядно демонстрируют, что история компьютеров вполне могла начаться сотней лет раньше. [6]