8 лет назад 16 декабря 2015 в 16:30 3795

Дмитрий Румянцев

В конце 1936 года некто Вильгельм Кениг — немецкий инженер, которому было поручено построить в Багдаде канализацию, обнаружил в местном музее в куче хлама, помеченного как предметы культа», некие заинтересовавшие его поделки, датированные III веком н. э. Это были глиняные сосуды с медным цилиндром и металлическим стержнем внутри. Сосуды носили следы коррозии, как будто были разъедены кислотой. Кениг не без удивления идентифицировал эти сосуды как гальванические батареи и пришел к выводу, что они соединялись последовательно для получения тока, который мог использоваться для гальванического покрытия позолотой ювелирных изделий.

Это открытие пришлось некстати… Европейские ученые попросту проигнорировали его. В самом деле, после более, чем века, опытов с электричеством и разных помпезных самодифирамбов по поводу технического прогресса, цивилизации и локомотива истории вдруг обнаружить, что электричество использовалось уже полторы тысячи лет тому назад! Да еще кем — какими-то персами, прости, Господи. Нет, этого не могло быть, потому что не могло быть никогда! В общем, Вильгельм Кениг не снискал даже малой толики славы Шлимана. Да и электричество было уже не актуально. На повестке дня стояли вопросы создания вычислительной техники, которая должна была приводиться в действие этим самым электричеством.

В то время, как Вильгельм Кениг трудился над прокладкой канализации в Багдаде, его соотечественник Конрад Цузе занимался проектированием самолетов в солидной немецкой фирме Henschel Aircraft. Поскольку в его задачу входил расчет оптимальной конфигурации крыльев, что требовало обилия муторных вычислений, Цузе крепко призадумался над вопросом создания какого-нибудь вычислительного устройства, способного эти расчеты автоматизировать. Результатами размышлений Цузе явились следующие предположения о принципах, которые следует реализовать при создании вычислительного устройства: использование двоичной системы счисления: использование устройств, работающих по принципу «да / нет» (логические 1 и 0, то есть Булева алгебра): полностью автоматизированный процесс работы вычислителя: программное управление процессом вычислений; поддержка арифметики с плавающей запятой; использование памяти большой емкости..

Если сравнить эти принципы с идеями Чарльза Бэббиджа и Ады Лавлейс, то многое в них оказывается сходным, хотя при этом Цузе ничего не знал о работах Бэббиджа. Что еще любопытно, первым в мире Конрад Цузе осознал, что для обработки информации необходимо оперировать понятием ее количества (хотя самого понятия Цузе так и не сформулировал), за единицу которой он взял так называемый да / нет статус , то. что мы сегодня называем битом. Он первым объединил в вычислителе арифметическое и логическое устройство (один из главных узлов современных процессоров — АЛУ, арифметико-логическое устройство) и ввел понятие машинного слова”.

В 1936 году Цузе запатентовал идею механической памяти и приступил к созданию своей первой вычислительной машины, названной им Versuchsmodell-1 — V-1 (Фау-1), но позднее он переименовал свое детище в Z-1, поскольку первоначальная аббревиатура совпала с названием немецких ракет, с помощью которых обстреливались английские города. Оригинальным было устройство ввода программы — перфорированная целлулоидная 35- миллиметровая пленка. Это «устройство Конраду Цузе помог создать его друг — киномеханик.

Z-1 была закончена в 1938 году. Эта конструкция заинтересовала людей из ведомства Геринга, и работу по созданию следующей модели. Z-2, взялся финансировать Институт аэродинамических исследований Третьего рейха. Поскольку механическую память предыдущей модели периодически глючило, за элементную базу Z-2 Конрад Цузе взял электромагнитные телефонные реле. Релейный компьютер Z-2 был построен в апреле 1939 года и работал стабильно. Но началась Вторая Мировая война, и Цузе был призван в армию. Прослужив год (после успешной кампании во Франции в мае-июне 1940 года Гитлер отдал приказ о частичной демобилизации), он вернулся в институт и сразу же занялся созданием еще более мощного Z-3.

