25 знаковых достижений в вычислительной технике

В 1613 году слово «компьютер» впервые появилось для обозначения человека, проводившего вычисления. Такое определение сохранялось до конца XIX века, когда в сфере технологий появились машины, предназначенные для расчётов.

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

О стремительном развитии вычислительной техники и труда множества учёных, чьи имена отсутствуют в учебниках, нам неизвестно многое.

Чтобы обеспечить вас всеми необходимыми компьютерными знаниями, мы подготовили обзор значительных достижений в сфере компьютерных наук, начиная с первых машин и заканчивая эпохой микрочипов.

25. Первый компьютер: «Разностный двигатель» — 1821

Чарльз Бэббидж, которого называют «Отцом компьютера», работал над механизмом различий, основанным на принципе конечных различий. Для расчетов он применял только сложение, так как умножение и деление сложнее реализовать механически. Целью этого устройства было рассчитать и отобразить полиномиальную функцию.

Британское правительство заказывало проект, но из-за больших расходов финансирование прервалось на полпути, и машину так и не построили.

Первый универсальный компьютер — аналитический двигатель появился в 1834 году.

Чарльз Бэббидж разработал проект более масштабной машины, первого всеобъемлющего программируемого вычислительного устройства, названного Аналитическим двигателем. В нем присутствует множество важных свойств, характерных для современных цифровых компьютеров.

Для программирования машины использовались перфокарты. Двигатель обладал «Магазином» для хранения чисел и результатов вычислений, а также «Мельницей», отвечавшей за выполнение арифметических операций.

Движок умел производить прямое умножение и деление, параллельно обрабатывать информацию, выполнять микропрограммирование, итерацию, фиксацию, условное ветвление и плюс-формирование, хотя Чарльз Бэббидж никогда не применял эти термины. К сожалению, как и Difference Engine, эта машина так и не была доработана.

23. Первая компьютерная программа — 1841

Ада Лавлейс, первая в мире компьютерная программистка, в 1841 году начала переводить записи Луиджи Менабреа на аналитическом двигателе Бэббиджа. Поняв принципы работы машины, она предложила способ ввода данных для программирования вычисления чисел Бернулли.

Ада обладала проницательностью в области математики, понимая возможность использования чисел для отображения не только количеств. Предсказывала она, что машины вроде Analytical Engine смогут генерировать графики, музыку и окажутся пригодными для научных исследований.

22. Табуляционная машина — 1884

Герман Холлерит разрабатывал идею машины для счета карт и фиксации результатов ударов в конце XIX века. Он создал устройство, способное фиксировать статистику путём электронного считывания и сортировки перфокарт.

Холлерит основал компанию «Табулирования» в 1896 году в Нью-Йорке, которая позднее стала IBM. Машина пользовалась успехом в Соединенных Штатах, но получила ещё большее признание в Европе, где широко применялась для разных статистических задач.

Первый аналоговый компьютер — дифференциальный анализатор, создан в 1930 году.

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

В машине движение вала менялось, а умножение и сложение осуществлялись подачей значений в шестерни. Вращающееся на разных радиусах колесо с острием ножа выполняло интегрирующую часть на круглом столе. Для решения дифференциальных уравнений разные механические интеграторы соединялись между собой.

20. Первый работающий программируемый компьютер: Z3 — 1941

Изобретатель и компьютерный пионер Конрад Цузе создал первый значимый компьютер Z1 в 1936 году. Полностью механический Z1 функционировал лишь несколько минут за раз. Работая на булевых операциях и релейных схемах, основанных на вакуумных трубках, развитие различных технологий в последующие десятилетия привело к появлению Z2 и, в конечном счёте, Z3.

Z3 состоял из двух тысяч реле с двадцатью двумя битами длины.
Постоянные данные и программа записывались на перфорированной плёнке, что позволяло менять программу без перепрограммирования.

В Третьем Рейхе существовал секретный проект Z3, который Немецкий институт авиационных исследований использовал для статистического анализа трепетания крыльев. Первоначальную машину уничтожили в 1943 году во время бомбардировки Берлина союзниками.

19. Первый электронный компьютер: ABC — 1942

Компьютер Atanasoff-Berry (ABC) создали Джон Винсент Атанасофф и его помощник Клиффорд Э. Берри. Это первая машина, использовавшая конденсаторы для хранения данных (как в современной оперативной памяти) и способная выполнять 30 операций одновременно.

