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


Алгоритмы на листочке и 12-этапный кодинг уравнения 

1970-е. Техникумы Советского союза активно формируют группы для обучения будущих программисток. Нет, мы не ошиблись — в середине 70-х большую часть программистов составляли женщины. Обучение длилось 5 лет, а поступить могли юноши и девушки с высокими результатами экзаменов по алгебре и геометрии. Профильные предметы начинались со второго курса, и среди них было много смежных, но полезных дисциплин, таких как электротехника и высшая математика с её интегральными и дифференциальным исчислениями. 

Широкого доступа к ЭВМ в техникумах и институтах в то время не было, поэтому большинство занятий по программированию, если они не лабораторные, проводилось весьма консервативно: тетрадь, карандаш и резинка. Иногда без карандаша на занятия и вовсе не пускали. 

На один семестр приходился один новый язык программирования. Тогда популярными в Советском Союзе были Алгол, разработанный немцем Фридрихом Бауэром, и Фортран, пришедший из США (компания IBM), а также ПЛ/1. Экзамены по языкам состояли из логических вычислительных задач, которые должен был решить написанный студентом код. Решали, само собой, также на листочке — некоторые учебные заведения не могли похвастаться наличием даже одного физического компьютера. 

Ближе к концу 70-х ЭВМ всё-таки завозили, что нисколько не облегчало работу студентов. К примеру, одной из первых машин для вычислений, используемых в техникумах, была Наири, разработанная в Ереване. 

Наири-3, ЭВМ, разработанная в Ереване
Наири-3, ЭВМ, разработанная в Ереване

Проблему реализации программ на ней представляло устройство ввода, а именно пишущая машинка Consul-254, которая была подключена к махине. Общение с Наири осуществлялось с помощью АП — «языка автоматического программирования». В алфавите использовались русские буквы и некоторые латинские. Так вот, программы для решения вычислительных задач, написанные для этой ЭВМ, представляли собой «пошаговые инструкции», набор которых нужно было начинать заново, если программист допустил хотя бы одну опечатку или ошибку. Чтобы забить алгоритм решения алгебраического уравнения, требовалось выполнить более 10 команд. Операторы, применяемые на АП, набирались на русском: допустим, вычислим, вставим, идти, введём, печатаем и другие. Показываем пример программы для решения задачи, представленный в учебнике от 1979 года:

Пример решения задачи с помощью программы для ЭВМ «Наири». Учебник М.П. Лапчик, 1979 
Пример решения задачи с помощью программы для ЭВМ «Наири». Учебник М.П. Лапчик, 1979 

Получить доступ к вычислительным машинам более высокого класса студенты не могли, но преподавателям удавалось. Так, самыми желанными для программистов были компьютеры ЕС ЭВМ, советские аналоги IBM 360. Педагоги печатали сотни страниц кода и делились со студентами, а те — конспектировали. 

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

Технологии сменяли друг друга так же быстро, как и в США. Если в начале 1980-х программировать приходилось на перфокартах, набивая код на специальных устройствах, то ближе к середине появились, наконец, терминалы с клавиатурами вместо печатных машинок. 

Дефицит ЭВМ приводил к тому, что рабочее время распределялось на смены между сотрудниками компании, то есть программировали по очереди. Сначала терминалы располагались в одной комнате с ЭВМ, чуть позднее появились полноценные офисы. Языки программирования сменяли друг друга быстро — уже тогда, полстолетия назад, в мире IT не было ничего постоянного. В среднем перемены происходили каждые 3 года. 

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

С чего всё начиналось? Фундаментальная математика

Прикладная математика, математическая логика, изучение алгоритмов были основной любого технического образования СССР.

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

Алексей Андреевич Ляпунов — советский математик, заложивший фундамент кибернетики
Алексей Андреевич Ляпунов — советский математик, заложивший фундамент кибернетики

Первый вычислительный центр СССР был открыт под руководством академика С. Л. Соболева при Московском государственном университете в 1955 году. Приглашенный научный сотрудник А. А. Ляпунов, ставший основоположником советской кибернетики, проводил здесь исследования математических моделей, алгоритмов и операторов в программировании. В середине 50-х под его руководством был основан семинар по программированию и кибернетике («Большой»), ставший центром притяжения молодых учёных и инженеров. В дальнейшем большая часть научных работ по программированию опиралась на исследования Ляпунова. 

Реформа школьного математического образования началась только в 1960-х, во время обострения соперничества США и СССР в области технологий. Тогда настал благоприятный момент для подготовки технических специалистов.

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

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

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

Вот основные достижения подготовительного к технологическому прогрессу периода:

Л.В. Канторович написал труды по линейному программированию (1940), необходимым и достаточным условиям оптимальности (1940), методам функционального анализа (1948). Он заложил теоретическую базу метода двойственных переменных, которая (пока что) не была тепло воспринята математиками и экономиками из-за специфического языка изложения. 

На рубеже 50-х и 60-х были проведены исследования систем линейных неравенств и сформулирована строгая математическая формулировка задач линейного программирования. 

От математики к промышленности

Программисты в СССР смогли, хоть и с отрывом в несколько лет, наверстать технологический прогресс в области информатики.

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

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

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

С программами разобрались, но составлять их напрямую стало в разы труднее. Тогда стали применять стандартные программы для решения типичных вычислительных задач, но они не подходили для объёмных и комплексных нужд. Так началась смена подхода к самим языкам программирования: они должны были упростить работу как программистам, так и преподавателям институтов (проще говоря — быть понятными). 

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

Если кратко — таков был путь программирования от первых ЭВМ до визуальных языков типа Дракон, используемых в космической программе СССР. А теперь более подробно по основным историческим вехам. 

Электроэнергетика и ЭВМ. На чём писались первые алгоритмы?

Прежде чем мы перейдём к обзору программирования золотой эры, давайте посмотрим, как далеко шагнул прогресс ЭВМ, и какой софт использовался на гигантских машинах первой половины XX века. 

Социальные потрясения начала XX века стали толчком для развития электроники и электротехники, а развитие электроэнергетики в рамках госпрограммы интенсификации производства энергии подстёгивало прогресс. «Бум» электрической энергии позволил увидеть свет первым электронным аналоговым машинам уже в 1930-х. Их сконструировал И.С. Брук, но практическое применение пока что ограничивалось военными задачами. 

В 1938-м молодой советский инженер В.Е. Агапов создал и представил электрооптическую считывающую машину, или простыми словами — сканер. За его основу взяты фотодиоды, считывающие и преобразовывающие текст в электрические сигналы. Размеры первого сканера были сравнимы с фортепиано. 

Первое поколение ЭВМ было представлено линейками БЭСМ, Стрела и М-20.

БЭСМ-1 (1953) — высокоскоростная электронная вычислительная машина, которую разработал С. А. Лебедев в Институте точной механики и вычислительной техники Советской академии наук. В БЭСМ-1 было 5000 электронных ламп, а её вычислительная мощность позволяла производить около 10 тыс. операций в секунду. Один из самых быстрых компьютеров мира того времени с системой памяти на основе электронно-лучевых трубок и ферритовых магнитов. БЭСМ мог производить операции над числами «с плавающей запятой» и помогал решать производственные и научные задачи.

Стрела (1954) — экспериментальная ЭВМ, которую разработали в Специальном инженерном бюро 245 (СКБ-245), которое позднее было переименовано в Научно-исследовательский институт электронных математических машин (НИИЭММ), а ещё позже — в Научно-исследовательский центр электронно-вычислительных машин (НИЦЭВМ)​. Машина получила более высокую ёмкость памяти, но вычислительная скорость была в 5 раз скромнее БЭСМ, всего 2 тыс. операций в секунду. Компьютер Стрела, использовавшийся в Институте прикладной математики, позволил создать модель ядерного взрыва. Установка играла важную роль в расчётах для космонавтики и обеспечивала нужды крупнейший госпрограммы. Из-за её ограниченной вычислительной мощности появился свод правил: экономить память, скрупулезно подходить к модульной декомпозиции, аккуратно планировать контрольные точки и т. д. Именно в период использования первых ЭВМ возникла проблема программирования как науки.

