Как назывался первый электронный цифровой компьютер
Как назывался первый электронный цифровой компьютер
Первая ЭВМ — универсальная машина на электронных лампах построена в США в 1945 году.
Эта машина называлась ENIAC (расшифровывается так: электронный цифровой интегратор и вычислитель). Конструкторами ENIAC были Дж.Моучли и Дж.Эккерт.
Скорость счета этой машины превосходила скорость релейных машин того времени в тысячу раз.
Первый электронный компьютер ENIAC программировался с помощью штеккерно-коммутационного способа, то есть программа строилась путем соединения проводниками отдельных блоков машины на коммутационной доске.
Эта сложная и утомительная процедура подготовки машины к работе делала ее неудобной в эксплуатации.
Основные идеи, по которым долгие годы развивалась вычислительная техника, были разработаны крупнейшим американским математиком Джоном фон Нейманом
В 1946 году в журнале «Nature» вышла статья Дж. фон Неймана, Г. Голдстайна и А. Беркса «Предварительное рассмотрение логической конструкции электронного вычислительного устройства».
В этой статье были изложены принципы устройства и работы ЭВМ. Главный из них — принцип хранимой в памяти программы, согласно которому данные и программа помещаются в общую память машины.
В 1949 году была построена первая ЭВМ с архитектурой Неймана — английская машина EDSAC.
Годом позже появилась американская ЭВМ EDVAC. Названные машины существовали в единственных экземплярах. Серийное производство ЭВМ началось в развитых странах мира в 50-х годах.
В нашей стране первая ЭВМ была создана в 1951 году. Называлась она МЭСМ — малая электронная счетная машина. Конструктором МЭСМ был Сергей Алексеевич Лебедев
Под руководством С.А. Лебедева в 50-х годах были построены серийные ламповые ЭВМ БЭСМ-1 (большая электронная счетная машина), БЭСМ-2, М-20.
В то время эти машины были одними из лучших в мире.
В 60-х годах С.А. Лебедев руководил разработкой полупроводниковых ЭВМ БЭСМ-ЗМ, БЭСМ-4, М-220, М-222.
Выдающимся достижением того периода была машина БЭСМ-6. Это первая отечественная и одна из первых в мире ЭВМ с быстродействием 1 миллион операций в секунду. Последующие идеи и разработки С.А. Лебедева способствовали созданию более совершенных машин следующих поколений.
18 великих изобретений в мире компьютеров и программирования
Недавно у нас с коллегами возникла дискуссия на тему первых компьютеров и программ. В разговоре вспомнились не только знаменитые ученые, такие как Чарльз Бэббидж, но и менее известных вроде Ады Лавлейс. В результате возникла идея провести исследование и составить хронологию развития истории компьютеров и программирования.
В процессе изучения различных источников обнаружилось немало любопытных фактов. Например, тот же Бэббидж технически не является изобретателем компьютера, что первым высокоуровневым языком программирования был вовсе не FORTRAN, а для CRT-мониторов использовались стилусы.
1. Первый компьютер: «Машина различий» (1821 г.)
Предшественник Аналитической машины. «Машина различий» была первой попыткой создания механического компьютера. Разработкой проекта занимался ученый Чарльз Бэббидж. Заручившись поддержкой британского правительства, он начал работать над устройством. Но из-за высокой себестоимости, финансирование было остановлено и компьютер так и не построили.
2. Первый компьютер общего назначения: «Аналитическая машина» (1834 г.)
Чарльз Бэббидж продолжил свою работу и, основываясь на полученном опыте, взялся за разработку механического компьютера. Эта машина предназначалась для автоматизации вычислений путем аппроксимации функций многочленами и вычисления конечных разностей. Благодаря возможности приближенного представления в многочленах логарифмов и тригонометрических функций, «аналитическая машина» могла быть универсальным прибором.
3. Первая Компьютерная программа: алгоритм для вычислений числа Бернулли (1841 — 1842 г.)
Математик Ада Лавлейс начала переводить отчеты своего итальянского коллеги — математика Луиджи Менабреа. Для этого она использовала все ту же аналитическую машину Бэббиджа в 1841. Во время перевода женщина заинтересовалась компьютером и оставила примечания. В одной из заметок содержался алгоритм для вычисления числа Бернулли (последовательность рациональных чисел В1, В 2, В3) аналитической машиной, которая, как полагают эксперты, была самой первой компьютерной программой.
4. Первый работающий компьютер: Z3 Конрада Цузе (1941г.)
Немецкий изобретатель Конрад Цузе стал первым, кому удалось создать работающий компьютер Z3. На основе своих первых двух моделей Z1 и Z2 ученый собрал полноценный электромагнитный программирующий компьютер, созданный на базе электронных реле. Z3 имел двоичную систему исчисления, числа с плавающей запятой, арифметическое устройство с двумя 22-разрядными регистрами, управление через 8 канальные ленты.
Предполагалось, что это будет секретный проект немецкого правительства. По большей части он разрабатывался для Института Исследований в области авиации. Правда самого Цузе мало интересовали интересы военных, ему просто хотелось создать работающую ЭВМ.
Оригинал машины Z3 был разрушен во время бомбежки Берлина в 1943 году.
5. Первая электронно-вычислительная машина: Компьютер Атанасова-Берри (Atanasoff-Berry Computer, ABC, 1942 г.)
Первое цифровое вычислительное устройство без движущихся частей. Компьютер был создан Джоном Винсентом Атанасовым и Клиффордом Берри. ABC использовался для поиска решений под одновременные линейные уравнения. Это был самый первый компьютер, который использовал набор из двух предметов, чтобы представлять данные и электронные выключатели вместо механических. Компьютер, однако, не являлся программируемым. В ABC впервые появились более современные элементы, такие как двоичная арифметика и триггеры. Минусом устройства была его особая специализация и неспособность к изменяемости вычислений из-за отсутствия хранимой программы.
6. Первая программируемая электронно-вычислительная машина: «Колосс» (1943 г.)
Компьютер «Колосс» — секретная разработка времен второй мировой войны. Он был создан Томми Флауэрсом совместно с отделением Макса Ньюмана, с целью предоставления помощи британцам в расшифровке перехваченных нацистских сообщений. Они были зашифрованы шифром Лоренца. Действия были запрограммированы электронными выключателями и штепселями. «Колосс» давал время на расшифровку сообщений от нескольких часов до недель. С помощью компьютера было расшифровано немало фашистских шифровок.
7. Первая программируемая электронно-вычислительная машина общего назначения: ENIAC (1946 г.)
ENIAC (Электронный числовой интегратор и вычислитель) — первый электронный цифровой компьютер общего назначения с возможностью перепрограммирования для решения широкого спектра задач. Финансируемый американской армией, ENIAC был разработан Электротехнической школой Мура в университете Пенсильвании. Его создавала команда ученых во главе с Джоном Преспером Экертом и Джоном Уильямом Мокли. ENIAC достигал в ширину 150 футов и мог быть запрограммирован на выполнение сложных операций. Вычисления производились в десятичной системе, компьютер оперировал числами максимальной длиной в 20 разрядов.
Интересным фактом было то, что на программирование задачи на ENIAC могло уходить несколько дней, зато решение выдавалось в считаные минуты. При перекоммутировании ENIAC «превращался» в практически новый специализированный компьютер для решения специфических задач.
8. Первый трекбол (1946/1952 г.)
Трекбол — указательное устройство ввода информации об относительном перемещении для компьютера. По сути, аналог современной компьютерной мыши. По одной из версий он был разработан Ральфом Бенджамином, когда тот работал над системой мониторинга для низколетающего самолета. Изобретение, которое он описал, включало в себя шар для управления координатами X-Y курсора на экране. Дизайн был запатентован в 1947 году, но не выпускался, потому что проект находился под грифом «секретно».
Также трекбол использовался в системе канадского военно-морского флота DATAR в 1952 году. Этот «шаровой указатель» применил Том Крэнстон.
9. Первый компьютер совместного хранения данных и программ в памяти: SSEM (1948 г.)
Манчестерская малая экспериментальная машина (англ. Manchester Small-Scale Experimental Machine, SSEM) — первый электронный компьютер, построенный по принципу совместного хранения данных и программ в памяти. Создатели — Фредерик Уильямс, Том Килберн и Джефф Тутилл были членами Манчестерского университета. Машина задумывалась, как экспериментальный аппарат для изучения свойств компьютерной памяти на ЭЛТ («трубки Уильямса»). Программы были введены в двухчастную форму, используя 32 выключателя, на продукции CRT.
Кстати, успешные испытания SSEM стали началом создания полноценного компьютера на трубках Уильямса — «Манчестерского Марка I».
10. Первый высокоуровневый язык программирования: Планкалкюль (Plankalkül, 1948 г.)
Этот язык был использован Конрадом Цузе (разработчиком первого работающего компьютера Z3). Хотя Цузе и начал создавать Plankalkül еще с 1943 года, впервые он был применен в 1948 году, когда ученый опубликовал работу на тему программирования. Правда данный язык программирования не привлек особого внимания. Первый компилятор для Планкалкюль (для современных компьютеров) был создан лишь в 2000 году профессором Свободного университета Берлина — Йоахимом Хоманом.
11. Первый ассемблер: «Начальные команды» на EDSAC (1949 г.)
Ассемблер — транслятор исходного текста программы, который преобразовывает мнемонику (низкого уровня) в числовое представление (машинный код).
Первый в мире действующий и практически используемый компьютер с хранимой в памяти программой. Программы были в мнемокодах вместо машинных, делая исходный код самым первым ассемблером.
12. Первый персональный компьютер: «Simon» (1950 г.)
Simon стал первым доступным компьютером. Он разработан Эдмундом Беркли, а построен инженером-механиком Уильямом Портером и выпускниками Колумбийского университета Робертом Дженсоном и Робертом Валлом. Simon имел систему команд и мог выполнять девять операций, в том числе два действия арифметики — сложение и вычитание, а также сравнение и выбор аргументов. Числа и команды считывались с перфоленты, а результат высвечивался на индикаторной панели. На вход могли подаваться числа в диапазоне от 1 до 255 в бинарной нотации, набитые на перфоленту.
13. Первый компилятор: A-0 для UNIVAC 1 (1952 г.)
Компилятор — программа, которая преобразовывает язык высокого уровня в машинный код. A-0 Система была программой, созданной легендарной женщиной-программистом Грейс Хоппер. Основной задачей системы было преобразование программы, определенной как последовательность подпрограмм и аргументов в машинный код. A-0 был выпущен клиентам с его исходным кодом, делающим, возможно, самое первое общедоступное программное обеспечение.
В 1952 г. у Хоппер появился готовый к работе компилятор. Ее высказывание по этому поводу:
В это не могли поверить. У меня был работающий компилятор и никто им не пользовался. Ведь мне говорили, что компьютер может выполнять только арифметические операции.
14. Первый автокод: Автокод Гленни (1952 г.)
Автокод — название группы языков программирования высокого уровня, который использует компилятор. Первый автокод был создан для серии компьютеров в университетах Манчестера, Кембриджа и Лондона. Автокод был создан одним из манчестерских сотрудников Тьюринга — Аликом Глени (собственно в его честь и назван).
15. Первая компьютерная мышь (1964 г.)
Идея компьютерной мыши пришла в голову американскому физику Дугласу Энджелбарту во время конференции на тему компьютерной графики. Он придумал устройство с парой маленьких поворачивающихся колес, которые могут использоваться для свободного перемещения курсора по экрану. Прототип был создан его ведущим инженером, Биллом Инглишем, но Инглиш и Энджелбарт никогда не получали лицензионные платежи для дизайна.
16. Первый коммерческий компьютер: Programma 101 (1965 г.)
17. Первый сенсорный экран (1965 г.)
На фото ниже — первый сенсорный экран (хоть он и мало чем похож на современные модели). Это панель с сенсорным экраном без чувствительности давления (в равной степени на любые касания экрана) с единственной точкой для контакта. В дальнейшем концепт использовался воздушными диспетчерами в Великобритании вплоть до 90-х годов.
18. Первый объектно-ориентированный язык программирования: Simula (1967 г.)
Simula — это язык программирования общего назначения, разработанный сотрудниками Норвежского Вычислительного Центра (г. Осло) Кристеном Нюгордом и Оле-Йоханом Далем для моделирования сложных систем. Учения Чарльза Ричарда Хоара про конструкции класса, языков программирования с объектами, классами и подклассами привели к созданию SIMULA 67.
Simula 67 явилась также первым языком с встроенной поддержкой основных механизмов объектно-ориентированного программирования.
История электронных компьютеров, часть 1: пролог
Атанасов
В 1930-м Атанасов, родившийся в Америке сын эмигранта из османской Болгарии, достиг, наконец, своей юношеской мечты и стал теоретическим физиком. Но, как и с большинством подобных стремлений, реальность оказалась не такой, на какую он рассчитывал. В частности, как большинство студентов инженерных и физических наук первой половины XX века, Атанасову приходилось страдать от мучительных тягот постоянных вычислений. Его диссертация в Висконсинском университете по поляризации гелия потребовала восьми недель нудных вычислений при помощи механического настольного калькулятора.
Джон Атанасов в юности
К 1935 году, уже устроившись в должности профессора в Университете штата Айова, Атанасов решил что-нибудь сделать с этим бременем. Он начал прикидывать возможные пути постройки новой, более мощной вычислительной машины. Отвергнув аналоговые методы (такие, как дифференциальный анализатор MIT) по причинам ограниченности и неточности, он решил построить цифровую машину, работавшую с числами как с дискретными значениями, а не как с непрерывными измерениями. Он с юности был знаком с двоичной системой счисления и понимал, что она гораздо лучше ложится на структуру вида вкл/выкл цифрового переключателя, чем привычные десятичные числа. Поэтому он решил делать двоичную машину. И, наконец, он решил, что чтобы она была наиболее быстрой и гибкой, она должна быть электронной, и использовать электронные лампы для вычислений.
Атанасову необходимо было определиться и с пространством задач — для каких именно подсчётов должен был подойти его компьютер? В итоге он решил, что он будет заниматься решением систем линейных уравнений, низводя их до единственной переменной (при помощи метода Гаусса) — таких же вычислений, что преобладали в его диссертации. Он будет поддерживать до тридцати уравнений, до тридцати переменных в каждом. Такой компьютер мог бы решать важные для учёных и инженеров задачи, и при этом вроде бы не был неимоверно сложным.
Произведение искусства
К середине 1930-х электронная технология достигла чрезвычайного разнообразия по сравнению с истоками, появившимися за 25 лет до этого. Две разработки особенно хорошо подходили к проекту Атанасова: реле-триггер и электронный счётчик.
С XIX века инженеры телеграфа и телефона имели в своём распоряжении удобное устройство под названием переключатель. Переключатель — это бистабильное реле, использующее постоянные магниты для удержания его в том состоянии, в котором вы его оставили — открытом или закрытом — до тех пор, пока оно не получит электрический сигнал на переключение состояний. Но электронные лампы не были на это способны. У них не было механического компонента, и они могли быть «открыты» или «закрыты» пока электричество текло или не текло по контуру. В 1918 году два британских физика, Уильям Эклз и Фрэнк Джордан связали проводами две лампы так, что получилось «реле-триггер» — электронное реле, постоянно остающееся включённым после включения от начального импульса. Эклз и Джордан создали свою систему для телекоммуникационных целей для Британского адмиралтейства в конце Первой Мировой войны. Но контур Эклза-Джордана, позднее ставший известным, как триггер [англ. flip-flop] можно было рассматривать и как устройство для хранения двоичной цифры — 1, если сигнал передаётся, и 0 в другом случае. Таким способом через n триггеров можно было представить двоичное число n разрядов.
Лет через десять после триггера произошёл второй серьёзный прорыв в электронике, столкнувшийся с миром вычислений: электронные счётчики. И снова, как это часто случалось в ранней истории вычислений, скука стала матерью изобретения. Физикам, изучавшим излучение субатомных частиц, приходилось либо слушать щелчки, либо часами изучать фотографические записи, подсчитывая количество обнаружений для измерения скорости излучения частиц различными веществами. Механические или электромеханические счётчики представляли соблазнительную возможность облегчить эти действия, но они двигались слишком медленно: они не могли зарегистрировать множество событий, происходивших с разницей в миллисекунды.
Ключевой фигурой в решении этой проблемы стал Чарльз Эрил Уинн-Уильямс, работавший под началом Эрнеста Резерфорда в Лаборатории Кавендиша в Кембридже. Уинн-Уильямс ловко обращался с электроникой, и уже использовал лампы (или клапаны, как их называли в Британии) для создания усилителей, благодаря которым можно было слышать происходящие с частицами события. В начале 1930-х он понял, что клапаны можно использовать для создания счётчика, который он назвал «счётчиком двоичной шкалы» — то есть, двоичного счётчика. По сути, это был набор триггеров, которые могли передавать переключения вверх по цепочке (на практике он использовал тиратроны, типы ламп, содержащих не вакуум, а газ, которые могли оставаться во включённом положении после полной ионизации газа).
Счётчик Уинна-Уильямса быстро вошёл в набор необходимых лабораторных устройств для всех, кто занимался физикой частиц. Физики строили очень маленькие счётчики, часто содержавшие по три знака (то есть, способные считать до семи). Этого было достаточно для создания буфера для медленного механического счётчика, и для записи событий, происходящих быстрее, чем их мог зарегистрировать счётчик с медленно движущимися механическими частями.
Но в теории такие счётчики можно было расширить до чисел произвольного размера или точности. Это были, строго говоря, первые цифровые электронные счётные машины.
Компьютер Атанасова-Берри
Атанасов был знаком с этой историей, что и убедило его в возможности постройки электронного компьютера. Но он не стал напрямую использовать двоичные счётчики или триггеры. Сначала для основы счётной системы он попытался использовать немного изменённые счётчики — ведь что такое сложение, как не повторяющийся подсчёт? Но по каким-то причинам он не смог сделать счётные контуры достаточно надёжными, и ему пришлось разработать свои схемы сложения и умножения. Он не мог использовать триггеры для временного хранения двоичных чисел, поскольку у него был ограничен бюджет, и была поставлена амбициозная цель по одновременному хранению тридцати коэффициентов. Как мы скоро увидим, эта ситуация имела серьёзные последствия.
К 1939 году Атанасов закончил проектировать свой компьютер. Теперь ему требовался человек с подходящими знаниями для его постройки. Он нашёл такого человека в лице выпускника инженерного департамента Института штата Айова по имени Клиффорд Берри. К концу года Атанасов и Берри построили небольшой прототип. В следующем году они закончили полную версию компьютера на тридцать коэффициентов. В 1960-х писатель, раскопавший их историю, назвал его компьютером Атанасова-Берри (Atanasoff-Berry Computer, ABC), и имя прижилось. Однако всех недостатков устранить не удалось. В частности, ABC давал ошибку примерно в одной двоичной цифре на 10000, что для любого крупного вычисления было бы фатальным.
Клиффорд Берри и ABC в 1942-м
Тем не менее, в Атанасове и его ABC можно найти корни и источник всех современных компьютеров. Разве не создал он (при умелой помощи Берри) первый двоичный электронный цифровой компьютер? Разве это не основные характеристики миллиардов устройств, формирующих и управляющих экономикой, обществом и культурой по всему миру?
Но вернёмся назад. Прилагательные цифровой и двоичный не являются прерогативой ABC. К примеру, вычислитель комплексных чисел Белла (Bell Complex Number Computer, CNC), разработанный примерно в то же время, был цифровым, двоичным, электромеханическим компьютером, способным вести вычисления на комплексной плоскости. Также ABC и CNC были похожи в том, что решали задачи в ограниченной области, и не могли, в отличие от современных компьютеров, принимать произвольную последовательность инструкций.
Остаётся «электронный». Но, хотя математические внутренности ABC были электронными, работал он на электромеханических скоростях. Поскольку Атанасов и Берри по финансовым соображениям не могли использовать электронные лампы для хранения тысяч двоичных цифр, они использовали для этого электромеханические компоненты. Несколько сотен триодов, выполнявших основные математические расчёты, были окружены вращающимися барабанами и жужжащими перфорирующими машинами, где хранились промежуточные значения всех вычислительных шагов.
Атанасов и Берри совершили героическую работу над тем, чтобы считывать и записывать данные на перфокарты с огромной скоростью, прожигая их электричеством вместо того, чтобы делать в них отверстия механически. Но это привело к своим проблемам: именно аппарат для прожигания был в ответе за 1 ошибку на 10000 чисел. Более того, даже при наибольших их усилиях машина не могла «пробивать» быстрее одной строки в секунду, поэтому ABC мог проводить лишь одно вычисление в секунду каждым из тридцати арифметических устройств. Оставшееся время электронные лампы сидели без дела, в нетерпении «барабаня пальцами по столу», пока вся эта машинерия мучительно медленно вращалась вокруг них. Атанасов и Берри пристегнули породистого скакуна к телеге с сеном. (Руководитель проекта по воссозданию ABC в 1990-х годах оценивал максимальную скорость машины, с учётом всех трат времени, включая работу оператора по заданию задачи, в пять сложений или вычитаний в секунду. Это, конечно, быстрее человека-вычислителя, но не та скорость, которую мы связываем с электронными компьютерами.)
Схема ABC. Барабаны хранили временный ввод и вывод на конденсаторах. Тиратроновая схема пробивания карточек и считыватель карт записывали и считывали результаты целого шага работы алгоритма (устраняя одну из переменных из системы уравнений).
Работы над ABC застопорились в середине 1942 года, когда Атанасов и Берри записались в быстро растущую военную машину США, где требовались не только тела, но и мозги. Атанасова призвали в Морскую артиллерийскую лабораторию в Вашингтоне, чтобы он руководил командой, разрабатывавшей акустические мины. Берри женился на секретарше Атанасова и нашёл себе работу в работавшей на военных по контракту компании в Калифорнии, чтобы его не призвали на войну. Атанасов какое-то время пытался запатентовать своё творение в штате Айова, но безуспешно. После войны он занялся другими вещами, и больше уже не занимался компьютерами всерьёз. Сам компьютер отправили на свалку в 1948, чтобы освободить в офисе место для нового выпускника института.
Возможно, Атанасов просто начал работать слишком рано. Он основывался на скромных университетских грантах, и мог потратить всего несколько тысяч долларов на создание ABC, поэтому экономность вытеснила все остальные проблемы в его проекте. Если бы он подождал до начала 1940-х, он мог бы получить правительственный грант на полноценное электронное устройство. И в таком состоянии — с ограниченным применением, со сложным управлением, ненадёжный, не очень быстрый — ABC не стал многообещающей рекламой пользы электронных вычислений. Американская военная машина, несмотря на весь вычислительный голод, бросила ABC ржаветь в городке Эймс штата Айова.
Вычислительные машины войны
Первая Мировая война создала и запустила систему массивной накачки инвестиций в науку и технологию, и подготовила её ко Второй Мировой. Всего за несколько лет практика ведения войны на земле и на море перешла к использованию отравляющих газов, магнитных мин, воздушной разведки и бомбардировки, и проч. Ни один политический и военный лидер не мог не заметить таких быстрых преобразований. Они были настолько быстрыми, что достаточно рано начатые исследования могли склонить чашу весов в ту или другую сторону.
Так и зарождающаяся область автоматических вычислений получила свою долю военного финансирования, пусть и в гораздо меньших масштабах. Мы уже отмечали разнообразие электромеханических вычислительных проектов, порождённых войной. Потенциал компьютеров на базе реле был, относительно говоря, известен, поскольку телефонные станции с тысячами реле к тому времени работали уже много лет. Электронные компоненты ещё не доказали своей работоспособности на таких масштабах. Большая часть экспертов считала, что электронный компьютер неминуемо будет ненадёжным (ABC служил примером), или его постройка отнимет слишком много времени. Несмотря на внезапный приток государственных денег, военных проектов по электронным вычислениям было мало, и они были редки. Запущено было всего три, и всего два из них привели к появлению работоспособных машин.
В Германии инженер по телекоммуникациям Гельмут Шрейер доказал своему другу Конраду Цузе ценность электронной машины перед электромеханическим «V3», который Цузе строил для воздушной индустрии (впоследствии он стал известен, как Z3). Цузе в итоге согласился работать над вторым проектом вместе со Шрейером, и Исследовательский институт авиации предложил финансировать прототип на 100 ламп в конце 1941 года. Но двое мужчин сначала занялись более приоритетной военной работой, а затем их работу сильно замедлили повреждения, вызванные бомбёжками, в результате они так и не смогли заставить свою машину надёжно работать.
Цузе (справа) и Шрейер (слева) работают над электромеханическим компьютером в берлинской квартире родителей Цузе
А первый электронный компьютер, выполнявший полезную работу, был создан в секретной лаборатории в Британии, где инженер по телекоммуникациям предложил новый радикальный подход к криптоанализу на основе клапанов. Эту историю мы раскроем в следующий раз.