Азбука предназначалась для решения систем линейных уравнений и могла решать системы с 29 неизвестными. Компьютер не был программируемым, но являлся пионером в некоторых важных элементах современных вычислений, таких как двоичная арифметика и электронные переключатели.

18. Первый программируемый компьютер: Колосс — 1943

Коlossus стал первым в мире электронным программируемым компьютером, разработанным Томми Флауэрсом. В Великобритании использовали его для расшифровки секретных немецких сообщений (зашифрованных шифром Лоренца) во время Второй мировой войны.

Колоссу не требовалось расшифровывать каждое сообщение. Ему удалось обнаружить сходные параметры настроек машин Лоренца. Предполагалось, что частота букв и цифр в немецких сообщениях сможет послужить отправной точкой для перевода самих сообщений.

До семидесятых годов данные машины считались очень секретными. После войны весь Колосс разобрали на части, конструкцию уничтожили. Неизвестно имена первых разработчиков Кольосса. В два тысяча семь инженеры создали рабочую модель Colossus.

17. Первая компьютерная сеть — 1940

С 1940 по 1946 год Джордж Стибиц и его команда создали ряд устройств с телефонными функциями, использующих электромеханические реле. Эти устройства обслуживали несколько пользователей одновременно. Вскоре они устарели из-за медленных механических реле вместо быстрых электронных переключателей.

Главной частью передачи информации сегодня является пакетная коммутация: ARPANET (Сеть Агентства перспективных исследовательских проектов) была сетью раннего пакета и первой, которая внедрила набор протоколов TCP / IP (в 1982 году). Оба стали технической основой интернета.

16. Первый трекбол — 1941/1952

В 1941 году Ральф Бенджамин изобрел устройство с остроконечным штангой, называемое трекболом, для системы построения радиолокационных карт управления пожарами под названием «Комплексная система отображения» (CDS). Предыдущий проект Бенджамина использовал аналоговые компьютеры для расчёта будущей позиции самолета-мишени на основе входных данных, вводимых пользователем с помощью джойстика.

Ему стало понятно, что требуется более эффективный способ ввода информации. В результате изобретения для этой задачи то, что стали именовать роликовым мячом, способным управлять координатами XY курсора на экране. Патент был получен в 1947 году и хранился как военная тайна.

Ранний трекбол DATAR появился в 1952 году благодаря британскому инженеру-электрику Кениону Тейлору, работавшему вместе с Фредом Лонгстаффом и Томом Крэнстоном. По сути, это устройство напоминало конструкцию Бенджамина.

Трекбол применял четыре диска для отслеживания движения: по два для координат X и Y. Цифровой компьютер определял траектории и направлял полученные данные другим кораблям группы цели посредством радиосигналов с импульсной кодовой модуляцией. Дизайн не был запатентован, поскольку являлся секретным военным проектом.

В 1946 году появился первый программируемый электронный компьютер общего назначения – ENIAC.

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

К концу работы (1955 г.) ENIAC состоял из 7200 кристаллических диодов, 17468 вакуумных ламп, 10000 конденсаторов, 70000 резисторов и более пяти миллионов паяных соединений. Его размеры составляли примерно 8 на 3 на 100 футов, вес — 30 тонн, а потребление электроэнергии — 150 киловатт.

Для ввода данных он применял кард-ридеры, а для вывода — перфокарты. Скорость работы компьютера была примерно в тысячу раз выше, чем у электромеханических устройств.

Первый полная версия языка высокого уровня: Plankalkül — 1948.

Немецкий ученый-компьютерщик Конрад Цузе, создатель первого релейного компьютера, начал работу над языком программирования высокого уровня в 1941 году. Цузе разработал идеи о том, как его машины (компьютер Z4) могут быть запрограммированы эффективно.

Планкалкюль — высокоуровневый императивный язык программирования с типизацией и широким набором возможностей: нерекурсивные функции, локальные переменные, операция присваивания, условный оператор, конструкция WHILE для итерации, логические операции, фундаментальные типы данных и многое другое. Публикация языка в полной форме состоялась в 1972 году, первый компилятор был создан в 1998 году.

Первый запрограммированный электронный цифровой компьютер — ССЭМ-1948.

В Манчестере 21 июня 1948 года экспериментальная машина по имени Бейби выполнила свою первую программу. Программу написал Том Килберн, фактически создавший компьютер. Разработкой его руководил Фредерик Уильямс. Машина стала первой работоспособной с модулями, необходимыми для современного компьютера.

SSEM обладал 32-битной длиной слова, кодом порядка в формате одного адреса, памятью объемом 32 слова и скоростью вычислений около 1,2 миллисекунды на инструкцию. Информация хранилась в виде заряда на люминофоре ЭЛТ, управляемом электронным лучом для записи 1 или 0. Все арифметические операции выполнялись с помощью программного обеспечения, за исключением вычитания и отрицания.

12. Первый Ассемблер: Первоначальные Заказы — 1949

Ассемблер переводит программы, написанные на ассемблере, в машинный код и инструкции, понятные компьютеру. Первый ассемблер создали для ЭДСЭК.

Вначале, Дэвид Уилер записал 31 инструкцию для одноплатных устройств с не изменяемой памятью только для чтения. Второй вариант этих первых заказов использовал все 41 слово постоянной памяти и включал инструменты для перемещения (или координации) подпрограмм.

11. Первый персональный компьютер: Саймон — 1950

Симон Эдмунда Беркли был релейным компьютером, созданным для обучения принципам цифрового компьютера. Ввод данных осуществлялся с помощью перфокарт или пяти клавиш на панели управления, а запуск программы происходил со стандартной бумажной ленты. Арифметико-логические элементы и регистры хранили всего два бита, что делало его непригодным для серьёзных вычислений.

Помимо ввода информации, перфолента используется для хранения данных. Все инструкции выполнялись последовательно, так как машина считывала их с ленты. Машина может выполнять четыре операции: сложение, сравнение величин, отрицание и выбор. Результат работы выводился пятью лампами.

В 1951 году появился первый компьютер AN/FSQ-7 с графическим дисплеем в реальном времени.

Разработанный компанией IBM компьютер AN/FSQ-7 являлся крупнейшим из когда-либо построенных. Его составляли два компьютера Whirlwind II, размещенные в четырёхэтажном здании.

Это система управления и командования сети ПВО. Её использовали для расчёта одной или нескольких прогнозируемых точек перехвата. По этим точкам назначались самолёты или ракеты CIM-10 Bomarc для перехвата злоумышленника. Алгоритм ATABE (автоматическая оценка цели и батареи) применялся для расчёта точек перехвата.

В нем было более 60 тысяч вакуумных трубок, потреблялось 3000 киловатт электроэнергии, выполнялись 74 тысячи инструкций в секунду для региональных радаров. Каждая машина обслуживала более 100 пользователей. IBM применяла один блок в работе и другой в режиме резервирования, что повышало время безотказной работы (около 99%).

Первый компилятор для электронных компьютеров — система A-0 (1951).

Программа-компилятор переводит язык высокого уровня в машинный код. Грейс Хоппер разработала версию арифметического языка 0 (или систему A-0) для UNIVAC I, цель которой состояла в преобразовании последовательности подпрограмм и аргументов в машинный код.

Подпрограммы обозначались цифровыми кодами, а аргументы располагались сразу за каждым кодом подпрограммы. Программа А-0 преобразовывала эти описания в машинный язык, готовый к повторному вводу и выполнению.

Первая программа с открытым исходным кодом — система A-2, разработанная в 1953 году.

Система A-0 трансформировалась в систему A-2, выпущенную под названием ARITH-MATIC. Разработанная отделением UNIVAC Remington Rand, система стала доступна клиентам к концу 1953 года. Пользователям предоставили исходный код A-2 и предложили возвращать внесенные улучшения в UNIVAC.

7. Первый автокод: автокод Гленни — 1952

В шестидесятые годы термин «автокод» применяли для обозначения любого языка программирования высокого уровня, использующего компилятор. Алик Гленни создал первый автокод для компьютера Mark 1 в университете Манчестера. Его считают первым скомпилированным языком программирования.

Гленни стремился сделать код машины Марка 1 более читабельным. Получившийся язык был упорядоченнее и яснее машинного кода, но всё ещё сильно привязан к машине.

В 1955 году RA Brooker создал второй автокод для Mark 1. В отличие от первого, этот автокод был почти независим от машины и обладал арифметикой с плавающей точкой. Вместе с тем он допускал только одну операцию на строку и не мог определять пользовательские подпрограммы.

Первый популярный язык высокого уровня: Фортран, 1957 года.

FORTRAN (Формула Транслятор) создала команда под руководством Джона Бакуса из IBM. С самого начала он преобладал в области программирования и более чем полвека использовался в таких областях науки и техники, как вычислительная гидродинамика, анализ методом конечных элементов, вычислительная химия и вычислительная физика.

При создании Fortran ставилась задача разработать язык программирования, который был бы прост в освоении, не зависел от конкретной машины, подходил для разных задач и позволял записывать сложные математические выражения теми же символами, что и в обычной алгебре.

Программирование стало проще, поэтому программисты писали код в пять раз быстрее, но выполнение кода стало на 20 процентов менее эффективным.

5. Первая компьютерная мышь — 1964

В настоящее время известно, что компьютерную мышь создал Дуглас Энгельбарт при участии Билла Инглиша, а патент на неё был оформлен 17 ноября 1970 года. Это было лишь небольшое звено в масштабном проекте по расширению человеческого интеллекта.

Энгельбарт настаивал на умении работать с информационным дисплеем, управляя курсором на экране при помощи специального аппарата. В то время применялись разные устройства: лампочки и джойстики. Однако ему хотелось найти наиболее подходящий вариант.

Первый образец мыши создали для взаимодействия с графической средой Windows. Его называли «Индикатором положения XY для системы отображения» и впервые применили с компьютерной системой Xerox Alto в 1973 году.

Удивительно, что создатель одного из самых востребованных устройств с компьютерным интерфейсом не заработал на своем изобретении – мышке. Автор патента как правопреемник SRI передал лицензию Apple примерно за 40 тысяч долларов. Дугласу ничего не досталось!

4. Первый сенсорный экран — 1965

Эдвард Джонсон изложил свою работу над емкостным сенсорным экраном (нечувствительным к давлению) в статье «Сенсорный дисплей – новое устройство ввода/вывода для компьютеров». В этой статье присутствовала схема, иллюстрирующая концепцию сенсорного экрана, актуальную до наших дней.

Через несколько лет Джонсон представил эти идеи с помощью изображений и схем в статье «Сенсорные дисплеи: запрограммированный интерфейс человек-машина», опубликованной в 1967 году в журнале «Ergonomics».

В Великобритании авиадиспетчеры использовали эту идею до 1990-х годов. Первый резистивный сенсорный экран разработал Джордж Сэмюэл Херст, американский новатор, получивший патент США № 3911215 в 1975 году.

Первый коммерческий персональный компьютер: программа 101, 1965 год.

Программа 101 может выполнять четыре основные арифметические операции (сложение, вычитание, деление, умножение), вычислять абсолютное значение, квадратный корень и дробную часть. Она состояла из регистров памяти и имела 16 инструкций условного перехода, алфавитно-цифровой язык программирования и внутреннюю память.

Использование магнитных карт и процедур не требует навыков программирования. М ашина выводит программы и результаты на бумажную ленту, подобную ленте в кассовом аппарате или калькуляторе.

Компьютеры раньше были дорогими и доступны лишь специалистам. Однако P101 отличался своей доступностью и простотой. Стоил он 32 тысячи долларов и был распродан более чем в 44 тысячи экземпляров.

Первым объектно-ориентированным языком программирования стал Simula, созданный в 1967 году.

Оле-Йохан Далль и Кристиан Найг hard разработали Simula в Норвежском вычислительном центре. Язык сохраняет дух языка программирования ALGOL 60. Simula — название двух языков симуляции: Simula I и Simula 67.

Simula 67 предложила объекты, классы, подклассы, наследование, виртуальные процедуры, сопрограммы и функцию сбора мусора. Его применяли в различных областях, таких как моделирование процессов, алгоритмы, проектирование СБИС и компьютерная графика. Концепции Simula 67 переработали в C++, C#, Pascal, Java и других языках программирования.

1. Первый микропроцессор: Intel 4004 — 1971

Разработка чипа началась в апреле 1970 года и закончилась под руководством Федерико Фаггина в январе 1971 года. Маленький человеческий эскиз, 4-разрядный регистр с тактовой частотой 740 кГц, содержал 2300 транзисторов с интервалом 10 микрон и мог выполнять 60 000 операций в секунду. Стоил он 200 долларов при такой же вычислительной мощности, как компьютер ENIAC. Бусиком Калькулятор 141-PF стал первым коммерческим продуктом, использующим микропроцессор.

Процессор Intel 4004 имеет раздельное хранилище программ и данных (в отличие от архитектуры Гарварда), одну многофункциональную шину шириной 4 бита для передачи адреса в 12 битов, 8-битной инструкции и 4-битного слова данных. Он способен напрямую обращаться к 5120 битам оперативной памяти, 32768 битам постоянной памяти и поддерживает 3-уровневый глубокий внутренний стек подпрограмм.