За последние шесть веков было создано несколько конструкций логических машин, и все они оказались тупиковыми ветками развития компьютеров. Но ведь не будь тупиковых, то, пожалуй, не было бы и основных ветвей.
Когда-то очень давно ту часть компьютера, которую сейчас называют процессором, именовали по-русски и по-английски практически одинаково — АЛУ/ALU, то есть «арифметико-логическим устройством». Сочетание «арифметики» и «логики» в одном термине точно выражает функцию процессора. Действительно, на уровне системы команд процессора компьютер способен выполнять лишь простейшие логические и арифметические операции; все остальное — ни что иное, как надстройка над ними. Совершенствование архитектуры и системы команд позволяет лишь оптимизировать работу процессора, но не изменять ее по существу.
С годами, по мере развития технологий, по мере появления языков программирования, а затем операционных систем и нынешних системных архитектур на базе сервисов, логическая первооснова была погребена под многочисленными этажами надстройки и изрядно подзабыта. Большинству тех, кого принято называть ИТ-специалистами, практически нет нужды знать алгебру логики, предложенную Джоном Булем в XIX веке и реанимированную в середине XX века Клодом Шенноном. Примерно так же отпала необходимость в умении пользоваться шестнадцатеричной системой счисления и понимать принципы работы регистров-сумматоров.
Однако компьютер был, есть и в неопределенном будущем останется всего лишь устройством (пусть и невероятно сложным), способным выполнять логические и арифметические операции. За последние шестьдесят лет на уровне элементарных действий практически ничего не изменилось. В основном используются все та же булева алгебра и те же операции двоичной арифметики. Другими словами, это все тот же двугорбый верблюд, на одном горбу которого написано «логика», а на другом — «арифметика».
Правда, арифметике повезло больше. Обычно историю компьютеров представляют как хронику развития счетных возможностей машин, поэтому традиционно выстраивают последовательность от работ Паскаля и Лейбница к Бэббиджу, затем — к работам первой половины XX века и, далее, к современным компьютерам. Но существует еще и история развития логических машин — менее насыщенная, но не менее интересная. В конечном счете, продвижение по этой ветви и привело к результатам, полученным Шенноном.
Раймонд Луллий и его компьютеры
«Путешествия Гулливера» были написаны Джонотаном Свифтом в жанре сатиры, и лишь с годами эту книгу стали воспринимать как детскую. По законам жанра у многих ее персонажей были совершенно конкретные прототипы. Скажем, в третьей части «Путешествий», где описан визит Гулливера в Великую академию, находящуюся в столице Лапутии, автор осмеивает некоторых не слишком прагматичных ученых. Специфическое отношение к ним Свифта можно понять, если учесть, что по своей «первой специальности» он был разведчиком. Не случайно его любили классики марксизма и советские литературоведы: уж им-то подобная критика науки точно пришлась по душе.
Переходя из комнаты в комнату, Гулливер в одной из них обнаруживает своеобразную конструкцию и выясняет, что огромная, площадью 20 квадратных метров рама представляет собой прибор для открытия отвлеченных истин. На раме располагаются таблички со словами, которые можно произвольно сочетать с помощью встроенного «генератора случайных чисел». Совершив очередную перетасовку, вовлеченные в эксперимент ученые пытаются найти в беспорядочном наборе слов и знаков осмысленные фразы и таким образом создать полный обзор всех наук и искусств. Эту машину Свифт назвал «компьютером», а прототипом ее создателя стал Раймонд Луллий.
Луллий жил за триста лет до появления книги Свифта, и, надо сказать, фигура эта представляется крайне противоречивой. В разные времена Луллия оценивали по-разному, у его идей были приверженцы (в том числе Джордано Бруно) и противники, а сегодня в Европе есть даже несколько центров по изучению его наследия. Этот францисканский монах, испанский философ, мистик, писатель, поэт, миссионер конца XIII — начала XIV веков являл собой пример универсального гения. Современники называли его doctor illuminatus, то есть «озаренный наставник».
Рис. 1. Машина и логическая лестница Луллия, XVI век |
Луллий был автором многих трудов, однако в данном контексте интерес представляет его книга Ars Magna («Великое искусство»). Среди прочего в ней излагается метод, посредством которого любой человек может не только легко понять и усвоить все известные истины веры, но даже открыть новые. Этот универсальный способ открытия истин подразумевает использование машины (рис. 1), состоящей из вложенных друг в друга концентрических дисков. Эта машина и стала прототипом свифтовского компьютера.
Вне исторического контекста, представленная как шарж, машина Луллия действительно смешна, но стоит задуматься, почему и для чего она создавалась. Прежде всего, Луллий был миссионером, но, в отличие от инквизиторов, он, францисканец, хотел нести веру не крестом и мечом, а логикой и стремился быть доказательным в своей позиции. Поэтому он, возможно первым из христиан-богословов, стал изучать восточные языки и культуру и оказался одним из тех, кто проложил мостик между древней культурой Востока и культурой Возрождения Запада.
Он хотел говорить с иноверцами на их языке, используя для этого, как бы сегодня сказали, формальную логику. Ему были знакомы алгебраические труды Аль Хорезми и само понятие «алгоритм», а во время путешествий по Северной Африке он видел гадальные устройства, состоящие из концентрических вращающихся дисков. Сочетая алгоритмическую основу с дисковой механикой, Луллий намеревался создать инструмент для получения логических доказательств.
Свифт назвал машину Луллия «компьютером» вслед за Лейбницем, который считал, что научный спор можно решить с помощью бумаги, пера и вычислений. В английском переводе его тезис звучит так: Gentlemen, let us compute! (Надо иметь в виду, что до недавнего времени под словом compute понимали как доказательство чего-то математическими средствами, а не просто как вычисление.)
Рис. 2. Диаграммы Луллия |
О том, насколько удачным оказался опыт использования этой машины, сказать трудно. Однако, попутно Луллий сделал целый ряд открытий. Задолго до Буля он сформулировал идею создания «алфавита для мыслей», выдвинул принципы логического анализа, изложил свои соображения об эвристических и дедуктивных методах (правда, представленных в зародышевой форме). Помимо машин он использовал то, что мы называем теорией графов, табличные и графические формы представления информации. В его трудах можно найти диаграммы (рис. 2), весьма похожие на применяемые сейчас диаграммы Венна. Все это дает основание считать Луллия первооткрывателем формальных логических методов, а его машину — предшественником современных компьютеров, пусть полумифическим. (Биографический очерк «Блистательный мастер Раймонд Луллий» можно найти по адресу http://www.trizland.ru/trizba/pdf-articles/ master_Lullii.pdf.)
Логические машины Стэнхоупа и Сми
В Англии XIX века были предприняты дальнейшие попытки построить логическую машину. Начало им положил лорд Чарльз Стэнхоуп (1753-1816), известный политический деятель и изобретатель. На его счету — несложные оптические приборы и металлическое перо для письма, но наиболее интересна логическая машина, поучившая название Stanhope Demonstrator, то есть «Демонстратор Стэнхоупа» (рис. 3). В отличие от компьютера Луллия, это была совершенно рациональная конструкция, но и ее судьба оказалась не без странностей: хотя Стэнхоуп построил Демонстратор в самом начале XIX века, первая статья о нем датируется лишь 1879 годом.
Рис. 3. Фрагмент из описания Stanhope Demonstrator |
Основой этой машины является двумерная матричная конструкция, а потому с ее помощью можно решать лишь простые логические и вероятностные задачи с двумя аргументами. Например, ей доступна известная задача из книги Я.И. Перельмана «Занимательная алгебра»: если 8 из 10 предметов имеют качество А, а 4 из тех же 10 предметов — качество B, то по меньшей мере два предмета имеют оба качества. Или же если вероятность события A = 0,5, а события В = 0,2, то условная вероятность равна 0,1.
Еще одной интересной фигурой был хирург Альфред Сми (1818-1877), увлекавшийся электробиологией (так называли влияние электричества на жизнедеятельность организма). Сми выдвинул утопический проект создания искусственного мозга, состоящего из двух машин — реляционной и дифференциальной. При использовании доступных изобретателю технологий эта машина, будь она построена, заняла бы площадь, сопоставимую с территорией Лондона тех времен. В 1851 году Сми опубликовал книгу «Процесс мышления», которая стала популярной в Англии и способствовала распространению взглядов, предполагающих возможность механизации мышления.
Второе поколение логических машин
Стэнли Джевонс (1835-1882) в русскоязычной литературе известен как выдающийся экономист, но он был еще и одаренным математиком. Ему повезло с преподавателем, которым оказался Август де Морган, друживший с Чарльзом Бэббиджем. В свое время Джевонс прочитал «Процесс мышления» Сми, ознакомился с работой Чарльза Стэнхоупа, а книга «Законы мышления» подвигла его вступить в переписку с Джоном Булем. В 1874 году он выпустил собственную книгу «Принципы науки». Как математика, Джевонса в наибольшей степени интересовали теория вероятностей и логика.
Все это стимулировало Джевонса к созданию собственной логической машины, которую назвали логическим пианино (рис. 4) из-за внешнего сходства с этим музыкальным инструментом. Машина, построенная знакомым Джевонса, часовым мастером, представляла собой конструкцию высотой около метра. Ее клавиатура использовалась для ввода аргументов, а с помощью пластинок на лицевой части задавалась таблица истинности. В силу понятных ограничений она не могла использоваться для решения сложных задач, да и не предназначалась для таких целей — это было всего лишь учебное пособие.
Рис. 4. Логическое пианино Стэнли Джевонса |
Показательно, что одним из тех, кто изучал логику с помощью машины Джевонса, был Джон Венн (1834-1923). Готфрид Лейбниц и Леонард Эйлер использовали диаграммы для иллюстрации логических задач, но лишь Венн их систематизировал. В 1880 году он опубликовал статью, в которой диаграммы описывались точно в таком же виде, в каком они сегодня используются в началах теории множеств.
Конструктивным развитием машины Джевонса были устройства, построенные в США профессором Принстонского университета Алленом Макгвардом и Бенжаменом Бураком. А последней логической машиной стало электромеханическое детище Уильяма Буркхарда и Теодора Калина, созданное по мотивам работ Шеннона.
Ни одна из логических машин не использовалась для практических целей. В основном они оставались учебными пособиями, позволявшими продемонстрировать возможность механизации логических операций. Признано, что первым доказательно установил изоморфизм между коммутируемыми цепями и логическими функциями Клод Шеннон. Сначала он описал это в дипломной работе в Массачусетском технологическом институте, а затем в статье, опубликованной в 1938 году. В России на возможность физической интерпретации логических функций первым указал петербургский профессор П.С. Эренфест (1910 год), а развил подобные взгляды В.И. Шестаков в статье «О физической интерпретации булевых функций», напечатанной в 1941 году.