Добавлен: 22.04.2023
Просмотров: 164
Скачиваний: 1
ВВЕДЕНИЕ
История становления и развития программирования в СССР неотделима от остальных разделов вычислительного дела. Чем ближе к истокам, тем сильнее связь и зависимость научной дисциплины от общего контекста и смежных направлений. Собственно говоря, проследить рождение научной дисциплины или профессиональной человеческой деятельности -- это значит усмотреть моменты формирования, водоразделов и внутренней структуры. Сознавая эту неразрывность, авторы должны подчеркнуть предварительный характер и определенную неполноту данного исследования.
Во-первых, смежные вопросы, в частности развитие вычислительного оборудования и численных методов, за тронуты очень кратко.
Во-вторых, авторы работали в основном с публикациями и в меньшей степени с архивными материалами.
В-третьих, авторы сознательно ограничили себя первыми пятнадцатью годами развития программирования, обрывая повествование 1963-им годом, когда заработали первые трансляторы с АЛГОЛА 60.
С одной стороны, программирование в СССР сформировало свой современный облик и приобрело необходимую полноту именно в последние 13 лет. С другой стороны, его развитие в эти годы было уже гораздо менее специфично и неотделимо от сложившейся к этому времени мировой научно-технической тенденции. В первые же 15 лет, как увидит читатель, оно развивалось в значительной степени под воздействием собственных внутренних импульсов, ассимилируя интуицию и кругозор зрелых математиков, умноженные на энергию и энтузиазм молодого поколения первых программистов.
В то же время не надо тратить много слов, чтобы обосновать решимость авторов выступить перед научной общественностью с этим предварительным исследованием. Преодолеть дистанцию можно только начав с первого шага. Кроме того, история научной дисциплины -- это часть ее самоутверждения и авторы, посвятившие свою жизнь программированию, не могут остаться в стороне от этого процесса. Наконец, выполнение подобной работы -- это единственная возможность, оторвавшись от суетной повседневности, вспомнить как выдающихся ученых и инженеров, так и рядовых сотрудников, которые своим творческим трудом построили здание, в котором мы живем. К сожалению, некоторые из них уже не смогут услышать обращенные к ним слова признательности.
В ходе изложения авторам придется ссылаться и на собственные работы. В таких случаях авторы будут прибегать к помощи идентификаторов АЕ и ШБ соответственно, скрываясь за общим именем "авторы", когда речь будет идти о данной работе.
Хотя авторы зачастую и цитируют оригинальные работы, в целом они не считают главной целью своего исследования реставрацию прошлого.
Всюду, где это кажется уместным, научные идеи и результаты формулируются с использованием современной терминологии и интерпретируются в ретроспективном плане. Хотя в таком анализе возможен субъективизм, авторам все же представляется более интересным не уклоняться от обсуждения связи разных временных слоев развития.
Авторы будут благодарны каждому, кто обратит внимание на возможные упущения или неточности.
ПРЕДЫСТОРИЯ (1946-1949 гг.)
Вторая мировая война приостановила в СССР ряд научных исследований и проектов в области создания, как тогда говорили, математической техники. В то же время в нашей стране существовала "непрерываемая традиция", идущая от П.Л. Чебышева, научного интереса и внимательного отношения к прикладной математике и методам вычислений. В годы становления советской науки эта традиция получила развитие в научной и общественной деятельности академика А.Н. Крылова. Потребности военного времени содействовали выполнению серии прикладных работ, требовавших разработки численных методов и способов автоматизации вычислений, прежде всего для управления стрельбой. Потребности радиолокации и радиосвязи создали предпосылки для освоения высокочастотной импульсной техники.
Это противоречивое положение было выразительно отражено в тематическом выпуске журнала "Успехи математических наук" (т.1, N 5, 6, М., 1946), который начал регулярно издаваться с первого послевоенного года [1]. Выпуск содержал две обзорные оригинальные статьи, подготовленные еще до войны, и две переводные статьи, одна из которых ("Дифференциальный анализатор Буша") оказала заметное влияние на специалистов. Никакого намека ни на электронную вычислительную технику, ни на концепцию автоматических вычислительных машин с программным управлением этот выпуск не содержал. Однако во вступительной статье Н.Е. Кобринского и Л.А. Люстерника был высказан ряд проницательных суждений о роли вычислительной техники. Приведем некоторые выдержки.
"... Современная вычислительная практика весьма разнообразна, и соответственно этому весьма разнообразны и технические средства, в ней применяемые.
Прежде всего укажем на "повседневную" вычислительную практику бухгалтерии, учета, статистики, рядового технического расчета. Математические задачи здесь большей частью несложны -- в основном арифметические действия. Но количество людей, занятых их производством, огромно ... В настоящее время производство счетных приборов, обслуживающих эту массовую практику, является в ряде стран крупной отраслью промышленности.
... Особым видом массовой вычислительной практики являются расчеты, ... выполняемые в боевой обстановке. Здесь по понятным причинам особую роль играет быстрота расчета, иногда отнюдь не элементарного ... Широкое применение подобные счетно-решающие устройства получают и в мирной технике, на пример в навигации, в автоматизированном управлении сложными агрегатами и т. д.
Наконец, имеется область "кабинетных вычислений", квалифицированных и трудоемких расчетов, связанных с решением научных и сложных технических задач.
Развитие науки и техники ставит все новые задачи перед вычислительной математикой. Еще недавно интегральные уравнения были изысканной областью теоретического анализа, теперь это -- повседневное орудие расчета. Увеличение скоростей самолетов ... потребовало решения граничных задач и для уравнения смешанного эллиптико-гиперболического типа. Развитие ракетных двигателей сделало весьма актуальными расчеты траекторий тела с переменной массой. Концепции современной теоретической физики придают особое значение задачам нахождения собственных значений и функций разных операторов ...
Актуальные потребности практики и науки привели к созданию новой отрасли техники -- конструированию и производству "счетно-решающих устройств", т. е. приборов и машин для решения математических задач.
Появление этих технических средств ставит по-новому задачи вычислительной математики.
... Успехи "машинной математики" последнего времени связаны в значительной степени также с развитием автоматики. В современных больших математических машинах мы видим автоматическое управление сложным агрегатом, заставляющее отдельные его части выполнять в заданной последовательности заданные операции, сложные передачи показаний с одних частей машины на другое, регулирование синхронности происходящих процессов и т. д. Можно сказать, что "математическая техника" является экспериментальной базой для автоматики вообще. Тем самым ее достижения имеют большой общетехнический интерес."
Этот дальновидный взгляд на вычислительную технику сложился в стенах Математического института АН СССР, который был не только средоточием первоклассных исследований в области теоретической математики, но и был непосредственно причастен к широкому кругу проблем прикладной математики, в частности в связи с выполняемыми Академией наук государственными заданиями, связанными с созданием новой техники и требующими больших прикладных исследований и расчетов. Этой стороной деятельности МИАНа руководил академик М.В. Келдыш, в то время заместитель директора института академика И.М. Виноградова. Непосредственные вычислительные и машинные аспекты прикладной математики изучались тогда в отделе приближенных вычислений, который возглавлял член-корр. АН СССР Л.А. Люстерник. Ряд важных прикладных расчетов был поставлен и осуществлен под руководством К.А. Семендяева.
Информация о программно-управляемой автоматической цифровой вычислительной машине пришла в СССР из США. В 1947 г. М.Л. Быховский опубликовал в журнале "Успехи математических наук" короткую информационную заметку [2], в которой на основе публикаций [3]--[5] сообщил о машинах МАРК 1 и ЭНИАК с коммутированной программой. Аналогичная более поздняя статья Хартри [6] и более подробное описание машины МАРК 1 [7] появились в русском переводе в 1948 г. [8], [9]. В заметке [2] не было каких бы то ни было оценочных комментариев к материалу, а ее название скорее подчеркивало преемственность в развитии счетно-аналитических машин, нежели выработку новой концепции автоматических вычислений.
Материалы по логической структуре электронных вычислительных цифровых машин с хранимой программой [10]--[13], которые за рубежом принято считать основополагающими в то время (а в оригинальных изданиях и сейчас), были недоступны в СССР. В течение 1947-1948 гг. за рубежом появилось изрядное число публикаций "второго эшелона", содержащих большое количество научной информации. С некоторым опозданием в СССР стали доступны труды известного симпозиума 1947 г. в Гарвардском университете [14]. На основе этих материалов в 1949 г. появилась обширная статья М.Л. Быховского "Основы электронных математических машин дискретного счета" [15]. Этот деловой обзор содержал главным образом описание инженерных принципов реализации отдельных узлов ЭВМ и предвосхитил большую часть информации, содержащейся в первом монографическом описании ЭВМ "Быстродействующие вычислительные машины", подготовленном в США в 1950 г. [16] и изданном в русском переводе в 1952 г. [17].
Указанная монография вместе с небольшим разделом (глава V) книги Ф. Муррея "Теория математических машин" [18], вышедшей в русском переводе в 1949 г. [19] и обзорной статьей Г. Рутисхаузера, А. Шпайзера и Э. Штифеля [20], также переведенной на русский язык и изданной в 1952 г. [21], по-видимому, замыкают ту совокупность сведений о зарубежных работах, которые были доступны советским специалистам в это время.
Реальное начало работ в области электронной вычислительной техники в СССР относится к 1946 г., когда в Киеве академик АН УССР С.А. Лебедев начал инициативные исследования по созданию электронных вычислительных машин и программ. Большую поддержку инициативе С.А. Лебедева оказал директор Института математики АН УССР академик М.А. Лаврентьев.
С его помощью в Феофании (под Киевом) в первые послевоенные годы было восстановлено здание, в котором разместилась лаборатория вычислительной техники Института электротехники АН УССР, возглавляемая С.А. Лебедевым, ставшим директором этого института в мае 1947 года. Именно здесь в конце 1950 года заработала "первая в СССР и континентальной Европе" [22] ЭВМ, получившая название МЭСМ (Малая Электронная Счетная Машина). В ней уже были реализованы основные принципы построения ЭВМ с хранимой программой, названные впоследствии за рубежом принципами фон Неймана. МЭСМ предшествовали английская ЭДСАК (1949 г.) и американские СЕАК и БИНАК (1950 г.) машины, соответствующие указанным принципам. Однако отсутствие в то время сведений об этих разработках исключает возможность их влияния на создание машины МЭСМ.
В 1948 г. был открыт Институт точной механики и вычислительной техники АН СССР. Его возглавил известный специалист в области машин и механизмов академии Н.Г. Бруевич. Институт был создан на основе существовавших в разных организациях АН научных групп и подразделений, имевших отношение к проблеме механизации вычислений и создания математических инструментов.
В начальный период своего существования ИТМиВТ представлял собой конгломерат разных научно-технических направлений, среди которых направление ЭВМ было далеко не самым ведущим и, что самое главное, не имевшим своего носителя. Решающая роль в придании работам института более целеустремленного и современного направления принадлежит академику М.А. Лаврентьеву, который в 1950г. приехал в Москву и стал его директором. Лаврентьев начал с того, что организовал в институте отдел цифровых ЭВМ и пригласил С.А. Лебедева возглавить этот отдел с тем, чтобы, не дожидаясь завершения работ по МЭСМ, начать энергичную деятельность по конструированию большой ЭВМ.
ФОРМИРОВАНИЕ НАЧАЛЬНОГО ЗНАНИЯ (1950-1953 гг.)
Уже первые эксперименты на машине МЭСМ показали, что подготовка задачи к решению на машине является самостоятельной проблемой, требующей специального рассмотрения. Эти вопросы стали, в частности, предметом систематического изучения на семинаре по программированию, организованном в 1950 г. в ИТМиВТ под руководством Л.А. Люстерника. Работа семинара протекала параллель, но с проектированием машины БЭСМ и завершилась написанием одной из первых в мире монографий, специально посвященной вопросам программирования [23].
В качестве источников, имеющих наиболее прямое отношение к предмету исследования, в [23] указаны книга Муррея [19], монография под редакцией Стиффлера [16] и обзор Рутисхаузера, Шпайзера и Штифеля [20].
В книге Муррея речь шла в основном о старой технике, но в небольшой главе, посвященной ЭВМ, был приведен со ссылкой на [13] выразительный пример программирования циклического процесса со счетом индекса для организации заданного числа повторений и с использованием текущей разности для организации итерационного цикла.
В [16] довольно подробно рассматривались арифметические основы ЭВМ, давалось общее описание принципа программного управления и была приведена одноадресная система команд со ссылкой на [12].
Обзор [20] во многом повторял содержание работы [16], но в нем были изложены также некоторые главы еще одной основополагающей работы Голдстайна и фон Неймана [24] (понятие блок-схемы как средства для наглядного представления ветвей и циклов программы, понятие пара метра цикла и зависимости адресов от параметра); рассматривались различные системы команд (от одно- до четырехадресных систем) и впервые упоминалось об индекс-регистре (а-регистр в МАРКС III). Не менее важной была, и попытка авторов обзора систематизировать процесс программирования в целом и обратить внимание на использование самой ЭВМ для упрощения программирования.