История развития программного обеспечения

Развитие вычислительного дела в СССР

Электронный архив А.П. Ершова [1]

Доклад, подлежащий прочтению на ХХХI Дибольдовской конференции

Введение

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

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

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

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

+ Развитие вычислительного дела в СССР находится за пределами действия многонациональных вычислительных компаний.

+ Общественная система СССР оказывает непосредственное и определяющее влияние на способы развития и использования вычислительных средств.

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

История

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

На рис. 1 показаны ключевые вехи в разработке конструкций ЭВМ. Первая советская электронная вычислительная машина МЭСМ была разработана Академией наук Украины под руководством С.А. Лебедева в 1951 г. [1]. С небольшим сдвигом под его руководством шла разработка (уже в Москве) первой ЭВМ, обладавшей полной логической структурой. Эта машина, БЭСМ, была подготовлена к опытной эксплуатации в 1952 г. [2]. В 1953 г. была предъявлена к сдаче машина СТРЕЛА, первая ЭВМ серийного изготовления [3]. Первыми полупроводниковыми машинами в СССР стали машина Раздан-2, разработанная в Ереванском институте электронных машин, машина Днепр [4], созданная в Институте кибернетики АН УССР специально для целей управления, и машина Минск-2, положившая начало известной серии машин «Минск». В 1966 г. начала серийно производиться машина БЭСМ-6, которая, обладая производительностью порядка 1 млн. оп/сек, до сих пор остается самой мощной ЭВМ в СССР. Первая ЭВМ со встроенным дисплеем (МИР-2), разработанная в 1969 г. в Институте кибернетики, содержала ряд интересных свойств микропрограммного проектирования [5]. В 1970 г. были разработаны первые машины 3-го поколения: малая (и очень популярная) машина Наири [6] и машина среднего класса М 3000 [7] с архитектурой типа ИБМ/360. В 1971 г. начали функционировать несколько систем коллективного пользования: универсальная система разделения времени АИСТ-0, разработанная в Новосибирском научном центре [8], система резервирования авиабилетов СИРЕНА [9] и ряд адаптаций БЭСМ-6 к нуждам коллективного доступа с терминалов [10, 11]. Разработка первых минимашин была завершена в 1971 году [12, 13], а Единой системы ЭВМ – в 1972 году [14].

 

Развитие программного обеспечения в СССР показано на рис. 2. Уже первые машины, БЭСМ и СТРЕЛА, имели одностороннюю память, в которую была встроена библиотека математических и преобразующих функций с автоматическим вызовом подпрограмм в процессе исполнения [15]. В 1955 г. появились первые компиляторы с прообразом алгоритмических языков, содержащих операторы присваивания, условные операторы, операторы цикла и переменные с индексами [16, 17]. Как ни странно, первые ассемблеры появились позже, в 1956–1957 гг. [18]. В 1962 г. началась эксплуатация первого в СССР транслятора с Алгола 60 [19]. В 1962 г. в Вычислительной центре СО АН СССР в Новосибирске был создан первый прототип операционной системы для пакетной обработки [20]. Производственные версии операционных систем начали распространяться заводом-изготовителем с 1966 г. [21] для ЭВМ Минск-22 и БЭСМ-6. В 1967 г. начали использоваться языки системного программирования Эпсилон (см. ниже) и язык АЛМО, позволяющий решать проблему переноса программного обеспечения [72]. В 1971 г. в уже упоминавшейся системе АИСТ-0 работала операционная система, объединяющая пакетную обработку с надфоновым диалогом [22]. Аналогичная операционная система для БЭСМ-6, разработанная в Институте прикладной математики АН СССР [23], начала распространяться среди пользователей в 1972 г. Ряд возможностей коллективного пользования имела ОС для ЭВМ Днепр-2 [24].

Основные события в области применения ЭВМ показаны на рис. 3. Первые научные применения ЭВМ (интегрирование функций, аэродинамические расчеты) были сделаны на МЭСМ еще в 1951 г. на стадии наладки этой машины. В 1953 г. были опубликованы первые математические таблицы, рассчитанные с помощью ЭВМ. В 1954 г. был организован первый академический вычислительный центр (ВЦ АН СССР), поныне возглавляемый академиком А.А. Дородницыным, пост-президентом ИФИП. В 1956 г. в ИТМ и ВТ были произведены первые успешные эксперименты в машинной переводе [25]. Первые экономические расчеты были произведены в 1957 г. в порядке подготовки предложений по внедрению ЭВМ в экономику [26]. В 1958 г. М.Л. Цетлин построил и запрограммировал математическую модель сердца, положив начало медицинским применениям [27]. В 1961 г. были проделаны первые опыты по машинному управлению металлургическим производством [4]. В 1964 г. вошел в строй вычислительный центр в Госбанке СССР [30]. В 1966 г. была создана полная шахматная программа, которая обыграла американскую программу (для ИВМ 7090) в известном матче из четырех партий [28]. В 1967 г. началось регулярное функционирование первой в СССР автоматизированной системы управления на Львовском радиозаводе [29].

