Чарльз Бэбидж (1791—1871) - Страница 24
на карте десятичный логарифм числа 2303 (слева) равен 3,622939 (справа), отперфорированные (черные) отверстия соответствуют коду числа.
При необходимости найти величину функции предполагалось, что в соответствующем окошке машины будет показан ее аргумент и прозвенит предупредительный звонок. Работающий на машине должен вставить перфокарту, в которой пробиты значения этого аргумента и функции. И здесь Бэбидж предусмотрел возможность исправления ошибки, если будет вставлена карта с неправильным аргументом. Машина проводит проверку считыванием (эту функцию выполняют и современные цифровые вычислительные машины). Условием дальнейшей работы машины является равная нулю разность двух аргументов; в противном случае карточка отбрасывается, дается звонок, и машина, по выражению Бэбиджа, требует «точной интеллектуальной пищи».
Предвосхищая будущее вычислительных машин, Бэбидж писал: «Кажется наиболее вероятным, что она (аналитическая машина. — Авт.) рассчитывает гораздо быстрее по соответствующим формулам, чем пользуясь своими же собственными таблицами» [85, с. 59]. И действительно, в современных вычислительных машинах существует обширная библиотека стандартных подпрограмм, с помощью которой рассчитываются функции различной степени сложности. Интересно, что термин «библиотека» для данного применения также был впервые употреблен Чарльзом Бэбиджем.
По результатам разработки аналитической машины было сделано свыше 200 весьма подробных, выполненных в масштабе, чертежей машины и ее отдельных узлов, в общей сложности включающих 50 000 деталей. Некоторые из этих чертежей были выгравированы на деревянных досках, и с них по методу, предложенному Бэбиджем, были сделаны оттиски. Среди этих оттисков, получивших некоторое распространение, отметим следующие: план зацепления цифровых колес для выполнения операции сложения; разрез колес и осей; разрез корпуса машины; узел сложения; план механизма переноса десятков; часть разреза блока предварительного переноса и другие. Все эти рисунки были выполнены в середине 30-х годов. В 1840 г. Бэбидж составил один из наиболее общих планов (№ 25) аналитической машины, который был литографирован (рис. 5 [53]). На этой литографии стоит дата 6 августа 1840 г. С чертежами аналитической машины Бэбидж ознакомил ученых Великобритании и других стран.
Большое число всевозможных вариантов чертежей с трудом позволяет установить, какая комбинация узлов может быть признана наилучшей. К отдельным частям машины было написано свыше четырехсот замечаний.
В процессе конструирования машины Бэбидж разработал систему изображений механических величин [29] и внес усовершенствование в методы обработки металлов [56].
Конструкция аналитической машины была описана в статье Менабреа [79], позднее — в работе Генри Бэбиджа [80]. Теоретические возможности машины наиболее полно раскрыты в примечаниях Лавлейс к переводу статьи Менабреа.
Рис. 6. Общий план аналитической машины (рисунок Ч. Бэбиджа, 1840 г.)
В примечании А Лавлейс сравнивает две машины — разностную и аналитическую. Она отмечает, что вычислительные машины представляют собой совершенно новую область науки и техники и много внимания уделяет выработке соответствующей терминологии. Лавлейс указывает, что аналитическая машина может работать не только с числами: «Предположим, например, что основные соотношения о высоте звуков в науке о гармонии и музыкальной композиции достигли бы большой выразительности и поддавались бы такой обработке, что машина смогла бы соединять искусно написанные музыкальные отрывки любой степени сложности или длины» [85, с. 249].
Рис. 6 (продолжение).
В основном же примечание А относится к сравнительной оценке двух машин. Лавлейс пишет, что аналитическая машина по отношению к разностной играет такую же роль, какую играет анализ по отношению к арифметике. Разностная машина могла выполнять только сложение: при работе на ней другие действия арифметики сводились к серии сложений. Аналитическая же машина могла выполнять все четыре действия арифметики непосредственно. Разностная машина могла производить только табулирование, аналитическая же машина много различных операций.
«Фактически аналитическая машина может быть описана как материальное выражение функции любой степени общности и сложности как, например,
F(X, У, Z; log X, sin Y, Xp...),
которая, в свою очередь, является функцией многих других функций любого числа переменных. Нет конца демаркационной линии, ограничивающей возможности аналитической машины. Фактически аналитическую машину можно рассматривать как материальное и механическое выражение анализа. Она позволяет осуществить полное управление при выполнении действий над алгебраическими и цифровыми символами» [85, с. 245].
Интересно замечание Лавлейс о роли математики: она отмечала, что математика является не только обширным набором абстрактных и непреложных истин с присущей ей красотой, симметрией и законченностью, но это единственный язык, «с помощью которого мы можем одинаково выражать всеобъемлющие факты натурального мира» [85, с. 256].
Лавлейс очень высоко оценивала значение перфокарт. «Принцип, который Жаккар разработал для получения посредством перфокарт наиболее сложных рисунков при производстве парчовых материй, позволил сделать аналитическую машину устройством для реализации принципов абстрактной алгебры» и далее она образно описала назначение перфокарт: «Карты только указывают сущность операций, которые должны быть совершены, и адреса переменных, на которые эти действия направлены. Можно сказать достаточно точно, что аналитическая машина ткет алгебраические узоры, как ткацкий станок Жаккара — цветы и листья» [85, с. 252].
В примечании В Лавлейс рассматривает запоминающее устройство («склад») аналитической машины и предлагает систему графического обозначения данных, содержащихся в регистре памяти. Например, кружок предлагается для записи в нем знака числа, квадрат — для записи символа переменной, значение которой хранится в регистре и т. д.
В примечании С Лавлейс рассматривает способ возврата одиночной перфокарты или группы перфокарт с целью их повторного использования любое число раз.
Повторное использование перфокарт при решении некоторой задачи имеет существенное значение, поскольку нередко возникает необходимость в многократном повторении той или иной последовательности операций.
Примечание D представляет существенный интерес для истории вычислительных машин. Здесь впервые дана программа машинного решения задачи (решение системы двух линейных уравнений с двумя неизвестными). Программа записана в виде таблицы, причем в одном случае (операция записи суммы двух слагаемых в ячейку, ранее занятую одним из слагаемых) Лавлейс пользуется символикой, характерной для современного программирования. В примечании D впервые применен распространенный в настоящее время термин «рабочая ячейка» для обозначения регистра памяти.
В примечании Е Лавлейс уточняет и развивает соображения Менабреа о возможности расчета на аналитической машине функций вида: (a+bx) (А+В cos х).
Менабреа писал, что аналитическая машина приспособлена не только для производства расчетов с числами, она может производить операции и с аналитическими выражениями. При этом на одной колонке машины могут быть размещены как коэффициенты при функциях, так и сами функции, например, коэффициенты — в нижней части колонки, а функции — в верхней. При таком расположении можно проводить расчеты только с коэффициентами, не видоизменяя функции.
Далее Лавлейс приводит более сложный и более общий пример — вычисление тригонометрической функции. Лавлейс считает, что тригонометрические ряды не только удобны для иллюстрации работы машины, но представляют, прежде всего, практический интерес. Рассматривая возможности машины получать численные результаты при работе с аналитическими выражениями, Лавлейс приходит к следующим выводам: