Москва.
April 25, 2002 9:26 PM
|
ГЕРМАНИЯ
Изобретатель компьютера
Сергей Бобровский
Таким титулом награжден немецкий инженер Конрад Цузе, родившийся
в 1910 г. и умерший в возрасте 85лет (более подробно его биография
описана в статье "Компьютерный музей", PC Week/RE, № 9/98,
с. 60).
В 30-х годах Цузе занимался проектированием самолетов в компании Henschel
Aircraft и ему приходилось выполнять огромные объемы вычислений для
определения оптимальной конструкции крыльев. |
|
В то время существовали только механические калькуляторы
с десятичной системой счисления, и Цузе заинтересовала проблема автоматизации
всего процесса вычислений, так как он вынужден был выполнять множество
однообразных рутинных расчетов по заданной схеме. В 1934 г. Цузе придумал
модель автоматического калькулятора, которая состояла из устройства управления,
вычислительного устройства и памяти и полностью совпадала с архитектурой
сегодняшних компьютеров.
В те годы Цузе пришел к выводу, что будущие компьютеры будут основаны
на шести принципах:
- двоичная система счисления;
- использование устройств, работающих по принципу "да/нет"
(логические 1 и 0);
- полностью автоматизированный процесс работы вычислителя;
- программное управление процессом вычислений;
- поддержка арифметики с плавающей запятой;
- использование памяти большой емкости
|
.
|
Цузе оказался абсолютно прав. Он первым в мире сказал, что
обработка данных начинается с бита (бит он называл да/нет-статусом, а
формулы двоичной алгебры - условными суждениями), первым ввел термин "машинное
слово" (word), первым объединил в вычислителе арифметические и логические
операции, отметив, что "элементарная операция компьютера - проверка
двух двоичных чисел на равенство. Результатом будет тоже двоичное число
с двумя значениями (равно, не равно)". При этом Цузе не имел никакого
представления не только об аналогичных исследованиях коллег в США и Англии,
но даже о механическом вычислителе Чарльза Бэббиджа, созданном в XIX веке.
В 1936 г. Цузе запатентовал идею механической памяти. Год спустя он создал
работающую память для хранения 12 двоичных чисел по 24 бита и активно
занялся созданием первой версии своего вычислителя, которую он сначала
назвал Versuchsmodell-1 (V-1), но эта аббревиатура совпала с названием
немецких ракет V1, и тогда он переименовал свое творение в Z1. Арифметический
модуль мог работать с числами с плавающей запятой (фактически они состояли
из двух чисел: одно представляло собой 16-разрядную мантиссу, другое -
7-разрядную экспоненту), осуществлял преобразования двоичных чисел в десятичные
и обратно и поддерживал ввод и вывод данных. Устройство ввода программы
с помощью перфорированной киноленты сделал Хельмут Шрейер, друг Цузе,
который раньше работал киномехаником. Результаты расчетов показывались
с помощью электрических ламп. Z1 был закончен в 1938 г. и работал неустойчиво
из-за ненадежной механической памяти.
Вычислитель Z3 в Музее техники в Мюнхене
|
Трудами Цузе заинтересовалось руководство Института аэродинамических
исследований третьего рейха. Они взялись финансировать работы над
следующей моделью вычислителя Z2. В качестве более надежной элементной
базы Конрад выбрал электромагнитные телефонные реле, единственные
в то время устройства, пригодные для создания компьютера. Релейный
Z2 был построен в апреле 1939 г. и успешно заработал, но Цузе призвали
в армию, и хотя у него были очень влиятельные друзья, он отслужил
год, прежде чем вернулся обратно в институт. Там он приступил к проектированию
более мощной модели - Z3, потом снова был призван на фронт, но через
короткое время вернулся в институт окончательно. |
Цузе закончил Z3 5 декабря 1941 г. Ввод программы, представлявшей собой
последовательность довольно мощных логических команд, по-прежнему происходил
с перфорированной киноленты. Память Z3 позволяла хранить 64 слова (14 бит
на мантиссу, 7 бит на экспоненту и 1 бит на знак) и состояла из 1400 реле.
Для арифметического вычислителя потребовалось 600 реле, и еще 400 реле применялось
в устройстве управления. Z3 выполнял не только 4 арифметических операции,
но и вычисление квадратного корня, умножение на -1, 0,1, 0,5, 2 и 10. Скорость
работы Z3 была примерно равна скорости работы американского компьютера Harvard
Mark I, созданного в конце 40-х годов. Z3 выполнял 3-4 операции сложения
в секунду и умножал два числа за 4-5 секунд, позволяя при этом обрабатывать
числа с плавающей запятой более эффективно, чем Mark I.
Одновременно Цузе занимался проектированием механических устройств дистанционного
управления бомбами для повышения точности попадания в цель. Для создания
модели требовалось провести очень большие вычисления, и он сначала сделал
специализированный компьютер, выполнявший фиксированную последовательность
операций. Затем он решил также автоматизировать работу оператора, занимавшегося
вводом данных, и первым в мире сделал то, что сегодня называется аналогово-цифровым
преобразователем.
Из-за небольшого объема памяти на Z3 нельзя было решать, в частности, системы
линейных уравнений, а институту это требовалось. В 1941 г. Цузе решил разработать
более мощную модель - Z4. Он понимал все минусы своей машины и хотел создать
полноценный компьютер, которому, по оценкам самого Цузе, требовалась емкость
памяти как минимум 8 тысяч слов. Но немецкое руководство ответило ему, что
Германия так близка к победе, что компьютеры ей не нужны. Во время войны
все практические работы в этой области полностью прекратились. По окончании
войны Цузе на короткое время был арестован, но всю жизнь отрицал, что выполнял
какие-то секретные работы для правительства.
После войны Цузе временно остался не у дел. Z3 был разрушен, Z4 не закончен,
зарубежные компьютеры Mark I и ENIAK еще не работали, и он занялся теоретическими
исследованиями. Ему помогал математик Герр Лохмейер. Цузе попытался автоматизировать
игру в шахматы, описать правила игры в терминах логических вычислений. Сразу
возникли проблемы, хорошо известные сегодня специалистам по искусственному
интеллекту, - не было подходящего инструментария для работы со сложными
структурами данных. В 1945 г. Цузе создал первый в мире символический язык
Plankalkul (термина "алгоритмический язык" еще не существовало)
и технику трансляции адресов, кроме того, у него родились идеи использования
подпрограмм с параметрами. В то же время Цузе придумал название своему устройству
- логическая вычислительная машина.
В начале 50-х годов экономика Германии пошла на подъем. Цузе организовал
фирму Zuze KG, построил машину Z11 и использовал ее для решения задач перепланировки
земель, проектирования оптических приборов. Уже тогда возникли проблемы
создания хорошего ПО. Затем Цузе построил Z22, которая поддерживала общие
алгоритмы вычислений, могла работать с произвольными структурами данных,
имела достаточный объем памяти и была популярна у многих немецких инженеров
и ученых. Цузе полагал, что у него появятся заказы на расчеты от малых и
средних компаний, но они тогда не очень нуждались в подобных услугах, и
Zuze KG оказалась убыточной. Государственное финансирование работ в компьютерной
области началось позже.
Цузе продолжал экспериментировать с различными вычислительными устройствами,
сделал автоматическую рисовальную доску - первый прообраз современных CAD.
В 1964 г. он предложил автоматическую систему управления крупными ткацкими
станками. С 1966 г. Цузе стал работать в компании Siemens AG.
Одним из своих наиболее выдающихся достижений Цузе считал создание языка
Plankalkul, который не был привязан к архитектуре и наборам команд конкретного
компьютера в отличие от первых языков ассемблера.
В Plankalkul было введено понятие объекта. Объект мог быть примитивным,
основанным на двоичных числах произвольной длины (при записи логической
единицы Цузе использовал символ L; например, двоичное число 1001 записывалось
как L00L), и составным (структуры, рекурсивно определяемые массивы произвольной
размерности и т. д.). Битовый массив размерности [n][m] обозначался как
n x m x S0. Индексация в Plankalkul всегда начиналась с 0. Разрешалось работать
с подмассивами: для трехмерного массива V[][][] можно указать матрицу V[i]
и вектор V[i][j]. Для описания переменной использовалась нотация S1 . n
(n бит).
Plankalkul допускал использование значительно более сложных синтаксических
конструкций. Десятичное число (0-9) определялось с помощью записи S1 . 4
(4 бита, значения от 0 до 15) с наложенным ограничением по диапазону. Структура
из трех компонентов записывалась, например, как (A2, S1 . 4, A3), где объекты
A2 и A3 определялись ранее. Для упорядочения сложных описаний в языке использовался
специальный синтаксис.
В качестве идентификаторов переменных применялось сочетание "буква
+ число". Первой буквой могла быть V (параметр ввода), Z (промежуточное
значение), R (результирующее значение), C (константа). Программы и подпрограммы
(параметры передавались по значению) трактовались как переменные (префикс
P). Например, запись P3 . 7 означала вызов 7-й программы 3-й программной
группы. Plankalkul предусматривал возможность работы массивов программ,
что сегодня только реализуется в распределенных системах!
Цузе придумал оператор присваивания, для которого определил знак. На Цюрихской
конференции по Алголу европейская группа хотела ввести в стандарт языка
именно его, и только под сильным давлением американской группы, не заинтересованной
в введении символов, не поддерживаемых в компьютерах США, согласилась на
сочетание :=.
Plankalkul поддерживал мощные синтаксические конструкции и позволял компактно
описывать сложные условные циклы. Правда, запись программы была "многоэтажной",
с верхними и нижними индексами, и походила на символические потоковые диаграммы,
получившие распространение в США в 60-х годах. По мощности Plankalkul приближался
к Алголу 68, но в отличие от него, в Plankalkul не поддерживалась адресная
арифметика, что в целом повышало надежность программы. На Plankalkul было
написано много самых разных невычислительных алгоритмов: обработки символьной
информации, генерации шахматных ходов и др. В музее Retrocomputing museum
(www.ccil.org/retro/) автору статьи сообщили, что в память о Цузе планируется
сделать компилятор для Plankalkul.
Сегодня работы Цузе известны во всем мире. Он оказал несомненное влияние
на развитие европейских компьютерных технологий. Его труды использовались
при создании новых компьютеров и особенно при разработке первых алгоритмических
языков программирования. Конрад Цузе получил множество наград и призов и
заслужил международное признание. В последние годы жизни он занимался преимущественно
рисованием. Любовь к изобразительному искусству Цузе сохранил, видимо, с
тех пор, как двадцатипятилетним инженером рисовал многочисленные схемы своих
первых компьютеров. |