Говоря о развитии ЭВМ, нельзя не сказать о соответствующих акциях, предпринятых в сфере образования (рис. 4). Вузовская работа по оборудованию ЭВМ началась в 1951 г. с появлением С.А. Лебедева в Московском энергетическом институте. Профессор А.А. Ляпунов в 1951–1952 учебном году прочел в МГУ первый в СССР систематический курс по программированию. В 1953 г. в СССР была защищена первая кандидатская диссертация, подготовленная с помощью ЭВМ. Она касалась метода расчетов откосов земляных насыпей. Первый университетский ВЦ был открыт в 1954 г. в МГУ [31]. Он использовал сначала ЭВМ среднего класса М-2. В 1961 г. в Новосибирске начались регулярные классы для школьников по программированию [32]. Признание важности экономических применений ЭВМ привело к введению специальности «экономическая кибернетика», открытой в 1962 г. в ряде экономических вузов страны. Аналогичная специальность для инженерных применений, «инженерная математика», была введена в 1964 г. во многих технических вузах. Университетская специальность по прикладной математике, что в СССР равносильно понятию «вычислительных наук», была открыта во всех крупнейших университетах в 1969 г.

Историю развития ЭВМ в СССР

Если попытаться дать максимально краткое резюме сделанного исторического очерка,  то можно сказать следующее (рис. 5). Историю развития ЭВМ в СССР, а также его четко предвидимую перспективу можно разбить на четыре десятилетних периода.

1950-е годы в СССР характеризовались 1-ым поколением ЭВМ, их применением для решения наиболее актуальных научно-технических проблем и выполнением серии пионерских работ по конструированию ЭВМ, программному обеспечению и созданию основных концепций их применения. В 60-е годы появились ЭВМ 2-го поколения, были заложены основы промышленного производства ЭВМ и их компонентов, были идентифицированы и сформированы все компоненты вычислительного дела. В 70-е годы происходит широкая экспансия ЭВМ 3-го поколения во все отрасли народного хозяйства. Во всех крупных организациях применение ЭВМ начинает носить регулярный характер. Информационная база организации в своем основном объеме хранится на машинных носителях. В 80-е годы создается сеть ЭВМ, терминалов и коммутационных центров, допускающая интеграцию баз данных и их автоматическую транспортировку с электронными скоростями. Все без исключения хозяйственные единицы народного хозяйства вовлекаются в сферу применения ЭВМ через сеть вычислительных центров коллективного пользования. В широких масштабах начинают развиваться массовые применения ЭВМ (школы, медицинское обслуживание, публичные библиотеки, домашние терминалы).

Текущая ситуация

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

Первой из них является программа выпуска ЭВМ. Начиная с 1971 г. производство ЭВМ рассматривается как самостоятельный сектор промышленности с отдельной статистикой. Стоимость выпускаемых в 1970 г. ЭВМ составила 710 млн. рублей [33]. Программа выпуска ЭВМ на период 1971–1975 гг. предусматривает рост производства ЭВМ в 2,6 раза [34]. Фактический рост выпуска промышленностью ЭВМ превышает эти показатели и представлен на рис. 6 [33, 35]. Главным компонентом этого бума является выпуск Единой серии ЭВМ (ЕС ЭВМ). Это совместное мероприятие семи социалистических стран представляет собой тоже своего рода многонациональную компанию большого масштаба. В проектировании серии и подготовке производства приняло участие 20 тыс. человек. В производство ЕС ЭВМ вовлечено 70 предприятий с общей численностью до 300 тыс. человек [36].

Второй программой является автоматизация производства и управления с помощью ЭВМ. В русской терминологии средством решения задачи является построение автоматизированных систем управления (АСУ). Главным потребителем таких систем является промышленность. В соответствии с этим основная классификация АСУ выглядит следующим образом:

+ Автоматизированные системы управления технологическим процессом (АСУТП);

+ Автоматизированные системы управления предприятием (АСУП);

+ Отраслевые автоматизированные системы управления (ОАСУ);

+ Территориальные АСУ (ТАСУ).

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

Программа построения АСУ началась в рамках 8-го пятилетнего плана на период 1966-1970 гг.  В этот период в промышленности СССР было введено в строй свыше 400 АСУ в 30-ти секторах экономики, на что было израсходовано свыше 1 млрд. рублей, не считая расходов на научные исследования. Несмотря на экспериментальный характер многих систем и малый период их работы, достигнутая экономия в производстве, прежде всего благодаря росту производительности труда, составила за этот срок 680 млн. рублей [37].