М-20 (1958) —  яркий представитель советских ЭВМ, разработанный в Казани. Скорости 20 тыс. операций в секунду удалось добиться благодаря ряду решений: дублирование выполнения доли операций, ускорение нахождения суммы и разности, умножение двух цифр в одно время. 

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

Язык первого советского компилятора основывался на методе Ляпунова: программа представляла собой схему из алгоритмов. Первая «программирующая программа», или ПП1, разрабатывалась для Стрелы, а затем была оптимизирована с помощью обнаружения неоднократно повторяющихся индексированных переменных, которые заранее извлекались в ячейки оперативной памяти. 

Пользователи М-20 организовали Ассоциацию, объединенную общими целями: разработка рекомендаций по разработке единого языка программирования и создание типовых программ. Затем подобные ассоциации образовывались вокруг других новинок рынка ЭВМ.

Опыт, полученный из работы с предыдущими ЭВМ, подтолкнул учёных на создание компиляторов для небезызвестного языка программирования Алгол для компьютера М-20. Компиляторы создавались С.С. Лавровым и М.Р. Шурой-Бурой: первый использовал рекурсивные процедуры для быстрой компиляции, а второй — управляемую генерацию машинного кода. 

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

Почитать о том, как были устроены первые трансляторы в СССР можно здесь

1960-е. Второе поколение ЭВМ

Второе поколение ЭВМ значительно расширило возможности для проведения расчётов. Уже к концу 1960-х БЭСМ-6 заменили М-20. Основной костяк ЭВМ состоял из следующих моделей:

Урал-11, 14 и 16 (с 1964) — ЭВМ с вычислительной скоростью от 10 до 80 тыс. операций в секунду. Набор из трехсот алгоритмов включал алгоритмы для кодовых слов переменной длины от 1 до 48 бит, символов и чисел с фиксированной и плавающей запятой. 11 и 14 серии поддерживали одну операционную систему, а 16-я была многопрограммной. Все модели данной линейки были сконструированы на полупроводниках. 

Программное обеспечение Уралов включало универсальную управляющую программу, выполняющую роль ОС, язык ассемблера (автокод), компиляторы для Алгола и библиотеку стандартных программ. 

БЭСМ-6 (1967) — первый суперкомпьютер Советского союза с производительностью 1 млн операций в секунду. Компьютер был построен на основе транзисторов с функцией переключателя токов и диодных резисторов, также использовалась высокочастотная схема. ЭВМ позволяла выполнять до 14 алгоритмов параллельно, а также сохраняла наиболее часто выполняемые операции в «кэш» (ассоциативные регистры), что повысило производительность. 

Система команд БЭСМ-6 позволяла производить самые разнообразные вычисления для научных, военных и промышленных нужд: вычитать модули, изменять знак числа, корректировать порядок чисел, выполнять стандартные логические операции, а также специфические — выдачу силы единиц в коде и номера старшей страницы. 

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

Программирование на первых партиях БЭСМ-6 осуществлялось без Ассемблера — общение с ЭВМ происходила на языке машинных кодов. 

Разработанные для суперкомпьютера САПы (средства автоматизации труда программиста или управляющие системы) были представлены в двух форматах: Алгол для БЭСМ-6 и Мониторинговая система «Дубна». 

БЭСМ-Алгол включала в себя язык программирования Алгол-60 и оператор-код, который позволял программисту использовать не только язык программирования высокого уровня, но и машинный. «Перевод» с Алгола на язык БЭСМ-6 осуществлялся транслятором. САП Алгол позволял использовать несколько режимов запуска программы, а также содержал библиотеку из более двухсот алгоритмов. В университетах тех лет, кстати, недооценивали способности студентов и обучали их русифицированной версии Алгола с командами вида «иди к…–». 

