Автор работы: Пользователь скрыл имя, 27 Марта 2012 в 17:36, реферат
1835—1900-е: первые программируемые машины
Определяющая особенность «универсального компьютера» — это программируемость, что позволяет компьютеру эмулировать любую другую вычисляющую систему всего лишь заменой сохранённой последовательности инструкций.
В 1835 году Чарльз Бэббидж описал свою аналитическую машину. Это был проект компьютера общего назначения, с применением перфокарт в качестве носителя входных данных и программы, а также парового двигателя в качестве источника энергии. Одной из ключевых идей было использование шестерней для выполнения математических функций.
Часть Разностной машины Бэббиджа, собранная после его смерти сыном из частей, найденных в лаборатории
переноса к месту слева от высшего разряда числа и в тех случаях, когда нужно
пройти через ноль; если такое указание не было сделано, раздается звонок и
машина останавливается.
Для аналитической машины было разработано и нарисовано несколько вариантов
выполнения операции умножения. Один из них относится к умножению много
разрядных чисел с помощью последовательных сложений. Для машины этот метод
был подробно разработан, причем был подготовлен ряд чертежей, поясняющих
действие механизмов.
При перемножении двух чисел, каждое из которых с любым числом знаков от
одного до тридцати, необходимо для экономии времени установить, какой из
сомножителей имеет меньшее число значащих цифр. Для этого были разработаны
специальные механизмы, названные цифровыми счетными устройствами. Меньшее из
двух чисел становится множителем. Оба числа вводятся в арифметическое
устройство и размещаются на соответствующих колонках. При выполнении
умножения способом последовательных сложений цифры множителя соответственно
уменьшаются до нуля; во время проведения операции для любой одной цифры
множителя эксцентрик на его колесе выталкивает рычаг, который разрывает связь
и систему зацепления для сложения, происходит просто ход; при этом следующий
оборот главной оси связан с ходом вместо сложения; затем связи
восстанавливаются, и последовательные сложения продолжаются.
Бэббидж разработал несколько вариантов выполнения операций деления на машине,
в том числе при помощи таблиц. Все разработки сопровождались теоретическими
расчетами и рисунками. Наиболее эффективным оказался метод последовательного
вычитания: делитель и делимое вводятся в счетное устройство, затем
производится последовательное вычитание, число вычитания записывается.
Бэббидж впервые предложил идею программного управления ходом вычислений. В
связи с этим самой важной характеристикой аналитической машины, которую не
оценил сам ученый, стала возможность выполнения команды, получившая в
настоящее время название команды условного перехода. Суть ее заключается в
следующем: при программировании математику нет необходимости знать, на какой
ступени расчета изменится признак, который оказывает влияние на выбор хода
расчета. Математик инструктирует машину, которая самостоятельно выбирает, по
какому пути идти в случае появления определенного или нескольких признаков;
программу можно составить совершенно различными способами: предусмотреть ее
продолжение, перейти к другой части, пропустив ряд инструкций, попеременно
переходить к разным частям программы и т. д.
Введение операции условного перехода знаменовало собой начало замены
логических, а не только вычислительных, возможностей человека машинами. С
кодом условного перехода в вычислительных машинах связан и принцип обратной
связи. Информационная обратная связь осуществляется между арифметическим
устройством и устройством управления: изменение результата в арифметическом
устройстве обуславливает выбор устройством управления той или иной команды
для дальнейшего выполнения. Рассмотрим простой пример. Необходимо выбрать
из двух чисел большее и продолжать с ним работать дальше. Числа должны быть
помещены в двух колонках памяти, заранее подготовленных для их принятия; для
этого перфокарты должны быть поставлены так, чтобы числа вычитались друг из
друга. В одном случае должен получиться остаток, в другом — перенос,
связанный с движением рычага. При переносе рычаг перемещается в самое
высокое положение, соответствующее отрицательному результату, что в свою
очередь позволяет ввести в работу массив предварительно подготовленных карт.
Для вывода данных из аналитической машины предусматривалось использование
перфокарт. Кроме того, машина должна была печатать на бумаге конечные и
промежуточные результаты, по желанию вычислителя, в одном или в двух
экземплярах. Г. Бэббидж писал, что печатание было совершенно необходимым
требованием, без выполнении которого вычислительную машину нельзя было
применять для научных целей. Постоянная опасность ошибок при переписывании
чисел делала сомнительным получение точных результатов без применения
печатающих устройств. С помощью механизма, предложенного Бэббиджем, машина
должна набирать цифры или буквы и печатать результаты расчета или таблицы
чисел.
Бэббидж предлагал также создать механизм для перфорирования цифровых
результатов на бланке или металлических пластинках. Для хранения информации
в памяти ученый собирался использовать не только перфокарты, но и
металлические диски, которые будут поворачиваться на оси. Металлические
пластинки и металлические диски могут теперь рассматриваться нами как далекие
прототипы магнитных карт и магнитных дисков.
Только в одном отношении аналитическая машина не была автоматической.
Функции, записанные таблично, должны были быть заранее отперфорированы.
Предвосхищая будущее вычислительных машин, Бэббидж писал: «Кажется наиболее
вероятным, что она рассчитывает гораздо быстрее по соответствующим формулам,
чем пользуясь своими же собственными таблицами». И действительно, в
современных вычислительных машинах существует обширная библиотека
стандартных подпрограмм, с помощью которой рассчитываются функции различной
степени сложности. Интересно, что термин «библиотека» для данного применения
также был впервые употреблен Чарльзом Бэббиджем. О результатам разработки
аналитической машины было сделано свыше 200 весьма подробных, выполненных в
масштабе, чертежей машины и ее отдельных узлов, в общей сложности включающих
50 000 деталей. Некоторые из этих чертежей были выгравированы на деревянных
досках, и с них по методу, предложенному Бэббиджем, были сделаны оттиски.
Среди этих оттисков, получивших некоторое распространение, отметим
следующие: план зацепления цифровых колес для выполнения операции сложения;
разрез колес и осей; разрез корпуса машины; узел сложения; план механизма
переноса десятков; часть разреза блока предварительного переноса и другие.
Все эти рисунки были выполнены в середине 30-х годов. В 1840 г. Бэббидж
составил один из наиболее общих планов аналитической машины, который был
литографирован. На этой литографии стоит дата 6 августа 1840 г. С чертежами
аналитической машины Бэббидж ознакомил ученых Великобритании и других стран.
Возможности аналитической машины в «Примечаниях переводчика» А. Лавлейс. Она
отмечает, что вычислительные машины представляют собой совершенно новую
область науки и техники и много внимания уделяет выработке соответствующей
терминологии. Лавлейс указывает, что аналитическая машина может работать не
только с числами: «Предположим, например, что основные соотношения о высоте
звуков в науке о гармонии и музыкальной композиции достигли бы большой
выразительности и поддавались бы такой обработке, что машина смогла бы
соединять искусно написанные музыкальные отрывки любой степени сложности или
длины».
Лавлейс пишет, что аналитическая машина по отношению к разностной играет
такую же роль, какую играет анализ по отношению к арифметике. Разностная
машина могла выполнять только сложение. Аналитическая же машина могла
выполнять все четыре действия арифметики непосредственно. Разностная машина
могла производить только табулирование, аналитическая же машина много
различных операций.
Потом Лавлейс рассматривает запоминающее устройство аналитической машины и
предлагает систему графического обозначения данных, содержащихся в регистре
памяти. Например, кружок предлагается для записи в нем знака числа, квадрат —
для записи символа переменной, значение которой хранится в регистре и т. д.
Далее Лавлейс впервые вводит понятие цикла операций (т. е. повторяемости
группы операций) при машинном решении задач, а также понятия цикла циклов (т.
е. кратных циклов). Как известно, оба понятия широко используются в
современном программировании.
В примечании Р содержится, в частности, интересное замечание Лавлейс о
возможностях аналитической машины получить решение такой задачи, которую из-за
трудности вычислений практически невозможно решить вручную. Новизна мысли
заключается в том, что машина рассматривается не как устройство, заменяющее
человека, а как устройство, способное выполнить работу, превышающую
практические возможности человека. Заметим что значение современных ЭВМ для
научно-технического прогресса основано именно на том, что они в ряде случаев
выполняют работу, которую без ЭВМ выполнить невозможно.
В заключительном примечании дана программа вычисления чисел Бернулли, в
которой Лавлейс продемонстрировала возможности программирования на
аналитической машине, рассмотренные в предыдущих примечаниях (циклические
операции, циклы в цикле и др.). Таким образом возможность решения сложных
задач с помощью аналитической машины была убедительно показана на конкретном
примере.
Широкую известность получило замечание Лавлейс о принципиальных возможностях
аналитической машины: «Аналитическая машина не претендует на то, чтобы
создавать что-то действительно новое. Машина может выполнить все то, что мы
умеем ей предписать. Она может следовать анализу, но она не может
предугадать какие-либо аналитические зависимости или истины. Функции машины
заключаются в том, чтобы помочь нам получить то, с чем мы уже знакомы».
Хотя Бэббидж написал свыше 70 книг и статей по различным вопросам, а также
составил большее число неопубликованных описаний аналитической машины, но
полного и доступного описания и, главное, анализа возможностей машины для
решения различных задач он так и не сделал. Бэббидж говорил, что слишком
занят разработкой машины, чтобы уделять время ее описанию. Работа Лавлейс не
только заполнила этот пробел, но и содержала глубокий анализ особенностей
аналитической машины. Важный итог работы Лавлейс заключается в создании основ
программирования на универсальных цифровых вычислительных машинах.
1801: появление перфокарт
В 1801 году Жозеф Мари Жаккар разработал ткацкий станок, в котором вышиваемый узор определялся перфокартами. Серия карт могла быть заменена, и смена узора не требовала изменений в механике станка. Это было важной вехой в истории программирования.
В 1890 году Бюро Переписи США использовало перфокарты и механизмы сортировки (табуляторы[1]), разработанные Германом Холлеритом, чтобы обработать поток данных десятилетней переписи, переданный под мандат в соответствии с Конституцией. Компания Холлерита в конечном счёте стала ядром IBM. Эта корпорация развила технологию перфокарт в мощный инструмент для деловой обработки данных и выпустила обширную линию специализированного оборудования для их записи. К 1950 году технология IBM стала вездесущей в промышленности и правительстве. Предупреждение, напечатанное на большинстве карт, «не сворачивать, не скручивать и не рвать», стало девизом послевоенной эры.