Особое развитие эта программа получила в 9-ом пятилетнем плане. Директивы XXIV съезда КПСС предписывают ввести в строй в течение 1971–1975 гг. порядка 2 тыс. АСУ всех видов, в том числе 65 ОАСУ союзного масштаба, 150 республиканских ОАСУ, свыше 1 тыс. АСУП и 670 АСУТП. Ход выполнения этой программы показан на рис. 7 [35, 37, 38].

Выпуск и ход выполнения программы

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

ОГАС представляет собой, прежде всего, комплекс организационных мероприятий и нормативов, создающих однородную структуру управления секторами национальной экономики и их предприятиями и обеспечивающих информационную совместимость документов и процедур управления. Это создает потенциальные предпосылки к взаимодействию и информационному обмену между отраслевыми и производственными системами управления [37].

Одновременно в СССР развиваются работы по созданию единой автоматизированной системы связи страны (ЕАСС). Характер этой программы не требует особых комментариев, за исключением того, что огромные размеры Советского Союза и его широтная протяженность делают решение этой задачи особенно сложным. Неотъемлемым компонентом ЕАСС является общегосударственная система передачи данных (ОСПД), к которой можно будет подключить любую ЭВМ или подходящий терминал.

Главные компоненты ОГАС

На втором этапе развития ОГАС в Советском Союзе на основе машин 4-го поколения будет создано большое количество вычислительных центров коллективного пользования, которые образуют третья компоненту ОГАС – государственную сеть вычислительных центров. По некоторым оценка, произведенным еще на ранней стадии проработки ГСВЦ, в нее должно входить 10 тыс. вычислительных центров коллективного пользования [40]. Большая часть этих ВЦ и их терминалов образует передний край применения вычислительных машин, который с помощью сети передачи данных, разделения времени и коллективного доступа охватит, в конце концов, все хозяйственные единицы национальной экономики.

Развитию ОГАС отдан весьма высокий приоритет. Для проектирования системы в 1971 г. создана специальная организация – Всесоюзный НИИ проблем организации управления при ГКНТ СМ СССР. Его директором и руководителем работ является член-корреспондент АН СССР Д.Г. Жимерин [41]. Он является одновременно первым заместителем председателя ГКНТ академика В.А. Кириллина, который, в свою очередь, является заместителем Председателя СМ СССР А.Н. Косыгина. Научным руководителем проектирования ОГАС является академик В.М. Глушков.

Работы по созданию ОГАС будут проходить в две крупные стадии. На первой стадии, относящейся к 1971–1980 гг., будет осуществлено общее проектирование системы, будет унифицирована документация и установлена информационная совместимость процедур управления и передачи данных. Уже упомянутые территориальные отраслевые и производственные АСУ, развиваемые в этот период, будут создаваться и функционировать с учетом их предстоящего включения в ОГАС.

На этой же стадии наряду с секторальными АСУ будет создано несколько функциональных подсистем, по своей сущности проникающих во все сектора экономики. Из них стоит упомянуть хотя бы три. Это - автоматизированная система плановых расчетов, АСПР [42], обеспечивающая единую методику и информационную совместимость процедур планирования на всех уровнях управления. Затем автоматизированная система государственной статистики, АСГС, которая будет представлять собой древовидную структуру банков данных, ЭВМ и линий связи, терминалы которой находятся во всех пунктах сбора первичной информации, являющейся предметом статического учета, а вершиной которой является ВЦ ЦСУ СССР. И, наконец, автоматизированная система стандартизации и метрологии, АССМ, - всесоюзная информационная система, осуществляющая распространение стандартов и нормативов и сбор контрольной информации о степени их соблюдения [37].

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

Создание ОГАС и связанных с ней АСУ, системы передачи данных и сети вычислительных центров коллективного пользования, естественно, не исчерпывает всех аспектов развития и применении ЭВМ. Однако благодаря своим масштабам, целеустремленности и богатству проблематики, она настолько доминирует и воодушевляет специалистов по ЭВМ, софтверу и управлению, что каждый из них хорошо помнит историческую формулировку директив XXIV съезда КПСС, открывшую путь этой программе [43].

«… Развернуть работы по созданию и внедрению автоматизированных систем планирования и управления отраслями, территориальными организациями, объединениями, предприятиями. Создать общегосударственную автоматизированную систему сбора и обработки информации для учета, планирования и управления народным хозяйством на базе государственной сети вычислительных центров и единой автоматизированной сети связи страны. При этом обеспечить с самого начала проведение принципа организационного, методологического и технического единства этой системы».

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

Вычислительные машины

