Тьюринг. Компьютерное исчисление - Рафаэль Лаос-Бельтра
Шрифт:
Интервал:
Закладка:
АРХИТЕКТУРА ДЖОНА ФОН НЕЙМАНА
Американский математик венгерского происхождения Джон фон Нейман (1903-1957), еще один гениальный исследователь, наравне с Аланом Тьюрингом внес огромный вклад в развитие информатики. Тьюринг и фон Нейман были старыми знакомыми еще со времен первой встречи в Принстонском университете в Нью-Джерси. Фон Нейману были прекрасно известны работы Тьюринга по вычислительной теории и его знаменитые машины, особенно его заинтересовала универсальная машина Тьюринга, изучением которой фон Нейман занимался на протяжении нескольких лет.
Алан Тьюринг (стоит) работает с двумя коллегами за компьютером Ferranti Mark I в Манчестерском университете в 1951 году.
1952 год, оператор управляет предварительной версией Pilot АСЕ — компьютера, разработанного Тьюрингом для общего применения.
ДЖОН ФОН НЕЙМАН: ОДИН ИЗ САМЫХ БЛЕСТЯЩИХ УМОВ XX ВЕКА
Фон Нейман (1903- 1957) работал над очень разными темами и, как и Тьюринг, во все проекты привносил свой талант и блестящие интеллектуальные способности. Он занимался исследованиями в области квантовой механики, теории игр, информатики, участвовал в Манхэттенском проекте по разработке первой атомной бомбы, работал консультантом в ЦРУ, в корпорации RAND (РЭНД), являющейся исследовательским центром, сотрудничающим с американской армией, в таких предприятиях, как IBM, и в нефтяной компании Standard Oil. Работа фон Неймана в проекте, связанном с созданием одного из первых компьютеров, ENIAC, позволила ему сформулировать правила организации компонентов компьютера, или архитектуру фон Неймана. Он работал с самыми первыми компьютерами в мире, например EDVAC или, на этапе разработки, IAS — компьютером, созданным для Института перспективных исследований в Принстоне. Описание, объясняющее, как построить IAS, свободно распространялось по университетам и предприятиям всего мира, так что возникла целая серия машин IAS: Johniac, Mistic, Oracle, ORDVAC, Weizac, MUSALINO-I, SILLIAC и другие.
Джон фон Нейман рядом с компьютером IAS.
Другие достижения ученого
Еще одним достижением фон Неймана является введение понятия самовоспроизводящейся машины, то есть автомата, способного создавать другие автоматы и обладающего свойством самовоспроизведения подобно микроорганизмам или бактериям. В Манхэттенском проекте фон Нейман совместно с математиком Станиславом Уламом (1909-1984) разработал метод Монте-Карло — вид численных методов с широким применением, в которых используются компьютер и случайные числа. Выяснив, что разрушительная сила бомбы больше, если она сдетонирует до момента столкновения с землей, фон Нейман рассчитал, на какой высоте должны взорваться бомбы над Хиросимой и Нагасаки, чтобы взрыв причинил как можно больший ущерб. В 1957 году ученый умер от рака. Его последняя работа «Компьютер и мозг» была опубликована посмертно.
В 1944 году он присоединился к команде, строившей ENI АС, для того чтобы усовершенствовать и исправить некоторые ограничения и недостатки этой довольно примитивной машины. Результаты его работы были воплощены в следующем после ENIAC поколении компьютеров. Два самых известных — EDVAC (Electronic Discrete Automatic Computer) и ORDVAC (Ordnance Discrete Variable Automatic Computer). ORDVAC был первой машиной в истории, для которой был написан компилятор для языка программирования FORAST. Пользователь писал программу на исходном коде, а компилятор переводил ее в исполняемую версию, машинный код.
В 1945 году фон Нейман опубликовал знаменитый доклад «Первый черновик отчета о EDVAC» (First Draft of a Report on EDVAC), где излагались принципы архитектуры фон Неймана (см. схему).
Ученый попытался определить, каким образом, с точки зрения логики, должны быть организованы компоненты компьютера, не учитывая электронных комплектующих. С тех пор этой модели следуют все разработчики компьютеров. Согласно архитектуре фон Неймана, компьютер состоит из следующих элементов.
— Устройство ввода, или input ("например, клавиатура для ввода данных).
— Выходное устройство, или output (например, монитор, на котором видны результаты операций).
— Арифметико-логическое устройство (АЛУ): выполняет арифметические (суммирование, вычитание, умножение, деление) и логические операции. К логическим операциям относятся операции сравнения, допустим в такой задаче: проверить, является ли А меньше, чем В(А< В), или условные выражения, например на языке BASIC-256 выражение IF-THEN:
if chr(a) = "A" then
print "Ты нажал на А!!!"
Также это могут быть повторяющиеся задачи или операторы цикла. Например, в этой версии языка BASIC мы можем записать символы кода ASCII, используя оператор цикла FOR-ТО:
for i=l to 256
print chr(i)
next i
— Контрольное устройство — элемент, управляющий обработкой команд программы. Например, в программе BASIC-256 последовательность инструкций rem, clg, f astgraphics... должна выполняться одна за другой в порядке появления. Еще одна задача контрольного устройства — интерпретировать значения инструкции и передавать их АЛУ. Например, если в кодовой строке стоит оператор *, АЛУ дается указание осуществить операцию умножения.
— Для того чтобы программа выполнялась, она должна храниться в основной памяти. В современных компьютерах основная память — это память ОЗУ.
ТЬЮРИНГ КАК ПРОГРАММИСТ: МАНЧЕСТЕРСКИЙ УНИВЕРСИТЕТ
В 1948 году Тьюринг ушел из Национальной физической лаборатории (NPL) и начал работать в Манчестерском университете. Там уже трудился его друг и учитель Макс Ньюман, математик из Кембриджа, который принимал участие в разработке и строительстве Colossus в Блетчли-парке. Ученые хотели организовать в университете лабораторию для разработки и конструирования компьютеров для научных, а не военных целей. Этот амбициозный проект начался под покровительством Королевского общества, одного из старейших научных обществ Британии, обладавшего высоким авторитетом в Европе. Так появилась вычислительная лаборатория Королевского общества в Манчестерском университете. Тьюринг взял на себя задачу разработки программ по численному анализу — разделу математики, занимающемуся созданием алгоритмов для решения с помощью компьютера задач по оптимизации, интегральному исчислению, дифференциальных уравнений, операций с матрицами и других, то есть для всех инструментов прикладной математики. После разработки программ должен был появиться компьютер для их выполнения.