Рейтинг@Mail.ru
Как программировали наши деды - РИА Новости, 13.09.2016
Регистрация пройдена успешно!
Пожалуйста, перейдите по ссылке из письма, отправленного на

Как программировали наши деды

Читать ria.ru в
Дзен
Не перфокарты, а тысячи проводов и переключателей позволяли программистам-математикам заносить программы в первые электромеханические вычислительные машины.

МОСКВА, 12 сен – РИА Новости. Антон Поляков. В День программиста, который отмечается в этом году 12 сентября, РИА Новости напоминает, каким был процесс программирования на заре эпохи компьютерных систем. Праздник отмечается в 256-й день года, что соответствует максимальному значению, которое можно выразить с помощью одного байта. В високосный 2016 год праздник приходится на 12 сентября. В обычный год – на 13 сентября.

Ада Лавлейс

Первые клавиатуры, мыши, дискеты. В Москве открылся музей компьютеров
Первые клавиатуры, мыши, дискеты - история ЭВМ в московском музее
История программирования началась еще в XIX веке. Первым в мире программистом принято считать Аду Лавлейс (Августа Ада Кинг, графиня Лавлейс), дочь английского поэта Джорджа Байрона.  В 1842-1843 годах она делала перевод описания математической машины Чарльза Беббиджа, к которому добавила 52 страницы собственных комментариев.

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

Развитие языков программирования

Понятие языка программирования окончательно сформировалось в 40-е годы прошлого века вместе с появлением первых электрических вычислительных машин.

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

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

© РИА Новости / Щербаков | Перейти в медиабанкСотрудник Института хирургии имени Вишневского в Москве рассматривает перфокарты с занесенной на них информацией о симптомах болезни
Сотрудник Института хирургии имени Вишневского в Москве рассматривает перфокарты с занесенной на них информацией о симптомах болезни

Таким образом родились языки программирования второго поколения, известные под общим названием ассемблерных кодов или автокодов, впитавших эти принципы.

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

Разумеется, ассемблерным языкам и всем последующим были необходимы компиляторы, которые переводили тексты программ в машинные коды.

Программирование систем в 1940-х

Первым в США программно-управляемым компьютером был Mark I, построенный в 1943 году. Изначально программы вводились в него с помощью электромеханических переключателей, которых было 420 штук. Также была возможность вводить код с помощью перфолент, а данные для обработки брались с перфокарт. Результаты вычислений выводились специальными электрическими печатными машинами.

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

В работе с Mark I в обиход начало входить понятие подпрограмм, которыми считались многократно используемые последовательности кода. Из них можно было компоновать другие программы. И если программисту нужна была подпрограмма, он просто переписывал ее код у коллег к себе в блокнот.

© Фото : Public domain Первый электронный цифровой вычислитель общего назначения ЭНИАК
Первый электронный цифровой вычислитель общего назначения ЭНИАК

Не менее интересным с точки зрения программирования был еще один знаменитый американский компьютер Eniac, запущенный в работу в 1945 году. Его обслуживанием занимались женщины-математики. Одним из способов закладки программ являлась ручная коммутации большого количества проводов, а также установка в нужные положения более шести тысяч переключателей. Обычно на программирование одной задачи уходило до двух дней, при этом сама задача выполнялась за несколько минут.

Есть версия, что в это же время появился термин "хакер" (от слова hack ndash; рубить, кромсать). Это опытный программист, который мог оптимизировать программу, сокращая количество коммутируемых проводов.

50-е годы и дальнейшее развитие

Всего несколько лет спустя после появления Mark I и Eniac компьютеры стали ламповыми, а в середине 50-х появлялись первые транзисторные системы. Одновременно начали набирать популярность ассемблерные языки, а к середине десятилетия появились первые языки высокого уровня, такие как Фортран, Лисп, Алгол и Кобол.

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

© Фото : Public domain Система ЭВМ "Минск-22"
Система ЭВМ Минск-22

В 60-х годах в Советском Союзе самым популярным семейством ЭВМ были системы "Минск", которые составляли до 75% всего парка ЭВМ того времени. С 1959 по 1975 год сменилось три поколения этих машин, выпущенных общим тиражом более 4000 экземпляров. Программы заносились в компьютер с помощью перфолент и перфокарт. Позднее появились накопители на магнитных лентах.

Скорость ввода информации с перфокарт у систем "Минск-32", на которые пришлось 2/3 объема выпуска, составляла 600 карт в минуту, с перфолент — 1500 строк в минуту и до 10 знаков в секунду с пишущей машинки. Вывод осуществлялся на перфокарты (до 120 карт в минуту) и перфоленты (до 80 знаков в минуту), а также на пишущую машинку и алфавитно-печатный механизм (до 420 строк в минуту).

Чемпионат мира по командному программированию среди студентов ACM ICPC 2013. Архив
После победы: почему русские студенты программируют лучше всех в мире
Количество программ для этих систем было весьма обширным и включало компиляторы с нескольких языков, системные программы и тесты, а также большую библиотеку математических подпрограмм, реализующих различные функции. При этом написание самих программ, в том числе и на языках высокого уровня, по-прежнему происходило на перфокартах, и было актуальным вплоть до начала эры персональных компьютеров.

 
 
 
Лента новостей
0
Сначала новыеСначала старые
loader
Онлайн
Заголовок открываемого материала
Чтобы участвовать в дискуссии,
авторизуйтесь или зарегистрируйтесь
loader
Обсуждения
Заголовок открываемого материала