перечень главных машин, активно используемых в СССР

Сначала о состоянии вычислительного парка. На рис. 9 показан перечень главных машин, активно используемых в СССР. Машины 2-го поколения еще составляют большинство. К ним относятся БЭСМ-6 – мощная и надежная машина, ценность которой, как ни странно, повышается с годами благодаря накоплению софтвера; Минск-32 – очень популярная недорогая машина с приличным программным обеспечением, главная машина для построения АСУ; М-220 и БЭСМ-4 – главная рабочая сила 60-х годов для инженерных и малых научных применений. Я не описываю подробно их характеристики, приводя на рисунке в правой колонке сопоставимые по характеристикам популярные модели западных ЭВМ. Мир-2 не имеет прямого аналога с какой-либо широко известной моделью и представляет собой комбинацию микропрограммной байтовой минимашины с буквенно-цифровым дисплеем со световым пером. Имея широкий круг применений как ЭВМ для инженерных расчетов и аналитических действий, он также может использоваться как терминальная машина. Наири-3 очень популярна как компактная малая машина для инженерных и проектных отделов. Она имеет обширную одностороннюю память, хранящую библиотеку подпрограмм и транслятор с Алгола. Ее последние модификации имеют эмулятор, обеспечивающий совместимость с ЭВМ Минск-22 [44, 45].

Модели ЕС ЭВМ не требуют особых комментариев. Эти машины выполнены на интегральных схемах и имеют характеристики производительности, приближающиеся к таковым ИБМ-овских моделей 360/ с номерами 30, 40, 50, 60, 70.

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

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

Программное обеспечение

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

Официальное ПО, в свою очередь, делится на базовое и вторичное ПО. Базовое ПО – это начальный состав софтвера, предписанный изготовителю генеральным заказчиком. Для народнохозяйственных применений универсальных ЭВМ таковым является ГКНТ СМ СССР. Базовое ПО обычно является компромиссом между неограниченными запросами пользователей и доступными ресурсами системных программистов у изготовителя. Для разработки базового ПО изготовители часто привлекают на контрактной основе институты АН СССР и, в особенности, вузы. В СССР команды системных программистов до сих пор обычно не являются независимыми коммерческими организациями, а входят в состав более крупных научных организаций.

Вторичное ПО – это, как правило, ПО, успешно разрабатываемое пользователями, а затем, обычно по рекомендации авторитетного органа – комиссии АН СССР, ГКНТ или ассоциации пользователей, переданное изготовителю и ратифицированное последним.

В сложившейся в СССР терминологии развитое ПО ЭВМ рассматривают состоящим из трех частей.

Операционная система (ОС) – общая организация ПО, определяющая характер работы ЭВМ и, более конкретно, совокупность управляющих программ и примыкающих к ним утилит.

Система программирования (СП) – трансляторы, средства отладки и связи человека и ЭВМ.

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

ПО ЭВМ Минск-32 является примером высоко интегрированной системы сравнительно хорошего качества. Подавляющая часть пользователей применяет официальное ПО без особых доработок, которое составляет свыше 225 тыс. команд, документированное в 175 томах [47].

Высокая степень интеграции характеризуется также ПО для ЕС ЭВМ, стартовый вариант которого, предъявленный в 1972 г., составлял 600 тыс. команд, по своему составу близкий к ДОС/360 [48].

Операционные системы

Официальные версии операционных систем, поставляемые изготовителями, обеспечивают для средних и больших ЭВМ однопроцессорную мультипрограммную пакетную обработку. Эти ОС имеют приличные показатели по эффективности загрузки оборудования. Накладные расходы на систему в ОС ДИСПАК на БЭСМ-6 составляют не более 9 %, с процентом простоя процессора – не более 3 % и с коэффициентом мультипрограммности – свыше 1.6 % [49].

Ряд активно используемых неофициальных систем имеет более широкие возможности. Операционная система Института прикладной математики АН СССР для БЭСМ-6 допускает сочетание фоновой мультипрограммной пакетной обработки с надфоновым диалогом и использует философию мультипроцессинга [23]. Разработана, но еще не ратифицирована универсальная система разделения времени для машины Минск-32 [50].

Операционные системы малых машин и минимашин допускают совмещение основных вычислений и взаимодействие с оператором. Официальная ОС для ЭВМ Днепр-2 также имеет ряд возможностей для надфонового диалога [24]. Общее количество действующих в настоящее время систем разделения времени можно оценить в несколько десятков, однако их количество стремительно увеличивается. Наиболее распространенными терминалами в настоящее время являются стандартные телетайпы RFT из ГДР, терминалы на основе чехословацких электрических пишущих машинок «Консул» и венгерские буквенно-цифровые дисплеи «Видеотон».

