Ада Лавлейс и принципы программирования




Скачать 93.38 Kb.
НазваниеАда Лавлейс и принципы программирования
Дата публикации20.07.2013
Размер93.38 Kb.
ТипДокументы
lit-yaz.ru > Математика > Документы

Тема: Ада Лавлейс и принципы программирования

Автор: Марголис Д.Б.


В истории вычислительной техники существует множество имён. В их ряду рядом стоят имена Ады Лавлейс и Чарльза Бебиджа – человека, который создал чертежи аналитической машины, и женщины, которая написала первую в мире программу для этой машины. Она была великим математиком и очень настойчивым человеком, её не разочаровало даже то, что она не увидела свою программу работающей[1].

Ада Лавлейс известна прежде всего созданием описания вычислительной машины, проект которой был разработан Чарльзом Бэббиджем. Она также ввела в употребление термины «цикл» и «рабочая ячейка». В материалах Бэббиджа и комментариях Лавлейс намечены такие понятия, как подпрограмма и библиотека подпрограмм, модификация команд и индексный регистр, которые стали употребляться только в 50-х годах XX века. Сам термин «библиотека» был введён Бэббиджем, а термины «рабочая ячейка» и «цикл» предложила Ада[2].
Августа Ада Кинг (урождённая Байрон), графиня Лавлейс (англ. Augusta Ada King Byron, Countess of Lovelace), родилась 10 декабря 1815 в Лондоне. Она была единственной дочерью великого английского поэта Джорджа Гордона Байрона (1788 - 1824) и Аннабеллы Байрон, урождённой Милбэнк (1792 - 1860). Ада унаследовала у матери любовь к математике и многие черты отца, в том числе, близкий по эмоциональному складу характер. В 1816 году Байрон навсегда покидает Великобританию. Он никогда больше не видел дочери, но часто вспоминал о ней и посвятил ей трогательные и нежные строки в поэме "Чайльд Гарольд"[1,2].

Миссис Байрон пригласила для Ады своего бывшего учителя — шотландского математика Огастеса де Моргана. Он был женат на знаменитой Мэри Соммервиль, которая перевела в свое время с французского «Трактат о небесной механике» математика и астронома Пьера-Симона Лапласа.

Когда Аде исполнилось семнадцать лет, она смогла выезжать в свет и была представлена королю и королеве. Имя Чарльза Бэббиджа юная мисс Байрон впервые услышала за обеденным столом от Мэри Соммервиль. Спустя несколько недель, 5 июня 1833 года, они впервые увиделись. Чарльз Бэббидж в момент их знакомства был профессором на кафедре математики Кэмбриджского университета — как сэр Исаак Ньютон за полтора века до него. Позднее она познакомилась и с другими выдающимися личностями той эпохи: Майклом Фарадеем, Дэвидом Брюстером, Чарльзом Уитстоном, Чарльзом Диккенсом и другими.

За несколько лет до вступления в должность Бэббидж закончил описание счетной машины, которая смогла бы производить вычисления с точностью до двадцатого знака. Проект стартовал в 1822 г., назывался он Difference Engine(Разностная машина) и должен был являть собой (в современной нам терминологии) громадный, чрезвычайно сложный арифмометр. Однако, несмотря на неплохое по тем временам правительственное финансирование, он благополучно заглох в 1834 г., его документация осела на складах и полках научных кабинетов. Причин тому было множество; основные из них — халатность главного инженера Джозефа Клемента и потеря интереса к проекту самого Бэббиджа. Дело в том, что уже в 1833 г. математик задумал еще более революционный шаг: заставить машину работать под управлением внешней программы, а не заменить механическим устройством один процесс. Этот агрегат под названием Analytical Engine(Аналитическая машина) разрабатывался Чарлзом Бэббиджем на бумаге в 1834 г. Это и был самый первый в мире полностью функциональный компьютер.

К 1834 году относится знакомство Ады с разностной машиной Бэббиджа. Ада посещает публичные лекции Д.Ларднера о машине. В это же время совместно с Соммервилем и другими она впервые посещает Бэббиджа и осматривает его мастерскую. После первого посещения Ада стала часто бывать у Бэббиджа, иногда в сопровождении миссис де Морган.

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