Z-3 был закончен 5 декабря 1941 года и по праву может считаться самым первым в истории действующим электрическим компьютером, правда, на релейной базе. Оперативная память Z-3 позволяла хранить 64 машинных слова (машинное слово Z-3 равнялось 22 битам), для чего использовалось 1400 реле. На арифметическое устройство и устройство управления пошло еще около 1000 реле. Z-3 выполнял 3-4 операции сложения в секунду, а умножение двух чисел — за 5 секунд. Подождите смеяться, скорость работы Z-3 ничуть не уступала скорости обработки информации в машине Mark-I, созданной в США на несколько лет позже, а обработка чисел с плавающей запятой выполнялась даже эффективнее.

Конрад Цузе создавал свои компьютеры в условиях Второй Мировой войны, поэтому нет ничего удивительного, что как он ничего не знал про аналогичные работы своих английских и американских коллег, так и те даже не имели представления о том, что есть в Германии такой замечательный инженер, который построил вполне работоспособный компьютер на электрических схемах. Поэтому в Англии и США работы по созданию ЭВМ шли своим путем.

В 1937 году в США была опубликована работа «О вычислимых числах, с приложением к проблеме разрешимости» 25-летнего математика из Принстонского университета Алана Тьюринга. Главный пафос этой работы был направлен на борьбу с теорией о том, что всю математику можно свести к набору аксиом и получаемых на их основе теорем. К истории вычислительной техники эта работа имеет самое прямое отношение, ибо для своей системы доказательств Тьюринг применил некий гипотетический алгоритмический автомат, который с тех пор называется не иначе, как «машина Тьюринга». Хотя, с другой стороны, если бы Алан Тьюринг — без сомнения очень крупный математик (стоит ли упоминать, что с детства он увлекался астрономией?) — не ввел понятия алгоритмического автомата», то современные компьютеры появились бы и так. Во всяком случае, уже Конрад Цузе разработал вполне современный алгоритмический язык высокого уровня (см. врезку «Первый алгоритмический язык”).

Работами Тьюринга и Цузе отнюдь не исчерпывается период пра-ЭВМ (если так можно выразиться) — электронно-вычислительных машин, появившихся в конце 30-х — начале 40-х годов XX века еще до нормальных ЭВМ. В 1939 году американский физик болгарского происхождения Джон Винсент Атанасов вместе со своим ассистентом Клиффордом Э. Берри построили и испытали модель ЭВМ. В отличие от электромеханической машины Конрада Цузе, машина Атанасова (она получила название ABC — Atanasoff Berry Computer) была полностью ламповой, то есть, если говорить о создании собственно электронно-вычислительной машины, то пальму первенства следует отдать Атанасову.

Но ему не повезло: в 1939 году американское правительство как-то очень вяло интересовалось вычислительной техникой, и перейти от работающей модели до реального проекта Атанасову не удалось. Однако по описаниям ABC уже после войны другими людьми была построена другая машина — ENIAC (об этом я расскажу в следующей статье), а бедный Атанасов лишь в 1973 году через суд смог доказать, что это именно он является отцом ЭВМ. Ну да как говорится, лучше поздно, чем никогда. Собственно, из названия его детища также явствует, что заодно он является и автором термина «компьютер. Хотя… Суд такого вердикта не выносил.

Итак, как мы видим, уже в конце 30-х — начале 40-х годов XX века появились вполне работоспособные вычислительные машины, функционирующие не за счет мускульной энергии счетоводов, а использующие энергию таких малюсеньких-премалюсеньких отрицательно заряженных частичек, которые в атомах металлов так и норовят вырваться из своей кристаллической решетки и примазаться к соседнему атому, а то и вовсе улететь куда подальше (я имею в виду электроны, если кто не понял). Откуда, собственно, и имеем другое название компьютеров: электронно-вычислительные машины. Эти первые ЭВМ были разработаны и сделаны на основе тех же принципов, на которых построены и современные компьютеры, они также выполняли сложные вычисления (правда, не так быстро), но в целом для того времени являлись вполне сносной вычислительной техникой. Но было и принципиальное, можно даже сказать, фундаментальное отличие от современных компьютеров. И дело тут даже не в архитектуре.