Системы программирования

Переходя к обсуждению языков программирования, следует, прежде всего, заметить, что Советский Союз стал домом Алгола. Алгол и его расширение в сторону комплексной и векторно-матричной арифметики, Альфа-язык, являются главными языками для научных, технических и образовательных целей. На рис. 10 показано разбиение по языкам задач, прошедших через Вычислительный центр Новосибирского научного центра (3 тыс. пользователей) в апреле 1974 г. Одной из причин популярности Алгола является успешное решение эффективной трансляции с языков Алгол и Альфа в советских трансляторах. О языке Эпсилон (языке системного программирования) я скажу чуть позже.

разбиение по языкам

Я не располагаю подробной сравнительной статистикой, но имею возможность рассказать о случае с одной задачей метеорологических расчетов. Автор задачи, доктор Г.Р. Контарев из ВЦ СО АН СССР, во время своих поездок во Францию и США имел возможность пропустить эту задачу, не меняя вычислительной схемы, через несколько машин с разными трансляторами. На рис. 11 показаны результаты эксперимента. Эффективность трансляторов сравнивалась по значению произведения времени работы программы на номинальную мощность ЭВМ, отнесенного к значению этого произведения для БЭСМ-6.

Несколько слов о судьбе Фортрана и Кобола в СССР. Появление Фортрана в СССР (только во 2-й половине 60-х годов!) является исключительно результатом научного обмена. Первые реализации языка сделаны в Серпухове для ЭВМ Минск-22 [51] и в Дубне для ЭВМ БЭСМ-6 [52] по требованию физиков, пожелавших после визитов в CERN использовать созданные там программы обработки физических экспериментов. Продажа западных ЭВМ в СССР также способствовала постепенному росту применения Фортрана, хотя рассчитывать на «фортрановский» бум не приходится. Тем не менее, Фортран, так же, как Кобол и Алгол, являются по закону обязательными языками для любой ЭВМ общего назначения.

Проблема языка для экономических расчетов стала актуальной в СССР в начале 60-х годов. Первой реакцией на спрос были адаптации Алгола к описанию структурированных данных, известные под названиями Алгэк [53] и Алгэм [54]. Для этих языков было создано несколько трансляторов. Терпеливая работа по изучению Кобола и его адаптации к русскому языку, проводившаяся в Киеве и Минске, принесла свои плоды. Был согласован так называемый минимальный вариант Кобла [55, 56], который лег в основу официальной реализации Кобола на ЭВМ Днепр-2 и Минск-32. Эти реализации используются довольно широко. В настоящее время подготовлен проект русского стандарта полного Кобола, соответствующего версии ANSI-Кобола.

Реализация языков ПЛ/I, Алгола 68 и Симулы 67 пока что отсутствует, хотя работы над трансляторами близки к завершению.

Почти все работающие системы разделения времени общего назначения используют в качестве диалоговых языков версии языков Джосс и Бейсик [57, 58, 59, 60], как английские, так и русские. В целом ситуацию с языками программирования в Советском Союзе можно представить в виде качественной картины, показанной на рис. 12. Направление стрелок отражает тенденцию развития.

языки  программирования в Советском Союзе

Прикладные программы

Сначала развитие прикладных программ шло по линии библиотек стандартных подпрограмм с автоматизацией их вызова либо при компиляции, либо в процессе исполнения. Было разработана несколько таких систем для машин 1-го и 2-го поколения, некоторые из которых, в особенности для машин серии М-20 (М-20, БЭСМ-3М, БЭСМ-4, М-220, М-222), оказались очень полезными и удобными [18]. Высокое качество трансляции в некоторых системах программирования сделало реальным накапливать библиотеки стандартных подпрограмм в виде процедур, выраженных на алгоритмических языках.

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

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

+ Доступ к данным (поиск, выборка, занесение, сортировка).

+ Функциональные модули (определение спецификаций задачи).

+Связь с пользователями (трансляторы входных данных, редактирование текстов, воспроизведение информации).

+Управляющие модули (организация вызова нужных модулей, отображение на память, передача параметров).

+ Связь с разработчиками (внесение изменений, развитие системы, статистика).

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

В советской практике сейчас наиболее актуальными являются такие «пакеты прикладных программ», как уже обсуждавшиеся АСУ и, в особенности, АСУ предприятий. В начале 1969 г. по всему Советскому Союзу было произведено статическое обследование, которое охватило свыше 20 % всех АСУП, разработанных в промышленности к этому времени [61, 62]. Резюме, суммирующее ряд данных для «средней» системы 1969 г., показано на рис. 14. Помимо некоторых интересных чисто экономических данных, оно демонстрирует организационную сложность задачи проектирования и реализации. Стрелочки, как обычно, показывают тенденцию к изменению в более зрелом периоде.