Ада унаследовала от отца и литературные способности: её письма написаны легко, красивым языком. В одном из писем к Бэббиджу, давая себе характеристику, Ада Лавлейс пишет: "Мой мозг – нечто большее, чем просто смертная субстанция, надеюсь, время накажет это (если только моё дыхание и прочее не будет слишком быстро прогрессировать к смерти). Клянусь Дьяволом, что не пройдёт и десяти лет, как я высосу некоторое количество жизненной крови из загадок вселенной, причём так, как этого не смогли бы сделать обычные смертные губы и умы. Никто не знает, какая ужасающая энергия и сила лежат ещё неиспользованными в моём маленьком гибком существе".

С начала 1841 года Лавлейс серьёзно занялась изучением машин Бэббиджа. В одном из писем к Бэббиджу Ада пишет: "Вы должны сообщить мне основные сведения, касающиеся Вашей машины. У меня есть основательная причина желать этого" . В письме от 12 января 1841 года она излагает свои планы: "…Некоторое время в будущем (может быть в течение 3-х или 4-х, а возможно, даже многих лет) моя голова может служить Вам для Ваших целей и планов… Именно по этому вопросу я хочу серьёзно поговорить с Вами". Это предложение было с признательностью принято Бэббиджем. С того времени их сотрудничество не прерывалось и дало блестящие результаты.
В октябре 1842 года была опубликована статья Менабреа об Атналитической машине Бэббиджа, и Ада занялась её переводом. Впоследствии Бэббидж вспоминал, что, узнав о переводе, спросил Аду, почему она не написала самостоятельной статьи по этому вопросу, с которым была так хорошо знакома. На это леди Лавлейс ответила, что эта мысль не пришла ей в голову. Тогда Бэббидж предложил ей написать примечания к этой статье, и она приняла эту идею.

План и структуру примечаний они вырабатывали совместно. Закончив очередное примечание, Ада отсылала его Бэббиджу, который редактировал его, делал различные замечания и отсылал.

Центральным моментом работы Лавлейс было составление программы вычисления чисел Бернулли. Она пишет Бэббиджу: "Я хочу вставить в одно из моих примечаний кое-что о числах Бернулли в качестве примера того, как неявная функция может быть разрешимой с помощью машины без того, чтобы предварительно быть вычисленной с помощью головы и рук человека". Бэббидж не только прислал необходимые данные, но и составил последовательность действий, лежащую в основе программы. Однако при этом он допустил ошибку, обнаруженную Адой. Об окончании составления программы она известила его 19 июля. 28 июля Лавлейс восторженно пишет Бэббиджу: "Я счастлива узнать, что мои Примечания требуют фактически мало исправлений. Сказать честно, они удивили меня…, хоть речь идёт обо мне самой. Они действительно написаны прекрасным стилем, который превосходит стиль самого очерка" .

Скромные по названию "Примечания переводчика" более чем вдвое превышают текст переведённой статьи (статья Менабреа занимает 20 страниц, а примечания – 50). Всего 8 примечаний, посвящённых, в основном, трём взаимосвязанным вопросам уточнения и пояснения для читателя некоторых принципов и особенностей работы аналитической машины; рассмотрение теоретических возможностей машины; программирование решения задач на этой машине.

В примечании А Лавлейс сравнивает две машины – разностную и аналитическую. Она отмечает, что вычислительная машина представляет собой совершенно иную область науки и техники и уделяет внимание выработке соответствующей терминологии. По определению Лавлейс, аналитическая машина представляет собой воплощение науки об операциях и сконструирована специально для действий над абстрактными числами как объектами этих операций. "Под словом операция, - пишет Лавлейс, - мы понимаем любой процесс, который изменят взаимное отношение двух или более вещей, какого рода эти отношения ни были бы. Это наиболее общее определение (охватывающее все предметы во Вселенной). Операционный механизм может быть приведён в действие независимо от объекта, над которым производится операция. … Этот механизм может действовать не только над числами, но и над другими объектами, основные соотношения между которыми могут быть выражены с помощью абстрактной науки об операциях и которые могут быть приспособлены к действию операционных обозначений и механизма машины. Предположим, например, что соотношения между высотами звуков в гармонии и музыкальной композиции поддаются такой обработке; тогда машина сможет сочинять искусно составленные музыкальные произведения любой сложности или длительности".

