Часть вторая
Сегодня мы с вами продолжим разговор об одном замечательном языке программирования, имя которому - Ада. Я искренне надеюсь, что первая часть статьи позволила получить вам представление об этом замечательном языке программирования. Во второй же части мы обратимся к истории. Потому что история создания языка Ада заслуживает отдельной статьи, и, думаю, прочитав её, вы со мной согласитесь. Кроме того, отдельного рассказа заслуживает и история жизни той женщины, в честь которой назван этот язык. Я думаю, нельзя говорить об этом языке дальше, не рассказав о таких вещах. Поэтому, хотя сегодняшний материал редактор и отнесёт наверняка по привычке к рубрике "Software", эта статья будет не совсем о программах...
Итак, с чего же начать? Я лично считаю, что лучше долгое вступление, чем долгая концовка. Поэтому начнём издалека, как водится...
Как известно, в Китае живут китайцы, и император у них тоже китаец. Не хотелось начинать статью с плагиата, вот я и поставил эту фразу в середину. Не узнали? Это великий датский сказочник Андерсен. Перефразируя эти слова, можно сказать так: в США живут американцы, и президент у них тоже американец. А военное министерство у американцев именуется Пентагоном. И случилось так, что Пентагон, внимательно следящий за новыми технологиями, стал оснащать своё вооружение микропроцессорами. Здесь термин "вооружение" нужно понимать в широком смысле: спутники, радары, системы слежения и ПВО - это тоже вооружение.
Для микропроцессоров нужны программы; сами по себе они работать не умеют, то ли к сожалению, то ли к счастью. А для написания программ нужны люди. И люди склонны делать ошибки. А одна ошибка в программе, управляющей ядерной боеголовкой - и всё, полпланеты нету... Конечно, пример несколько утрирован, но общая ситуация, тем не менее, полагаю, понятна. Поэтому программное обеспечение, внедряемое в систему вооружения, должно быть сверхнадёжным. Надёжности можно добиваться разным способом. В Пентагоне решили пойти по пути создания языка программирования, "заточенного" под написание очень надёжных программ. Была и ещё одна причина для создания единого для всего Пентагона языка: использование одного такого языка вместо почти полутысячи разных языков и диалектов могло бы сэкономить казне около миллиарда вечнозелёных в год. Скорее всего, именно это и стало решающим моментом в вопросе разработки нового языка.
В 1977 году был организован международный конкурс на создание нового языка. Что любопытно, в качестве основы для нового языка можно было брать языки из очень ограниченного списка: PL/1, Algol-68 и Pascal. Эти языки специалисты Пентагона посчитали наиболее подходящей базой для создания надёжного языка программирования. Конкурс получил живой отклик в научной среде: более десятка групп разработчиков из самых разных стран представили свои работы, из которых в 1979 в итоге был выбран один проект, созданный группой специалистов, которой руководил француз Жан Ихбиа.
Личность самого этого французского учёного тоже довольно интересна. Ада была не первым языком программирования, разработанным под его руководством. Сам он, кстати, по образованию не был программистом. Ихбиа окончил парижскую политехническую школу, после которой продолжил обучение по специальности в США. Кстати, тема его диссертации была связана с метро, так что, как видите, применение программы, написанной на Аде, в парижском метрополитене не случайно. Напомню, что на одной из линий эта программа управляет составами вместо машинистов. Интересно, когда такие поезда появятся в Минске?
Кто именно придумал название для языка, история умалчивает. Возможно, это сделал сам Жан Ихбиа. Возможно, кто-то из Пентагона. Возможно, кто-то из группы разработчиков, работавших вместе с Ихбиа. Одно лишь известно: человеком, в честь которого назван этот язык программирования, является леди Ада Августа Лавлейс. И о ней - оставшаяся часть статьи.
Английский поэт лорд Байрон был когда-то женат. И имел в браке единственного законнорожденного ребёнка. Дочь Джорджа Гордона Байрона и его жены Анны Изабеллы Байрон, родившаяся в 1815 году, была названа Августой, а её полное имя было Ада Августа. Впрочем, после развода родителей, наступившего в скором времени после рождения ребёнка, в семье матери, в которой осталась дочь великого поэта, старались как можно реже употреблять имя, данное отцом, которого, кстати, девочка видела всего лишь раз в жизни, через месяц после своего рождения. Под именем Ада знали её все друзья и знакомые, под этим именем она вошла и в историю.
Математический талант Ады проявился сравнительно рано, и по этой причине мать решила пригласить для неё учителя - человека, который учил когда-то и её саму. К слову, у Анны Изабеллы тоже были ярко выраженные математические способности, за которые близкие называли её "Королевой параллелограммов". Однако впоследствии Ада больше сдружилась с женой своего учителя, чем с ним самим - к счастью, та тоже великолепно разбиралась в математике.
В семнадцать лет (а, как говорят англичане, seventeen is the age when the girl ends and woman begins1) в жизни Ады случилось знаменательное событие. Думаю, любой из нас в любом возрасте мог бы посчитать такое событие в своей жизни весьма значительным. В этом возрасте мать стала вывозить Аду в свет и представила её королю и королеве. А ещё в том же году девушка была представлена Чарльзу Бэббиджу, одному из виднейших математиков того времени. На тот момент Бэббидж был не слишком известен в широких кругах, но уже достиг определённых высот: он был профессором кафедры математики в Кембриджском университете. Кстати, за полтора столетия до него этой кафедрой руководил Исаак Ньютон.
За десять лет до знакомства с Адой Байрон Бэббидж создал чертёж вычислительной машины, способной (теоретически) выполнять различные вычисления с точностью до двадцатого знака. Конечно, эта машина сильно отличалась от тех приборов, которые мы называем вычислительными машинами сегодня. Она была механической, состояла из бесчисленного количества шестерёнок и винтиков. Однако по своей сути и по своему предназначению она была прообразом современных "думающих" машин, именуемых компьютерами. Этот проект чрезвычайно заинтересовал тогдашнего премьер-министра Соединённого Королевства, и Бэббидж получил субсидию на постройку своей машины. Впрочем, за десять лет Бэббиджу так и не удалось создать работающий вариант машины, поэтому по истечении этого периода времени финансирование было прекращено. Тем не менее, именно аналитическая машина Бэббиджа сделала известными имена Чарльза и Ады.
В 1842 году итальянец Манибера заинтересовался изобретением Бэббиджа настолько, что выпустил подробное описание принципов работы и конструкции аналитической машины. Однако описание было опубликовано на итальянском, и Бэббидж попросил Аду перевести его на английский язык. Талантливая женщина-математик, успевшая к тому времени уже выйти замуж за графа Лавлейса и родить ему троих детей, с радостью взялась за этот нелёгкий труд. Подойдя к процессу творчески, она ещё и снабдила перевод собственными комментариями. Собственного говоря, именно они и позволяют сегодня говорить о том, что Ада Августа Лавлейс была первым программистом планеты. В своих комментариях Ада представила план операций (в современных терминах это, пожалуй, будет звучать как алгоритм) для аналитической машины, позволяющий решать уравнение Бернулли для движения жидкости.
Что интересно, Ада Августа Лавлейс и Чарльз Бэббидж внесли свой вклад не только в идеологию, но и в терминологию кибернетики и компьютерного программирования. Они первыми ввели такие понятия, как подпрограмма и библиотека программ, модификация команд, индексный регистр, рабочая ячейка и цикл. При этом нужно отметить, что перевод описания аналитической машины и комментарии к нему - не единственные работы Лавлейс, выполненные ею под руководством Чарльза Бэббиджа. Однако в те годы для женщины считалось неприличным издавать собственные научные работы, поэтому они долгое время пребывали в безвестности.
Что также любопытно, муж, Уильям Кинг Лавлейс, и дети с пониманием относились к тому, что Ада занимается математикой, и потому замужество не то что не помешало, но даже некоторым образом и помогло Аде, так как теперь к её услугам была обширная родовая казна Лавлейсов. Бэббидж же, будучи профессором, познакомил её со многими другими выдающимися людьми той эпохи: Майклом Фарадеем, Дэвидом Брюстером, Чарльзом Уитстоном, Чарльзом Диккенсом.
К сожалению, линия жизни Ады Августы Лавлейс прервалась сравнительно рано. В 1852 году она умерла от рака матки, и была похоронена в фамильном склепе рядом со своим отцом, Джорджем Гордоном Байроном.
Такова история языка Ада и история женщины, в честь которой этот язык был назван. Вряд ли тот человек, который подбирал название для языка, мог придумать более подходящее и запоминающееся название. Кстати, память о первом программисте (по иронии судьбы, для этой "чисто мужской", как не один раз приходилось слышать, профессии первым её представителем стала женщина) увековечена не только в названии языка программирования. Десятого декабря, в день, когда родилась Ада Августа Лавлейс, отмечается Всемирный день программиста.
Вадим СТАНКЕВИЧ
1 Seventeen is the age when the girl ends and woman begins - Семнадцать лет - возраст, в котором оканчивается девочка и начинается женщина (англ.). Можно было бы сказать то же самое по-русски и красивее, но дословный перевод именно такой.
Комментарии
Так, я чевой-то не понимаю. Только везде раструбили, что день программиста - это 256-й день в году, и тут - на тебе. Я, собственно, не против, но иметь 2 ОДИНАКОВЫХ праздника в году - это странно. :)
О! Еще один день программиста нашел -
19 июля (см. http://www.meranetworks.ru/news_and_events/2006_07_19.php).
Беспределе какой-то. Когда же работать :):):)