995 подписчиков

Ада Лавлейс: как программистка из 1840 года помогла изобрести машинный код

237 прочитали

Первую программу для компьютеров написали, когда самих компьютеров ещё не было, — в 1840 году. И да, в ней уже был настоящий баг.

Ада Лавлейс — первый программист

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

Термин «цикл» ввела именно Ада Лавлейс. Изображение: https://www.lookfar.com/blog/2017/10/14/ada-lovelace-awards-backstory/
Термин «цикл» ввела именно Ада Лавлейс. Изображение: https://www.lookfar.com/blog/2017/10/14/ada-lovelace-awards-backstory/

Имена Ады Лавлейс и Чарльза Бэббиджа обычно ставят рядом. Он создал первый прототип сегодняшних компьютеров — логарифмическую машину. Однако проект остался только на бумаге. Зато Ада успела поближе познакомиться с учёным и его работами.

В 1840 году итальянский военный инженер Луиджи Менабреа провёл интервью с Бэббиджем и написал про его изобретение статью на французском. Ада перевела её на английский, а также добавила подробный комментарий — алгоритм вычисления чисел Бернулли.

Программа Ады Лавлейс опередила прогресс на десятки лет — её алгоритм используют в вычислениях даже сегодня. Аду можно справедливо считать первым программистом. Позже, в 1980 году, специалисты из США создадут язык программирования, который назовут в её честь — Ada.

Машинный код и ассемблер

Бэббидж и Лавлейс получили известность среди математиков только в XX веке — во время научно-технологической революции. В 1940-х годах инженеры создали первые прототипы современных компьютеров — ЭВМ. Они были большими и работали на перфокартах. Выглядели ЭВМ так:

ЭВМ середины XX века. Источник: https://hi-news.ru/eto-interesno/kak-eto-rabotaet-mashinnyj-perevod.html
ЭВМ середины XX века. Источник: https://hi-news.ru/eto-interesno/kak-eto-rabotaet-mashinnyj-perevod.html

Они работали с помощью команд из цепочек нулей и единиц — машинного кода. Этот язык был неудобным для программирования и особенно для отладки — приходилось подробно изучать внутренности ЭВМ и быть крайне внимательным, чтобы не допустить ошибку при записи последовательностей.

В 1950-х годах специалисты создали первые языки программирования низкого уровня — ассемблеры, которые автоматизировали разработку. Низкий уровень — это уже не машинный код, но ещё и не совсем человеческий, где-то между. Такие языки были понятны человеку, но всё ещё оставались близки к машинному коду.

Планкалкюль — первый язык высокого уровня

Во время Второй мировой войны учёный из Германии Конрад Цузе стал автором первого языка высокого уровня — Plankalkül, который уже был похож на человеческий язык. Цузе использовал его, чтобы оценивать шахматные позиции. Работы учёного заметили только в 1972 году.

Plankalkül — электромеханический язык, разработанный для компьютера Z4. Аппаратную часть автор не сделал. После смерти учёного в 2000 году специалисты из Свободного университета Берлина создали первый компилятор для Plankalkül — Plankalkül-2000.

Фото Конрада Цузе. Источник: https://www.zib.de/institute/konrad_zuse
Фото Конрада Цузе. Источник: https://www.zib.de/institute/konrad_zuse

Язык не использовался на практике, но соответствовал всем стандартам современных высокоуровневых языков. Например, с помощью Plankalkül можно было складывать числа и выполнять их сортировку.

Fortran — первый язык с компилятором

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

Сегодня Fortran тоже популярен — например, среди дата-сайентистов и в научных исследованиях. Он эволюционировал и обрёл чёткие технические стандарты.

Языки программирования начали свой путь именно с Fortran. Посмотрите на потрясающую схему с их историей.

Кто был самым первым — Ада Лавлейс или создатели Plankalkül и Fortran — не важно. Каждый из них внёс свой вклад в развитие технологий до сегодняшнего уровня, где есть место нейросетям и метавселенным.

***

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

#программирование #технологии #люди_и_код #история IT #Ада Лавлейс