Последнее замечание Лавлейс удивительно. По существу, она впервые в научном плане (и вполне обоснованно) ставит вопрос о возможности получения с помощью вычислительной машины результатов, аналогичных результатам, полученным в процессе художественного творчества. В основном же примечание Ады относятся к сравнительной оценке двух машин. Лавлейс пишет, что аналитическая машина по сравнению с разностной играет такую же роль, какую математический анализ по отношению к арифметике. Лавлейс делает принципиальный вывод об отсутствии ограничений для математических возможностей аналитической машины. В терминах 20 века можно было бы сказать об алгоритмической универсальности аналитической машины: любой алгоритм в принципе может быть реализован.

В примечании В Лавлейс рассматривает запоминающие устройства (склад) аналитической машины и покрывает возможность записи в любом регистре любого числа. Она поясняет читателю, что "склад" аналитической машины представляет собой (пользуясь современной терминологией) оперативное устройство (запоминающее), позволяющее записывать, стирать, хранить и извлекать любые числа, над которыми можно произвести любую последовательность арифметических операций, причём на всех этапах сохранять промежуточные результаты вычислений.

В примечании С Лавлейс объясняет читателю изобретённый Бэббиджем и упомянутый в статье Менабреа способ возврата одиночной перфокарты или группы перфокарт с целью их повторного использования любое число раз. Повторное использование имеет существенное значение, т.к. при решении задач очень часто возникает необходимость в многократном повторении той или иной последовательности команд. Возможность такого повторения значительно упрощает составление программы.

Примечание D представляет существенный интерес для истории программирования. Здесь приведена программа машинного решения системы двух линейных уравнений с двумя неизвестными. Лавлейс впервые применяет термин "рабочая переменная", эквивалентный современному – "рабочая ячейка". Этот термин Лавлейс использует для обозначения трёх типов колонок памяти: с заранее установленными данными, хранящие конечные результаты вычислений, содержащие промежуточные результаты вычислений. Эти виды рабочих ячеек выделяются и в современных руководствах по программированию. Лавлейс предлагает при выполнении операции сложения её результат записывать на ту же колонку памяти, где до этого хранилось одно из слагаемых (делается для экономии памяти).

В примечании Е Лавлейс уточняет и развивает соображения Менабреа о возможности расчёта на аналитической машине функций вида: Y= a + bx , Y = A + BcosX. Здесь Лавлейс формулирует: "Многие лица, недостаточно знакомые с математикой, считают, что роль машины сводится к получению результатов в цифровой форме, а природа самой обработки данных должна быть арифметической и аналитической. Это заблуждение. Машина может обрабатывать и объединять цифровые величины точно так, как если бы они были буквами или любыми другими символами общего характера, и фактически она может выдать результаты в алгебраической форме" . В этом же примечании Лавлейс впервые вводит понятие цикла операций, а также понятие цикла циклов.

В примечании F содержится, в частности, интересное замечание Лавлейс о возможностях аналитической машины получать решение такой задачи, которую из-за трудностей вычислений практически невозможно решить вручную. Здесь (устройство) машина рассматривается не как устройство, заменяющее человека, а как устройство, способное выполнять работу, превышающую практические возможности человека.

В заключительном примечании G дана программа вычисления чисел Бернулли, в которой Лавлейс продемонстрировала возможность программирования на аналитической машине. Примечание G интересно ещё и в другом отношении. Широкую известность получило высказанное Лавлейс мнение о принципиальных возможностях аналитической машины: ”Аналитическая машина не претендует на то, чтобы создавать что-то действительно новое. Машина может выполнить всё то, что мы умеем ей предписать. Она может следовать анализу. Но она не может предугадать какие-либо аналитические зависимости или истины. Функции машины заключаются в том, чтобы помочь нам получить то, с чем мы уже знакомы“ .

Это высказывание сделано в конце девятнадцатого века, когда не было никаких компьютеров, но даже сегодня по этому вопросу мы остались на том же уровне: компьютеры выполняют написанные программы, но не создают ничего нового. Пока никто не смог создать ЭВМ и программное обеспечение для неё, которое обладало бы творческими возможностями. Однако широко распространились программы с "псевдоинтеллектом", но это результат лишь хорошо продуманного алгоритма.
Ада Лавлейс не только дала описание аналитической машины, но и сделала глубокий анализ ее особенностей. Она настолько хорошо понимала его работу, что описала принцип действия аналитической машины с чёткостью, которой не ожидал сам Бэббидж. Он неоднократно повторял, что представления Лавлейс о его работе были яснее, чем его собственные.