Алгоритм работы на Алголе-60 для программиста тех лет выглядел примерно так:

  1. Написать программу на бумаге от руки (программист).

  2. Текст набить на печатной машинке на листе и перфоленте (другой сотрудник).

  3. Исправления внести путём копирования верной части кода и замены исправляемой вручную.

Появление мониторинговой системы «Дубна» и программы «dialogue corrector» значительно упростило жизнь программистам того времени. 

Мониторинговая система «Дубна» расширяла возможности использования ЭВМ, позволяя вызывать необходимые трансляторы, создавать персональную библиотеку команд и редактировать программу на её исходном языке. Ближе к концу 60-х программисты получили возможность редактировать программу с монитора. 

Желающим окунуться в процесс программирования 1960-х оставляем ссылку на эмулятор суперкомпьютера СССР БЭСМ-6

А поностальгировать о культовом компьютере можно на страничке памяти БЭСМ-6

1970-е. Эра многообразия 

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

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

Борьба ЕС ЭВМ была сложна и драматична: первая машина линейки ЕС-1020, поступившая на предприятия, работала либо плохо, либо никак

Прикладные задачи и создание пакетов и программ для их решения, а также стандартизация языков программирования — вот ещё одни главных акцентов этого периода. А программисты-математики были заняты вопросами о сложности задач и эффективности методов оптимизации (Немировский, Юдин). 

БЭСМ-6 не сдавала позиций, а спроектированная для неё ОС ИПМ (Задыхайло, Камынин, Любимский) открыла новые возможности для организации задач и процессов. Задачи могли одалживать друг у друга ресурсы и устанавливать разные права доступа к ним. Это позволяло создавать сложные иерархии, где одна задача могла управлять ресурсами и процессами другой задачи. Компиляторы этой ОС были написаны на языке программирования АЛМО.

1980-е. Советская космическая программа 

Разговаривая о 1980-х, хотелось бы уделить внимание языкам программирования и ПО, которые решали задачи Советской космической программы. 

Программное обеспечение для Бурана (1988 г.) было написано на ЕС ЭВМ с использованием Фортрана, который мог удовлетворить потребность в огромных объёмах вычислений. По рассекреченным данным, специально для этой миссии разработали три языка на кириллице: ПРОЛ2 для бортового оборудования, Диполь для наземных испытаний и Лакс для моделирования. После закрытия программы их объединили в язык программирования «Дракон». Создатель языка — Владимир Паронджанов, считает его наиболее удобным из всех графических аналогов. «Дракон» создавался для комфортного программирования — им могли пользоваться не только программисты, но и инженеры. 

Дракон-схемы стали альтернативой блок-схемам, но язык не являлся самостоятельным. Он работает вместе с другим текстовым языком, например, тем же ПРОЛ2. В ячейки схемы помещаются фрагменты кода, а Дракон собирает всё в единый файл. Почитать про этот язык можно здесь

Бортовой компьютер «Салют-4» был совместим с остальными советскими ЭВМ и использовал два из ранее упомянутых языков: ПЛ-1 и Фортран. 

Операционные системы СССР того времени подражали западным аналогам. Основная линейка ЭВМ 80-х «Ряд» была представлена несколькими сериями машин с оперативной памятью ёмкостью от 64 до 256 Кб. Программное обеспечение разрабатывалось в Болгарии и Чехии вплоть до 1985-го. 

«Ряд» обслуживались такими операционками: ДОС ЕС — операционная система для младших моделей линейки «Ряд», ОС ЕС — для средних или более старших моделей. Первая поддерживала такие языки программирования, как ASSEMBLER, COBOl, FORTRAN-4, PASCAL, ПЛ-1 и RPG, а вторая могла обрабатывать до 15 задач одновременно — в точности как система для IBM 360. 

В 1980-х использовались также и UNIX-системы — ИНМОС и МНОС. Они были установлены на промышленные ЭВМ, такие как СМ-4 и СМ-1420. А вот MS-DOS в СССР была адаптирована под русский язык и была способна распознавать команды на кириллице (АльфаДОС и ДОС-16). 

Когда Советский Союз развалился, это сильно ударило по финансированию науки. Многие научные проекты остались без денег, что особенно тяжело отразилось на разработке электроники. В то же время, когда рынок открылся, появилась конкуренция с Западом, и это подтолкнуло к обновлениям и улучшениям в технологиях. Российские IT-компании начали адаптироваться к международным стандартам, и это дало толчок к росту частных предприятий и стартапов.

В 1990-е годы в России начало формироваться новое поколение IT-специалистов и бизнесменов. Они стали использовать новейшие технологии и создавать продукты, которые могли конкурировать на мировом уровне. Это заложило основу для дальнейшего развития и глобализации российской IT-индустрии. Но это уже совсем другая история… 


НЛО прилетело и оставило здесь промокод для читателей нашего блога:

-15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.

Комментарии (22)


  1. CatAssa
    24.04.2024 12:24
    +4

    В 1980-х использовались также и UNIX-системы — ИНМОС и МНОС. Они были установлены на промышленные ЭВМ, такие как СМ-4 и СМ-1420, используемые для очистки и сортировки зерна.

    Картошку с помощью СМ-4 не чистили?


  1. psitronic
    24.04.2024 12:24
    +4

    Еще в 80-х программированию обучали на микрокалькуляторах таких как, например, МК-52 и МК-61 с обратной польской записью. Это был очень интересный опыт, особенно создание "графических" игр на них - гонки, стрелялки, бродилки и т.д. ))

    Также издавались журналы "Программирование" и "Информатика и образование".


  1. saag
    24.04.2024 12:24
    +1

    Техникум, специальность "Программирование для быстродействующих математических машин"„ срок обучения 2 года 6 месяцев, языки программирования ассемблер ЕС ЭВМ, мог быть где то фортран, где-то пл-1, а где то и бейсик на машине искра-226 в девичеcтве wang2200, институт специальность "Прикладная математика"„ срок обучения пять лет, плюс кобол. После написания кода на бумажке, он набивался на перфокартах, перфоратор был похож на большую таку печатную машинку, consul-254 приходилось часто ремонтировать - в блоке управления срабатывались кнопки...


  1. victor_1212
    24.04.2024 12:24
    +7

    ... популярными в Советском Союзе были Алгол, разработанный немцем Фридрихом Бауэром,

    Фридрих Бауэр был интересный человек, после ww2 сотрудничал с Zuse по развитию Z4, дело в том что машины Zuse предназначались для решения систем уравнений, а Бауэр работал над архитектурой машин для вычислений математических формул, одним из первых понял важность обратной польской записи и стека как для вычисления формул, так и для компиляции языков программирования, в 1956 он закончил свою машину на основе реле которую назвал STANISLAUS (типа имя польского святого), все это в Мюнхене при содействии Siemens, позже был одним из членов международной рабочей группы по созданию Algol-60, вместе со своим коллегой Rutishauser внесли заметный вклад в создание языка, именно ему Бауэр посвятил свою известную книгу "‘Informatik" в 1971 году, по тем временам это был лучший учебник по информатике, был руский перевод - Ф.Л. Бауэр, Г. Гооз, Информатика, Мир, 1976, в свое время прочитал с удовольствием, так что рекомендую,

    ps в статье столько неточностей, что легче написать новую


  1. Nika1978
    24.04.2024 12:24

    38 год и сканер на фотодиодах,?!


    1. ABRogov
      24.04.2024 12:24
      +1

      Вы что, не верите?


  1. vadimr
    24.04.2024 12:24
    +1

    ЭВМ "Ряд" – это и есть ЕС ЭВМ. Ряд – шифр ОКР.


    1. jobless
      24.04.2024 12:24

      https://ru.wikipedia.org/wiki/ЕС_ЭВМ ряд 1,2.3.4 и прочие


  1. CatAssa
    24.04.2024 12:24
    +3

    А каким боком методы линейного программирования к "программированию ЭВМ в СССР"?

    Одна и та же страна, или и там и тут слово "программирование" попадается?


  1. buratino
    24.04.2024 12:24
    +3

    1970-е. Техникумы Советского союза активно формируют группы для обучения будущих программисток. Нет, мы не ошиблись — в середине 70-х большую часть программистов составляли женщины. . Обучение длилось 5 лет,

    У меня вопрос - где вы такую забористую клюкву берете?

    На один семестр приходился один новый язык программирования.

    Это в техникуме. С карандашом и резинкой.

    Обучение в техникумах, как и в наше время, было практико-ориентированным и концентрированным. Студенты проходили полугодовую практику, работая с ЭВМ и оттачивая навыки программирования, в то время как университетские программы длились дольше (5-6 лет в зависимости формы обучения) и включали десятки ненужных предметов.

    Получить доступ к вычислительным машинам более высокого класса студенты не могли, но преподавателям удавалось. Так, самыми желанными для программистов были компьютеры ЕС ЭВМ, советские аналоги IBM 360. Педагоги печатали сотни страниц кода и делились со студентами, а те — конспектировали. 

    Откуда это, а? Печатали - чем и на чем? Откуда брали печатаемое? Все это отдельная история, но вы не в курсе.

    Для первого поколения ЭВМ

    Проблемой этого периода была необходимость набирать машинный код на перфокартах.

    После перфокарт, на втором поколении, с БЭСМ6

    Алгоритм работы на Алголе-60 для программиста тех лет выглядел примерно так:

    1. Написать программу на бумаге от руки (программист).

    2. Текст набить на печатной машинке на листе и перфоленте (другой сотрудник).

    3. Исправления внести путём копирования верной части кода и замены исправляемой вручную.

    Т.е. после перфокарт перешли к печатной машине с перфолентой путем копирования неизвестно чего неизвестно куда. Что такое "замена исправляемой вручную"?


    1. victor_1212
      24.04.2024 12:24
      +2

      где вы такую забористую клюкву берете?

      ув. автор написал на данный момент 217 статей за три года, тематика разнообразная - от паяльников до черных дыр, в среднем каждые 4-5 дней ждет что-нибудь новое, попробуйте угадать следующую тему :)


      1. SIISII
        24.04.2024 12:24

        нейросеть -- такая нейросеть :)


    1. nronnie
      24.04.2024 12:24

      У меня вопрос - где вы такую забористую клюкву берете?

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


      1. buratino
        24.04.2024 12:24
        +1

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


  1. klimkinMD
    24.04.2024 12:24
    +3

    Где машина М-2, Карцев, Кронрод, Брудно, Адельсон-Вельский, Арлазаров, Усков, "Каисса" в конце концов, ЭВМ "Сетунь"? Страсть к писательству сильно опережает возможности аффтара


  1. Kahelman
    24.04.2024 12:24
    +2

      в то время как университетские программы длились дольше (5-6 лет в зависимости формы обучения) и включали десятки ненужных предметов.

    После этой фразы статью можно дальше не читать ….


    1. Ababaj
      24.04.2024 12:24
      +1

      Я доскажу: 40 лет назад во время учёбы на мех- мате Казанского университета, наш профессор говорил: "программированием (на ЭВМ) и теорией графов можно занимать после 7 класса". Это и сейчас ВЕРНО!


  1. saipr
    24.04.2024 12:24

    Ба,знакомые все лица, вычислительный центр 4 ЦНИИ МО СССР:

    «Ряд» обслуживались такими операционками: ДОС ЕС — операционная система
    для младших моделей линейки «Ряд», ОС ЕС — для средних или более старших
    моделей. Первая поддерживала такие языки программирования, как
    ASSEMBLER, COBOl, FORTRAN-4, PASCAL, ПЛ-1 и RPG

    О, сколько сил я потратил, что бы хоть как-то продвинуть в этом ВЦ Unix на тех же ЕС ЭВМ и язык Си. Как только меня не обзывали, какие препоны не чинили:

    Кстати, спустя годы, в начале 2000-х, Саша Назаренко, который в это
    время был директором департамента новых технологий в НТЦ «КАМИ», при
    встрече со мной сказал искреннее спасибо за то, что тогда в 80-х
    настаивал на изучении и внедрении Юникса и Си.

    Но стенд имитационного программировани мы уже строили как сеть, на Unix-e, на персоналках:


  1. saipr
    24.04.2024 12:24

    В 1980-х использовались также и UNIX-системы — ИНМОС и МНОС. Они были
    установлены на промышленные ЭВМ, такие как СМ-4 и СМ-1420.

    Первый вопрос, а какие непромышленные ЭВМ были в 80-х годах?

    Ну и если говорить об UNIX-системах, то нельзя забывать о МОС ЕС (мобильгая операционная система) для ЕС ЭВМ. При чем МОС ЕС могла функционировать и на ПП ЭВМ ЕС-18xx.


    1. victor_1212
      24.04.2024 12:24

      надо полагать те, что не использовались в промышленности, Вы конечно знаете, что их было достаточно :)


  1. kvk-2019
    24.04.2024 12:24
    +1

    Борьба ЕС ЭВМ была сложна и драматична: первая машина линейки ЕС-1020, поступившая на предприятия, работала либо плохо, либо никак.

    По крайней мере в 80-е ЕС-1020 работала, правда приходилось у нас соблюдать ряд условий, навскидку по памяти: работала вообще только DOS/ES (вроде, 1.8, 2.0, 2.1, 2.2), что-то более сложное, неверно, даже и сгенерировать не пытались, "большие длительные сортировки" проходили только с применением "контрольных точек" - я как-то инструкцию операторам писал, и сколько-нибудь стабильно всё работало, если оставить только один из четырёх "кубов" памяти. Наследие DOS/ES дало о себе знать, когда запустили СВМ на дисках большой ёмкости, по традиции в DOS JCL во всю применялось выделение дисковой памяти на конкретные дорожки. Я как-то попытался написать свою систему управления пакетами (JCL в БАМ) и некоего подобия автоматического изменения использования ёмкости накопителей без исправления вручную директив JCL, так там, несмотря на использование ассемблера для самоперемещаемости (программа запускалась вместо заглушки для JOB ACCT) и "динамические оверлеи" для подпрограмм в памяти, требования к этой самой памяти были намного больше, насколько помню. В общем, исследовательский проект "не взлетел" даже и на машине Ряда 2. Отвлёкся. Зато отлаживать программы на ЕС-1020 можно было в некоторых случаях без непреодолимых проблем многозадачных ОС. В то время у нас в одновременно выполнялась всегда только одна программа в разделе BG (ну я до трёх запускал, бывало в F1 и F2 соответственно, предварительно распределив под них часть доступной памяти), так вот, в PL/I , чтобы обозначить номер оператора по листингу, транслятором сохранялась машинная инструкция что-то вроде "безусловное отсутствие перехода по адресу", а в поле адреса как раз и был номер оператора. В общем, после ряда вычислений некоторая редкая отладка с остановкой вычислений кнопкой была возможна, но до такого, как правило не доходило. Просто решил повспоминать почему-то :)


    1. SIISII
      24.04.2024 12:24
      +1

      Основные проблемы с ЕС-1020, как и с другими ранними машинами, были из-за очень ненадёжных микросхем: их массовый выпуск только налаживался, по большому счёту. Понятно, что ко второй половине 1970-х это уже осилили, надёжность сильно поднялась, и машины постоянно ломаться перестали.

      Ну а использование разных ОС -- тут да. ЕС-1020 проектировалась как машина малой производительности (порядка 30 тыс. простых операций типа сложения в секунду), так что, очевидно, она не могла эффективно выполнять много задач и всё такое. ОС ЕС, включая 4.1, сгенерить под неё было можно (из 6.1 поддержку официально убрали), но практического смысла было 0: просто машина не того класса.