Реферат: Выдающиеся личности в истории вычислительной техники. Августа Ада Лавлейс
Начиная с 1844 года, Ада Лавлейс всё больше увлекается игрой на скачках, тем более, что сама прекрасно ездила и любила лошадей. На скачках играли и Бэббидж и Вильям Лавлейс, причём Бэббидж интересовавшийся прикладными вопросами теории вероятностей, рассматривал с этих позиций и игру на скачках и искал оптимальную систему игры. Однако и Бэббидж, и муж Ады сравнительно скоро отказались от участия в игре. Но Ада, сблизившись с неким Джоном Кроссом, упорно продолжала играть. Она израсходовала почти все принадлежащие ей средства и к 1848 году сделала большие долги. Потом её матери пришлось погасить эти долги, а заодно и выкупить компрометирующие письма у Джона Кросса. В начале 50-ых годов появлялись первые признаки болезни, унесшей жизнь Ады Лавлейс. В ноябре 1850 года пишет Бэббиджу: "Здоровье моё … настолько плохо, что я хочу принять Ваше предложение и показаться по приезде в Лондон Вашим медицинским друзьям" . Несмотря на принимаемые меры, болезнь прогрессировала и сопровождалась тяжёлыми мучениями. 27 ноября 1852 года Ада Лавлейс скончалась, не достигнув 37 лет. Она была погребена рядом с отцом в фамильном склепе Байронов.
4. ОСНОВНЫЕ ИДЕИ РАБОТЫ АДЫ ЛАВЛЕЙС "ПРИМЕЧАНИЯ ПЕРЕВОДЧИКА"
Скромные по названию "Примечания переводчика" более чем вдвое превышают текст переведённой статьи (статья Менабреа занимает 20 страниц, а примечания – 50). Всего 8 примечаний, посвящённых, в основном, трём взаимосвязанным вопросам уточнения и пояснения для читателя некоторых принципов и особенностей работы аналитической машины; рассмотрение теоретических возможностей машины; программирование решения задач на этой машине.
В примечании А Лавлейс сравнивает две машины – разностную и аналитическую. Она отмечает, что вычислительная машина представляет собой совершенно иную область науки и техники и уделяет внимание выработке соответствующей терминологии. По определению Лавлейс, аналитическая машина представляет собой воплощение науки об операциях и сконструирована специально для действий над абстрактными числами как объектами этих операций. "Под словом операция, - пишет Лавлейс, - мы понимаем любой процесс, который изменят взаимное отношение двух или более вещей, какого рода эти отношения ни были бы. Это наиболее общее определение (охватывающее все предметы во Вселенной). … Операционный механизм может быть приведён в действие независимо от объекта, над которым производится операция. … Этот механизм может действовать не только над числами, но и над другими объектами, основные соотношения между которыми могут быть выражены с помощью абстрактной науки об операциях и которые могут быть приспособлены к действию операционных обозначений и механизма машины. Предположим, например, что соотношения между высотами звуков в гармонии и музыкальной композиции поддаются такой обработке; тогда машина сможет сочинять искусно составленные музыкальные произведения любой сложности или длительности"/2/.
Последнее замечание Лавлейс удивительно. По существу, она впервые в научном плане (и вполне обоснованно) ставит вопрос о возможности получения с помощью вычислительной машины результатов, аналогичных результатам, полученным в процессе художественного творчества. В основном же примечание Ады относятся к сравнительной оценке двух машин. Лавлейс пишет, что аналитическая машина по сравнению с разностной играет такую же роль, какую математический анализ по отношению к арифметике. Лавлейс делает принципиальный вывод об отсутствии ограничений для математических возможностей аналитической машины. В терминах 20 века можно было бы сказать об алгоритмической универсальности аналитической машины: любой алгоритм в принципе может быть реализован.
Лавлейс по достоинству оценила значение изобретений, лежащих в основе ткацкого станка Жаккара (перфокарт и соответствующих механизмов) и применённых Бэббиджем для управления аналитической машины. Она образно описала значение перфокарт. "Карты только указывают сущность операций, которые должны быть совершены, и адреса переменных, на которые эти действия направлены. Можно сказать достаточно точно, что аналитическая машина ткёт алгебраические удары, как ткацкий станок Жаккара – цветы и листья"/2/.
В примечании В Лавлейс рассматривает запоминающие устройства (склад) аналитической машины и покрывает возможность записи в любом регистре любого числа. Она поясняет читателю, что "склад" аналитической машины представляет собой (пользуясь современной терминологией) оперативное устройство (запоминающее), позволяющее записывать, стирать, хранить и извлекать любые числа, над которыми можно произвести любую последовательность арифметических операций, причём на всех этапах сохранять промежуточные результаты вычислений.
В примечании С Лавлейс объясняет читателю изобретённый Бэббиджем и упомянутый в статье Менабреа способ возврата одиночной перфокарты или группы перфокарт с целью их повторного использования любое число раз. Повторное использование имеет существенное значение, т.к. при решении задач очень часто возникает необходимость в многократном повторении той или иной последовательности команд. Возможность такого повторения значительно упрощает составление программы.
Примечание D представляет существенный интерес для истории программирования. Здесь приведена программа машинного решения системы двух линейных уравнений с двумя неизвестными. Лавлейс впервые применяет термин "рабочая переменная", эквивалентный современному – "рабочая ячейка". Этот термин Лавлейс использует для обозначения трёх типов колонок памяти:
С заранее установленными данными,
Хранящими конечные результаты вычислений,
Содержащие промежуточные результаты вычислений.
Эти виды рабочих ячеек выделяются и в современных руководствах по программированию. Лавлейс предлагает при выполнении операции сложения её результат записывать на ту же колонку памяти, где до этого хранилось одно из слагаемых (делается для экономии памяти). Для обозначения такой операции она пользуется двумя формами записи. Более краткая форма Yn=Yp+Yn аналогична той, которая применялась в одном из алгоритмических языков – Фортране.
В примечании Е Лавлейс уточняет и развивает соображения Менабреа о возможности расчёта на аналитической машине функций вида: Y= a + bx , Y = A + BcosX. Здесь Лавлейс формулирует: "Многие лица, недостаточно знакомые с математикой, считают, что роль машины сводится к получению результатов в цифровой форме, а природа самой обработки данных должна быть арифметической и аналитической. Это заблуждение. Машина может обрабатывать и объединять цифровые величины точно так, как если бы они были буквами или любыми другими символами общего характера, и фактически она может выдать результаты в алгебраической форме" /2/. В этом же примечании Лавлейс впервые вводит понятие цикла операций, а также понятие цикла циклов.
В примечании F содержится, в частности, интересное замечание Лавлейс о возможностях аналитической машины получать решение такой задачи, которую из-за трудностей вычислений практически невозможно решить вручную. Здесь (устройство) машина рассматривается не как устройство, заменяющее человека, а как устройство, способное выполнять работу, превышающую практические возможности человека.
В заключительном примечании G дана программа вычисления чисел Бернулли, в которой Лавлейс продемонстрировала возможность программирования на аналитической машине.
Немалое значение для истории науки представляет вопрос: насколько точно и удачно Лавлейс реализовала свою идею – составление машинной программы для решения сравнительно сложной задачи? Проверить вручную подобную программу весьма затруднительно – желателен практический эксперимент на ЭВМ. Такой эксперимент был проведён в СССР в 1978 году на машине БЭСМ-6. Текст программы был закодирован на языке программирования Фортран в Дубне, отладка программы выявила одну ошибку и одну опечатку. И это вполне понятно, так как написать подобную работу без проверки на компьютере и без ошибок невозможно. Ещё один важный пункт – программа Лавлейс требует минимального количества перфокарт и обеспечивает экономию памяти.
Примечание G Интересно ещё и в другом отношении. Широкую известность получило высказанное Лавлейс мнение о принципиальных возможностях аналитической машины: ”Аналитическая машина не претендует на то, чтобы создавать что-то действительно новое. Машина может выполнить всё то, что мы умеем ей предписать. Она может следовать анализу. Но она не может предугадать какие-либо аналитические зависимости или истины. Функции машины заключаются в том, чтобы помочь нам получить то, с чем мы уже знакомы“ /2/.
Это высказывание сделано в конце девятнадцатого века, когда не было никаких компьютеров, но даже сегодня по этому вопросу мы остались на том же уровне: компьютеры выполняют написанные программы, но не создают ничего нового. Пока никто не смог создать ЭВМ и программное обеспечение для неё, которое обладало бы творческими возможностями. Однако широко распространились программы с "псевдоинтеллектом", но это результат лишь хорошо продуманного алгоритма.
5. ЗНАЧЕНИЕ РАБОТЫ АДЫ ЛАВЛЕЙС
Хотя Бэббидж написал свыше 70 книг и статей по различным вопросам, а также составил большое число неопубликованных описаний аналитической машины, полного и доступного описания и, главное, анализа возможностей машины для решения задач он так и не сделал. Бэббидж говорил, что слишком занят разработкой машины, чтобы уделять время её описанию.
Работа Лавлейс не только заполнила этот пробел, но и содержала глубокий анализ особенностей аналитической машины. Она настолько хорошо понимала его работу, что описала принцип действия аналитической машины с чёткостью, которой не ожидал сам Бэббидж. Он неоднократно повторял, что представления Лавлейс о его работе были яснее, чем его собственные.
Усвоив идеи Бэббиджа и обладая глубокими познаниями в математике, Лавлейс с большой энергией проповедует эти идеи, стремясь сделать их широко известными и понятными, стараясь заинтересовать учёных работами Бэббиджа. Она организовывает целую компанию по популяризации машины и достигает успехов: часть их "детища" была построена. Ада Лавлейс высказала ряд идей, получивших широкое применение только в настоящее время. Основной итог её работы – создание основ программирования на универсальных цифровых вычислительных машинах.
В память об Аде Лавлейс назван разработанный в 1980 году язык АДА – один универсальных языков программирования. Этот язык был широко распространён в США, и Министерство Обороны США даже утвердило название “Ада”, как имя единого языка программирования для американских вооруженных сил, а в дальнейшем и для всего НАТО.
6.ДЕЯНИЯ ГРЭЙС ХОППЕР
6.1. Грэйс Хопер