Усвоив идеи Бэббиджа и обладая глубокими познаниями в математике, Лавлейс с большой энергией проповедует эти идеи, стремясь сделать их широко известными и понятными, стараясь заинтересовать учёных работами Бэббиджа. Она организовывает целую компанию по популяризации машины и достигает успехов: часть их "детища" была построена. Ада Лавлейс высказала ряд идей, получивших широкое применение только в настоящее время. Основной итог её работы – создание основ программирования на универсальных цифровых вычислительных машинах.

В память об Аде Лавлейс назван разработанный в 1980 году язык АДА – один универсальных языков программирования. Этот язык был широко распространён в США, и Министерство Обороны США даже утвердило название “Ада”, как имя единого языка программирования для американских вооруженных сил, а в дальнейшем и для всего НАТО.

Несмотря на то, что машина Чарльза Бэббиджа так и не была построена, а программа Ады Лавлейс никогда не использовалась на практике, имена этих людей навсегда вписаны в историю развития вычислительной техники. Они сделали нечто более главное, – они заложили основы программирования и вычислительной техники, т.е. это были первые шаги человечества по этому пути[1].

Литература


  1. Реферат «Выдающиеся личности в истории вычислительной техники. Августа Ада Лавлейс», http://www.erudition.ru/referat/ref/id.35701_1.html

  2. Википедия, http://ru.wikipedia.org/wiki/%D0%9B%D0%B0%D0%B2%D0%BB%D0%B5%D0%B9%D1%81_%D0%90.

Добавить документ в свой блог или на сайт

Похожие:

Ада Лавлейс и принципы программирования iconАда Лавлейс: Полет на крыльях математики
Вся ее жизнь была апофеозом великой битвы между миром эмоций и миром логики, между субъективным и объективным, между поэзией и математикой,...

Ада Лавлейс и принципы программирования icon«Алгоритм» и«Об­щие принципы работы эвм»
Программы: «Алгоритмизация и основы программирования» и «Общие принципы организа­ции и работы компьютера»

Ада Лавлейс и принципы программирования iconАрхитектура и принципы программирования потоковых вычислительных систем
Потоковая (data flow) обработка информации и соответствующие способы организации процесса вычислений известны уже около 50 лет (первая...

Ада Лавлейс и принципы программирования iconУчебная программа курса или дисциплины «Основы программирования»
В частности, в курсе рассматриваются основные конструкции языков программирования, анализируются основные типы и структуры данных,...

Ада Лавлейс и принципы программирования iconРабочая программа по курсу «основы программирования на с++»
Программа предназначена для обучения программирования на языке С++ учреждений начального профессионального образования для овладения...

Ада Лавлейс и принципы программирования iconКнига небес и ада ocr busya «Хорхе Луис Борхес, Адольфо Биой Касарес «Книга небес и ада»
«Хорхе Луис Борхес, Адольфо Биой Касарес «Книга небес и ада»»: Симпозиум; с-пб.; 2001

Ада Лавлейс и принципы программирования iconОткровение небес и ада семи Колумбийских подростков
Все вместе они были взяты Иисусом Христом и видели небеса и ад. Послушайте их свидетельство о красоте небес и мучениях ада. Из-за...

Ада Лавлейс и принципы программирования iconРабочая программа по курсу «основы Программирования на языке ассемблер»
Программа предназначена для обучения основам программирования на языке низкого уровня Ассемблере учащихся средних школ, учреждений...

Ада Лавлейс и принципы программирования iconИнформационных технологий и программирования
Класс StatusEvent 10 Глава Применение генетического программирования для построения управляющих автоматов 12

Ада Лавлейс и принципы программирования iconКонспект лекций доцента и. А. Волковой по курсу «системы программирования»
Система программирования – комплекс программных инструментов и библиотек, который поддерживает создание и существование программного...



Образовательный материал



При копировании материала укажите ссылку © 2013
контакты
lit-yaz.ru
главная страница