Бэббидж и Лавлейс: программа, написанная за сто лет до компьютера
В 1843 году женщина написала алгоритм для машины, которой ещё не существовало в металле. Историю первого программиста придумали не маркетологи — она настоящая и куда страннее легенды.
Программу для компьютера написали раньше, чем сам компьютер успели построить.
Аналитическая машина не претендует на то, чтобы создавать что-либо новое. Она может делать лишь то, что мы умеем ей предписать. — Ада Лавлейс, 1843
Машина, опередившая железо
Чарльз Бэббидж был английским математиком, которого бесили ошибки в напечатанных таблицах логарифмов. Их считали вручную живые люди — и ошибались. Бэббидж решил, что считать должна машина, у которой нет ни усталости, ни невнимательности. Так в 1820-х появился проект Разностной машины — огромного механического калькулятора из латунных шестерёнок, умевшего вычислять значения многочленов методом конечных разностей.
Но настоящий прорыв случился позже. В 1830-х Бэббидж задумал Аналитическую машину — и вот это уже был не калькулятор, а полноценный компьютер в современном смысле. У неё были все ключевые части: «склад» (по-нашему — память) для хранения чисел, «мельница» (процессор) для арифметики, устройство ввода на перфокартах и даже печать результата. Машина умела ветвиться и зацикливаться. Всё это — на пару, шестерёнках и без единого транзистора.
Перфокарты с ткацкого станка
Идею ввода Бэббидж позаимствовал у ткацкого станка Жаккара, где узор задавался дырочками в картонных картах. Бэббидж понял главное: если карты могут управлять рисунком на ткани, они могут управлять и вычислением. Это была революция в самой идее — машина перестала быть жёстко заточенной под одну задачу. Её поведение задавалось извне, программой. Это и есть рождение понятия программируемости.
Ада, графиня Лавлейс
Ада была дочерью поэта лорда Байрона, но мать намеренно учила её математике — лишь бы подальше от опасной отцовской поэзии. Ада подружилась с Бэббиджем и взялась перевести на английский статью итальянского инженера об Аналитической машине. Перевод вышел вдвое длиннее оригинала: Ада добавила собственные Примечания, и именно они обессмертили её имя.
В Примечании G она расписала, как машина может вычислять числа Бернулли — последовательность шагов с переменными, циклами и промежуточными результатами. По сути это была первая опубликованная компьютерная программа. Но важнее даже не код. Ада увидела то, чего не увидел сам Бэббидж: машина способна оперировать не только числами, но любыми символами по правилам — а значит, теоретически сочинять музыку или работать с понятиями. Она первой почувствовала, что компьютер — это машина общего назначения.
Почему всё это не заработало
Аналитическую машину так и не построили при жизни авторов. Причин много: фантастическая сложность точной механики, нехватка денег, тяжёлый характер Бэббиджа, постоянно переделывавшего проект. Британское правительство, вложившись в Разностную машину, в итоге махнуло рукой. Идея на сто лет ушла в тень — её переоткрыли только в XX веке, когда появились реле и лампы.
| Часть машины Бэббиджа | Современный аналог |
| Склад (store) | Оперативная память |
| Мельница (mill) | Процессор (АЛУ) |
| Перфокарты | Программа и данные |
| Печать | Устройство вывода |
Что осталось
Сегодня язык Ada, используемый в авиации и космосе, назван в честь Лавлейс. А второй вторник октября отмечают как День Ады Лавлейс — праздник женщин в науке. Их история — редкий случай, когда идея настолько обогнала технологии, что для её воплощения пришлось ждать целое столетие. Бэббидж и Лавлейс не построили компьютер. Они придумали, чем он будет.