АСУП

Технология программирования

Технология программирования в СССР развивается в общих рамках придания этой деятельности более инженерного характера. Материалы известных европейских конференций по технологии программирования [63, 64] хорошо известны в нашей стране и пользуются общим признанием. Организация, документация, тщательность спецификаций, планирование, дисциплина отладки – вот те понятии, которые стремится осмыслить для себя каждый руководитель группы разработки ПО. Продуктивность советских программистов растет медленно, но верно. Мой личный опыт дал мне случайно хороший материал для сравнения. В 1961–1965 гг. и в 1970–1973 гг. я дважды руководил практически одним и тем же проектом – разработкой оптимизирующего транслятора с языка Альфа. Первый раз – для ЭВМ М-20 и второй раз – для БЭСМ-6. Команда в каждом их этих случаев была почти в равной степени неопытна (первая система), так что всё различие существовало в характере организации и в общем ходе времени. Сравнение этих двух проектов показано на рис. 15 [65, 66]. Оно не требует особых комментариев, кроме нескольких.

сравнение альфа-проектов

Большая разница в объёме связана со значительным ростом сервисных свойств системы. При разработке библиотеки утилитов, обеспечивающих сервис, был проделан частичный эксперимент по реализации концепции разработки, известной под названием «метод команды со старшим программистом» [67]. Такая мини-команда из одного старшего программиста и двух его помощников за четыре месяца спроектировала библиотеку утилитов объёмом в 24 тыс. команд.

В СССР кроме ассемблеров получили определенное распространение машинно-ориентированные языки более высокого уровня. Один из них, язык Эпсилон, созданный в ВЦ СО АН СССР [68], в дополнение к свойствам ассемблера обладает процедурными возможностями, а также способностью работы со строками, таблицами и списочными структурами. Он реализован на нескольких моделях ЭВМ. Так же, как и везде, имеются эксперименты по использованию и других языков для системного программирования (Алгол, Фортран, Кобол, Лисп), однако они пока ещё не получили широкого распространения.

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

Примеры системного программирования

– Индивидуальные способности и опыт системного программиста значат больше, чем любые организационные рамки (см. 1-ю строку, в которой транслятор написан вручную одним человеком).

– Машино-ориентированный язык высокого уровня повышает производительность, но снижает качество программы. Это заставляет пользоваться им с большой осторожностью, понижая производительность. Этим объясняются большие разбросы по производительности при «эпсилон-программировании» (строки 2, 4, 6, 10).

– На больших интегрированных системах производительность падает. Однако именно здесь есть резервы для организации улучшений (строки 5, 9, 10).

– Производительность на супервизорных программах в два раза ниже, нежели на трансляторах.

Научная жизнь

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

Довольно объективно тенденции научной работы демонстрируются языком публикаций. При подготовке этого доклада я просмотрел 800 научно-технических публикаций, появившихся в универсальных вычислительных изданиях за последние четыре года. К ним относятся два журнала – «Управляющие системы и машины» и «Кибернетика», труды пяти конференций и шесть сборников статей по вычислительному делу. Для сравнения, такое же количество публикаций было посмотрено и в американской литературе. Выборка состояла из пяти журналов аналогичного профиля (Дейтамейшен, Ай-Би-Эм Системз Джорнел, Эй-Си-Эм Коммьюникейшенз и Джорнел, Джорнел оф Компьютер энд Системз Сайенс) и двух выпусков Трудов АФИПС.

Публикации

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

В СССР нет традиций ежегодных многотысячных профессиональных собраний, аналогичных Национальным вычислительным конференциям в США или конгрессам Еврокон в Англии. Отчасти это опять-таки объясняется слишком большой территорией Советского Союза. Однако тематические симпозиумы и конференции, в том числе и по вычислительному делу, проходят достаточно активно и регулярно. Сотрудники Вычислительного центра СО АН СССР (650 человек в штате) совершают в год 600 деловых поездок в другие города СССР и 40 – за границу. По крайней мере, две трети таких поездок связаны с участием в научно-технических совещаниях. В 1974 г. из всех научных конференций, проводимых Академией наук СССР, 15 % составляют совещания, имеющие прямое отношение к вычислительному делу.

Образование и переподготовка

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

