Нулевое поколение — механические компьютеры (1642-1945)

 

Первым человеком, создавшим счетную машину, был французский ученый Блез Паскаль (1623-1662), в честь которого назван один из языков программирова­ния. Паскаль сконструировал эту машину в 1642 году, когда ему было всего 19 лет, для своего отца, сборщика налогов. Это была механическая конструкция с шестеренками и ручным приводом. Счетная машина Паскаля могла выполнять только операции сложения и вычитания.

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

Еще через 150 лет профессор математики Кембриджского Университета, Чарльз Бэббидж (1792-1871), изобретатель спидометра, разработал и сконструировал разностную машину. Эта механическая машина, которая, как и машина Паскаля, могла лишь складывать и вычитать, подсчитывала таблицы чисел для морской навигации. В машину был заложен только один алгоритм — метод конечных раз­ностей с использованием полиномов. У этой машины был довольно интересный способ вывода информации: результаты выдавливались стальным штампом на медной дощечке, что предвосхитило более поздние средства ввода-вывода — перфокарты и компакт-диски.

Хотя его устройство работало довольно неплохо, Бэббиджу вскоре наскучила машина, выполнявшая только один алгоритм. Он потратил очень много времени, большую часть своего семейного состояния и еще 17 ООО фунтов, выделенных пра­вительством, на разработку аналитической машины. У аналитической машины было 4 компонента: запоминающее устройство (память), вычислительное устрой­ство, устройство ввода (для считывания перфокарт), устройство вывода (перфо­ратор и печатающее устройство). Память состояла из 1000 слов по 50 десятичных разрядов; каждое из слов содержало переменные и результаты. Вычислительное устройство принимало операнды из памяти, затем выполняло операции сложения, вычитания, умножения или деления и возвращало полученный результат обратно в память. Как и разностная машина, это устройство было механическим.

Преимущество аналитической машины заключалось в том, что она могла вы­полнять разные задания. Она считывала команды с перфокарт и выполняла их. Некоторые команды приказывали машине взять 2 числа из памяти, перенести их в вычислительное устройство, выполнить над ними операцию (например, сло­жить) и отправить результат обратно в запоминающее устройство. Другие ко­манды проверяли число, а иногда совершали операцию перехода в зависимости от того, положительное оно или отрицательное. Если в считывающее устройство вводились перфокарты с другой программой, то машина выполняла другой на­бор операций. То есть в отличие от разностной аналитическая машина могла вы­полнять несколько алгоритмов.

Поскольку аналитическая машина программировалась на элементарном ас­семблере, ей было необходимо программное обеспечение. Чтобы создать это про­граммное обеспечение, Бэббидж нанял молодую женщину — Аду Августу Лов-лейс (Ada Augusta Lovelace), дочь знаменитого британского поэта Байрона. Ада Ловлейс была первым в мире программистом. В ее честь назван современный язык программирования — Ada.

К несчастью, подобно многим современным инженерам, Бэббидж никогда не отлаживал компьютер. Ему нужны были тысячи и тысячи шестеренок, сделан­ных с такой точностью, которая в XIX веке была недоступна. Но идеи Бэббиджа опередили его эпоху, и даже сегодня большинство современных компьютеров по конструкции сходны с аналитической машиной. Поэтому справедливо будет ска­зать, что Бэббидж был дедушкой современного цифрового компьютера.

В конце 30-х годов немец Конрад Зус (Konrad Zuse) сконструировал несколь­ко автоматических счетных машин с использованием электромагнитных реле. Ему не удалось получить денежные средства от правительства на свои разработ­ки, потому что началась война. Зус ничего не знал о работе Бэббиджа, его маши­ны были уничтожены во время бомбежки Берлина в 1944 году, поэтому его рабо­та никак не повлияла на будущее развитие компьютерной техники. Однако он был одним из пионеров в этой области.

Немного позже счетные машины были сконструированы в Америке. Машина Джона Атанасова (John Atanasoff) была чрезвычайно развитой для того времени. В ней использовалась бинарная арифметика и информационные емкости, кото­рые периодически обновлялись, чтобы избежать уничтожения данных. Совре­менная динамическая память (ОЗУ) работает по точно такому же принципу. К несчастью, эта машина так и не стала действующей. В каком-то смысле Атана-сов был похож на Бэббиджа — мечтатель, которого не устраивали технологии своего времени.

Компьютер Джорджа Стибитса (George Stibbitz) действительно работал, хотя и был примитивнее, чем машина Атанасова. Стибитс продемонстрировал свою машину на конференции в Дартмутском колледже в 1940 году. На этой конфе­ренции присутствовал Джон Моушли (John Mauchley), ничем не примечатель­ный на тот момент профессор физики из университета Пенсильвании. Позднее он стал очень известным в области компьютерных разработок.

Пока Зус, Стибитс и Атанасов разрабатывали автоматические счетные машины, молодой Говард Айкен (Howard Aiken) в Гарварде упорно проектировал ручные счетные машины в рамках докторской диссертации. После окончания исследования

Айкен осознал важность автоматических вычислений. Он пошел в библиотеку, прочитал о работе Бэббиджа и решил создать из реле такой же компьютер, кото­рый Бэббиджу не удалось создать из зубчатых колес.

Работа над первым компьютером Айкена «Магк I» была закончена в 1944 го­ду. Компьютер имел 72 слова по 23 десятичных разряда каждое и мог выполнить любую команду за 6 секунд. В устройствах ввода-вывода использовалась перфо­лента. К тому времени, как Айкен закончил работу над компьютером «Магк II», релейные компьютеры уже устарели. Началась эра электроники.

Таненбаум Э. Архитектура компьютера. 5-е изд. (+CD). — СПб.: Питер, 2007. — 844 с: ил.

Предлагаю ознакомиться с аналогичными статьями: