Как женщина Ада Лавлейс создала первый в мире алгоритм

Как женщина Ада Лавлейс создала первый в мире алгоритм

Создателем первой в мире программы стала дочь известного поэта Дж. Байрона Ада Лавлейс. Эта удивительная женщина была не только математиком, но и программисткой.

VolhinSoft расскажет вам о жизни Ады Лавлейс, ее великих открытиях и об их влиянии на науку и технологии современности. Эта история о женщине, которая в 19 веке создала первый в мире алгоритм.

Программистка Ада

А.Лавлейс родилась 10.12.1815. Когда ей было всего 5 недель, ее родители развелись. Восьмилетняя Ада росла болезненной, страдала от приступов головной боли, которые ограничивали ее зрение. В 1829 году она пережила тяжелую форму кори, которая парализовала ее на три года. Но когда ей исполнилось 17 лет, она, наконец, выздоровела.

Как женщина Ада Лавлейс создала первый в мире алгоритм

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

Разностная и аналитическая машины

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

Как женщина Ада Лавлейс создала первый в мире алгоритм

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

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

Ее 2 основных компонента — хранилище (магазин), которое служило памятью, и мельница, отвечающая за логические и арифметические операции. Эти две части связаны между собой, аналогично современным ПК с памятью и процессором.

Программа А.Лавлейс

В начале 40-х годов 19 века А.Лавлейс перевела статью о машине Бэббиджа на английский и дополнила ее своими мыслями. Она также предложила метод вычисления чисел, если бы машина была реализована.

Как женщина Ада Лавлейс создала первый в мире алгоритм

В своих записях А.Лавлейс использовала алгоритм в виде пошагового процесса, известного как «таблица алгоритма», ей продемонстрированы возможности аналитической машины. Таблица является не программным обеспечением, а алгоритмом, который позволяет отследить каждый шаг. Выбор чисел Бернулли для программы был осознанным. Зная первое число, можно вычислить второе, и при известном втором числе можно вычислить третье.

Бэббидж и его аналитическая машина

Как женщина Ада Лавлейс создала первый в мире алгоритм

В древности, когда еще не было термина «программа», записи Ады были представлены в виде набора перфокарт. Чтобы вычислить с помощью аналитической машины B7 (восьмое число Бернулли), Адой разработан алгоритм, который включал следующие шаги:

  • Совершение арифметических операций.
  • Использование управляющих потоков для выполнения циклов.
  • Продолжение вычислений до завершения процесса.
  • Выведение конечного результата.

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

Говоря о последовательности чисел Бернулли, которые тесно связаны с теорией чисел и математической аналитикой, нужно отметить, что они представляют собой рациональные числа с разными значениями индексов, начиная с первых нечетных чисел. Например, B1=-1/2, B3=0, B5=0. У четных также есть свои индексы, такие как B0=1, B2=1/6, B4= -1/30, B6= 1/42 и так далее.

Коэффициенты, вычисленные с использованием треугольника Паскаля (A0-A5), представлены следующим образом:

  • A0 = -1/2 * (2n - 1) / (2n + 1);
  • A1 = 2n / 2;
  • A3 = 2n(2n - 1)(2n - 2) / (2 * 3 * 4);
  • A5 = 2n(2n−1)(2n−2)(2n−3)(2n−4) / (2⋅3⋅4⋅5⋅6).

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

Алгоритм А.Лавлейс

Как женщина Ада Лавлейс создала первый в мире алгоритм

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

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

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

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

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

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

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

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

  • Число 1 = B1 * A1
  • Число 2 = B3 * A3
  • Число 3 = B5 * A5.

Цикл, созданный Адой Лавлейс, позволяет итерационно вычислять произведения для всех пар чисел Бернулли и коэффициентов. В отличие от современных языков программирования, здесь основной идеей является повторяющийся процесс входных данных.

На шестом этапе происходит сложение числа A0 с ранее вычисленными продуктами (Sum = A0 + число 1 + число 2 + число 3). Механизм выполняет ряд операций сложения и передает промежуточный результат с помощью механических связей.

На седьмом этапе машина осуществляет конечный расчет 8-го числа Бернулли. Для этого происходит умножение суммы (Sum) на -1. Таким образом, окончательное значение B7 определяется как -1 * Sum или -1 * (A0 + B1 * A1 + B3 * A3 + B5 * A5).

Результаты вычислений

Как женщина Ада Лавлейс создала первый в мире алгоритм

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

ADA придуман Минобороны США. Но в 80 году 20 века они не могли предположить, какие последствия принесет этот язык программирования как разработка. Он был создан специально для военных целей, но с течением времени его значение стало гораздо шире.

Начать дискуссию