Сначала несколько общих замечаний. Высшее образование в СССР обеспечивают университеты и так называемые институты. Университеты соответствуют факультетам наук в европейских и американских университетах (я не говорю о гуманитарном образовании). Институты, в свою очередь, делятся на так называемые политехнические институты широкого профиля (соответствующие инженерным факультетам и техническим университетам), экономические институты (примерно соответствующие школам бизнеса) и отраслевые институты, готовящие инженеров специально для некоторой отрасли промышленности или других секторов народного хозяйства. В СССР в 1971 г. было всего 55 университетов, 55 политехнических, 34 экономических и 657 отраслевых институтов. Каждый студент, оканчивающий университет или институтский курс (5 лет), получает своего рода академическую степень дипломированного специалиста, одновременно подтверждающую его некоторую профессиональную специальность. Существует формальный список этих специальностей, который составляет Министерство высшего образования. Открытие новой формальной специальности является важным событием, канонизирующим новую степень научно-технического прогресса и утверждающую ответственность высшей школы за обеспечение народного хозяйства страны этими специалистами. С точки зрения внутренней жизни университета или института открытие новой специальности даёт возможность подготовить для неё новый учебный план, не совпадающий с таковыми для старых специальностей.

В начале 60-х годов главными событиями стали открытие специальности «экономическая кибернетика» в университетах и специальности «инженер-математик» в политехнических институтах. Первое ознаменовало большой поворот в подготовке руководителей промышленности с хорошими знаниями в сфере управления и экономики: за 12 лет (1960–1972 гг.) число студентов по экономическим специальностям возросло с 217 тыс. человек до 565 тыс. [70]. Вторая специальность позволила резко (примерно в 2 раза) усилить математическую подготовку инженеров.

Главными событиями в подготовке специалистов по вычислительному делу было открытие в 1969 г. специальностей по так называемой прикладной математике (университеты и технологические институты) и по АСУ (институты). Прикладная математика является аналогом вычислительной науки и информатики в европейских и американских вузах. Специальность АСУ призвана готовить людей, занятых проектированием и использованием таких систем. В 1971 г. в СССР было порядка 50 тыс. специалистов по АСУ примерно с таким же количеством ежегодно возникающих вакансий [71].

В 1972 г. прием на специальность по прикладной математике был открыт в 40 университетах и институтах и по АСУ – в 50 институтах. Кроме этой регулярной подготовки в 23 университетах и институтах открыты двух- и трехгодичные курсы для получения второго высшего образования по прикладной математике и АСУ для лиц, окончивших другие вузы [69].

примерное распределение объёма регулярных занятий по прикладной  математике на основе учебных планов, принятых в Московском и Ленинградском  университетах

На рис. 18 показано примерное распределение объёма регулярных занятий по прикладной математике на основе учебных планов, принятых в Московском и Ленинградском университетах.

Гуманитарный цикл включает философию, политическую экономию, иностранный язык и физическую культуру.

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

Естественнонаучный цикл обычно содержит курсы по физике и механике.

Базовый курс по вычислительным наукам включает программирование и языки, методы оптимизации и исследование операций.

Содержание курсов и семинаров по выбору определяется вкусами студентов и научными интересами преподавателей.

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

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

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

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

Заключение

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

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

Литература и источники

В списке источников используются следующие сокращения.

Директивы – Директивы XXIV съезда КПСС по пятилетнему плану развития народного хозяйства СССР на 1971–1975 годы. Политиздат. М. 1972.

Кон 56 – Конференция «Пути развития советского математического машиностроения и    приборостроения».

Москва, 12–17 марта 1956 г. Пленарные заседания. Часть I, часть II, часть III. ВИНИТИ. М. 1956.

Кон 59 – Всесоюзное совещание по вычислительной математике и вычислительной технике (Программа).
Москва, 16–21 ноября 1959 г. Московский университет. М. 1959.

Кон 68 – Первая всесоюзная конференция по программированию. Ноябрь 1968 г. ИК АН УССР. Киев. 1968.

Кон 70 – Труды Второй всесоюзной конференции по программированию. Новосибирск, 3–6 февраля 1970 г.
ВЦ СО АН СССР. Новосибирск. 1970.

Кон 72 – Теория языков и методы построения систем программирования (Труды симпозиума). ИК АН УССР. Киев–Алушта. 1972.

Кон 73 – Системное программирование (материалы всесоюзного симпозиума, март 1973 г.). Часть I, часть II. ВЦ СО АН СССР. Новосибирск. 1973.

НарХоз – Народное хозяйство СССР в 1972. Статистический ежегодник. Статистика. М. 1973.