Если подойти к делу вполне беспристрастно, то все, что изготавливалось до 50-х годов XX века, было ни чем иным, как очень громоздкими калькуляторами. Ну да, а какая, собственно, разница между компьютером и калькулятором? Огромная! Дело в том, что современный компьютер имеет дело с совершенно иными абстракциями представления. Калькулятор всего-навсего подсчитывает числа. И даже если этих чисел очень много, даже если вычисления с их использованием осуществляет какая-то программа, все равно они остаются только числами. А вот современный компьютер, хотя также может выполнять функции калькулятора, главной его задачей является обработка информации. Но прежде, чем это стало возможно, кто-то должен был крепко задуматься о том, что же такое информация. И такой человек нашелся. Американец Клод Шеннон, создавший в конце 40-х годов теорию информации. Без этого человека не было бы сегодня ни компьютеров, ни мобильных телефонов, ни «умных бытовых приборов и вообще ничего, кроме калькуляторов. 0 колоссальном вкладе Клода Шеннона в дело компьютеризации всего человечества мы тоже поговорим в следующий раз, а пока на досуге вы можете подумать на тему: “Информация: что это такое?».

 

Первый алгоритмический язык

После разгрома гитлеровской Германии Конрад Цузе на короткий срок был арестован, но, поскольку союзники не смогли доказать его причастность к секретным разработкам нацистов, через какое-то время был отпущен на свободу и оказался, как говорится, у разбитого корыта. Его машины были уничтожены, институт аэродинамических исследований Третьего рейха, по вполне понятным причинам, прекратил свое существование. И тогда Конрад Цузе вместе с математиком Лохмейером занялся теоретическими разработками.

В 1945 году Цузе создал первый в мире алгоритмический язык, который он назвал PlanKalkul. В этом языке Цузе реализовал идеи подпрограмм с параметрами. PlanKalkul не был привязан к архитектуре и наборам команд конкретного компьютера. В этом языке было введено понятие объекта (общедоступным программистским термином «объект» стал лишь с 70-х годов XX века). PlanKalkul позволял работать с массивами, более того, в этом языке предусматривалась возможность работы с массивами подпрограмм эта концепция реализуется только в наше время в распределенных системах.

В 50-х годах Конрад Цузе организовал собственную фирму Zuze KG по производству компьютеров и построил машину Z-11. Чуть позже появилась Z-22, программы на которой могли поддерживать общие алгоритмы вычислений и использовать произвольные структуры данных.

 

Война шифров

Тьюринга иногда называют первым хакером, ибо во время Второй Мировой войны он возглавлял работы по взлому шифров «Энигмы» — роторной шифровальной машины, созданной в 1917 году Эдвардом Хэберном и впоследствии доработанной берлинским инженером Артуром Кирхом. «Энигма» использовалась немцами для шифрования донесений. Англичане получили чертежи Энигмы» от поляков еще в 1939 году, но для успешного взлома шифра нужно было узнать схему распайки проводов в шифровальных колесах, и за Энигмой» началась самая настоящая охота. Первый образец англичане выкрали прямо с завода на юго-востоке Германии, второй сняли со сбитого над Норвегией немецкого бомбардировщика. Еще несколько штук были сняты водолазами с немецких потопленных подводных лодок. Для взлома шифра «Энигмы» Тьюринг создал специальный вычислительный агрегат под названием «Колосс». Немцы не предполагали, что их шифры будут ломать с применением специального вычислителя… а ушлые англичане спокойно читали немецкие шифровки.

Никто не прокомментировал материал. Есть мысли?