Математические первоисточники
Если мы задумаемся над тем, с какими объектами работали первые механические предшественники современного электронного компьютера, то должны признать, что числа представлялись либо в виде линейных перемещений цепных и реечных механизмов, либо в виде угловых перемещений зубчатых и рычажных механизмов. И в том и в другом случае это были перемещения, что не могло не сказываться на габаритах устройств и на скорости их работы. Только переход от регистрации перемещений к регистрации сигналов позволил значительно снизить габариты и повысить быстродействие. Однако на пути к этому достижению потребовалось ввести еще несколько важных принципов и понятий.
Двоичная система Лейбница.В механических устройствах зубчатые колеса могут иметь достаточно много фиксированных и, главное, различимых между собой положений. Количество таких положений, по крайней мере, равно числу зубьев шестерни. В электрических и электронных устройствах речь идет не о регистрации положений элементов конструкции, а о регистрации состояний элементов устройства. Таких устойчивых к различимых состояний всего два: включен — выключен; открыт — закрыт; заряжен — разряжен и т. п. Поэтому традиционная десятичная система, использованная в механических калькуляторах, неудобна для электронных вычислительных устройств.
Рис. 2.3. Готфрид Вильгельм Лейбниц |
Возможность представления любых чисел (да и не только чисел) двоичными цифрами впервые была предложена Готфридом Вильгельмом Лейбницем в 1666 году Он пришел к двоичной системе счисления, занимаясь исследованиями философской концепции единства и борьбы противоположностей. Попытка представить мироздание в виде непрерывного взаимодействия двух начал («черного» и «белого», мужского и женского, добра и зла) и применить к его изучению методы «чистой» математики подтолкнули Лейбница к изучению свойств двоичного представления данных с помощью нулей и единиц. Надо сказать, что Лейбницу уже тогда приходила в голову мысль о возможности использования двоичной системы в вычислительном устройстве, но, поскольку для механических устройств в этом не было никакой необходимости, он не стал использовать в своем калькуляторе (1673 году) принципы двоичной системы.
Математическая логика Джорджа Буля.Говоря о творчестве Джорджа Буля, исследователи истории вычислительной техники непременно подчеркивают, что этот выдающийся английский ученый первой половины XIX века был самоучкой. Возможно, именно благодаря отсутствию «классического» (в понимании того времени) образования, Джордж Буль внес в логику, как в науку, революционные изменения.
Занимаясь исследованием законов мышления, он применил в логике систему формальных обозначений и правил, близкую к математической. Впоследствии эту систему назвали логической алгеброй или булевой алгеброй. Правила этой системы применимы к самым разнообразным объектам и их группам (множествам, по терминологии автора). Основное назначение системы, по замыслу Дж. Буля, состояло в том, чтобы кодировать логические высказывания и сводить структуры логических умозаключений к простым выражениям, близким по форме к математическим формулам. Результатом
Рис. 2.4. Джордж Буль
формального расчета логического выражения является одно из двух логических значений: истина или ложь.
Значение логической алгебры долгое время игнорировалось, поскольку ее приемы и методы не содержали практической пользы для науки и техники того времени. Однако, когда появилась принципиальная возможность создания средств вычислительной техники на электронной базе, операции, введенные Булем, оказались весьма полезны. Они изначально ориентированы на работу только с двумя сущностями: истина и ложь. Нетрудно понять, как они пригодились для работы с двоичным кодом, который в современных компьютерах тоже представляется всего двумя сигналами: ноль и единица.
Не вся система Джорджа Буля (как и не все предложенные им логические операции) были использованы при создании электронных вычислительных машин, но четыре основные операции: И (пересечение), ИЛИ (объединение'), НЕ (обращение) и ИСКЛЮЧАЮЩЕЕ ИЛИ — лежат в основе работы всех видов процессоров современных компьютеров.
Рис. 2.5. Основные операции логической алгебры