УСиМ – Журнал «Управляющие системы и машины». Киев.

  1. Кон 56, ч. I, с. 27.
  2.  Кон 56, плен. зас., с. 31.
  3.  Кон 56, ч. I, с. 13.
  4.  Е.Л. Ющенко и др. Управляющая машина широкого назначения «Днипро». Наукова  думка. Киев. 1964.
  5.  Правда, 08.11.1969.
  6.  Социалистическая индустрия, 08.08.1971.
  7.  Кон 68, ч. Б,
  8.  Кон 70, ч. Н, с. 3
  9.  Приборы и системы управления, № 9, 1971, с. 1.
  10.  Кон 70, ч. В, с. 63.
  11.  Кибернетика, № 3, 1972, с. 83.
  12.  Экономическая газета, № 36, 1971.
  13.  Механизация и автоматизация управления, № 4, 1971. Киев.
  14.  Радио, № 1, 1972, с. 1.
  15.  Кон 56, ч. III, с. 62.
  16.  Кон 56, ч. III, с. 9.
  17.  Кон 56, ч. III, с. 18.
  18.  Кон 59, с. 11.
  19.  Журнал вычислительной математики и математической физики, № 1, 1964.
  20.  Кон 68, ч. Д, с. 3.
  21.  В.П. Иванников и др. Система математического обеспечения БЭСМ-6. ВЦ АН СССР,  М. 1967.
  22.  Кон 70, ч. Н. с. 15.
  23.  Кон 70, ч. В. с. 3.
  24.  А.Г. Кухарчик, В.М. Египко. Управляющая вычислительная система Днепр-2.  Наукова думка. Киев. 1972.
  25.  Кон 56, ч. III, с. 82.
  26.  Тезисы докладов совещания по вычислительной математике и применению средств  вычислительной техники. АН АзССР. Баку. 1958, с. 43.
  27.  Кон 59, с. 16.
  28.  Успехи математических наук, № 2, 1971, с. 221.
  29.  В.И. Лоскутов. Автоматизированные системы управления. Знание. М., 1960.
  30.  Ф.Н. Трофименко. Основы конструкции и эксплуатации счетных машин. Финансы.   М. 1969. с. 333.
  31.  Кон 56, ч. III, с 143.
  32.  Программы средней школы с производственным обучением. Профессия – вычислитель-программист. Учпедгиз. М. 1962.
  33.  НарХоз 72, с. 227.
  34.  Директивы, с. 28.
  35.  Правда, 26.01.1974.
  36.  Правда, 04.05.1973.
  37.  УсиМ, № 1, 1972, с. 3.
  38.  НарХоз 72, с. 145.
  39.  Экономическая газета, № 7, 1972.
  40.  Красная звезда, 22.07.1970.
  41.  Экономическая газета, № 37, 1972.
  42.  Экономика и математические методы, № 3, 1971, с. 327.
  43.  Директивы, с. 75.
  44.  Правда, 04.09.1971.
  45.  Внешняя торговля, № 9, 1972, с. 41.
  46.  Социалистическая индустрия, 25.11.1971.
  47.  Правда, 09.10.1972.
  48.  Социалистическая индустрия, 05.05.1973.
  49.  Кон 73, ч. II, с. 5.
  50.  УСиМ, № 1, 1974, с. 76.
  51.  Кон 68, ч. В, с. 22.
  52.  Кон 68, ч. В, с. 28.
  53.  Кон 70, ч. Г, с. 41.
  54.  Кон 68, ч. В, с. 53.
  55.  Кон 68, ч. И, с. 3.
  56.  Кон 70, ч. Г, с. 3.
  57.  Кон 72, с. 217.
  58.  УСиМ, № 1, 1974, с. 43.
  59.  Кон 72, с. 228.
  60.  УСиМ, № 1, 1974, с. 78.
  61.  Вопросы экономики, № 10, 1971, с. 61.
  62.  Радяньска Украина, 16.09.1969.
  63.  Software engineering, NATO, January 1969.
  64.  Software engineering techniques, NATO, April 1970.
  65.  Альфа – система автоматизации программирования. Наука. Новосибирск. 1967. с. 58.
  66.  Кон 73, ч. I, с. 164.
  67.  IBM Systems Journal, No. 1, 1972, p. 56.
  68.  В.Л. Катков, А.Ф. Рар. Программирование на языке Эпсилон. Наука. Новосибирск.  1972.
  69.  Справочник для поступающих в высшие учебные заведения СССР. Высшая школа.  М. 1972.
  70.  НарХоз 72, с. 638.
  71.  Известия, 27.05.1972.
  72. Алгоритмы и алгоритмические языки. Выпуск 1. ВЦ АН СССР. М., 1967, с. 62.

Примечание

1. Электронный архив А.П. Ершова // http://ershov.iis.nsk.su/archive/eaimage.asp?lang=1&did=26944&fileid=159678. Текст машинописный с рукописными пометами. На второй странице надпись «Пометы относятся к использованию текста в Британских лекциях (1980)».  На русском языке публикуется впервые. Слайды вставлены в оригинальный текст составителями сборника.

Рим, 11–13 июня 1974 г.
Новосибирск, 630090
Вычислительный центр Сибирского отделения Академии наук СССР
Статья помещена в музей 14.03.2011 г.