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

Читать, слущать книги онлайн бесплатно!

Электронная Литература.

Бесплатная онлайн библиотека.

Читать: Очерки истории отечественной программной инженерии в 1940-е – 80-е годы - Владимир Васильевич Липаев на бесплатной онлайн библиотеке Э-Лит


Помоги проекту - поделись книгой:

Владимир Липаев

Очерки истории отечественной программной инженерии в 1940-е -80-е годы

Введение

Истории развития отечественной вычислительной техники в Советском Союзе в начале 1950-х годов сопутствовали две противоречивые тенденции, существенно повлиявшие на прогресс науки и техники в стране. С одной стороны, началась идеологическая атака в средствах массовой информации на «буржуазную лженауку – кибернетику». С другой стороны, постановления Правительства активно стимулировали разработки вычислительных машин в нескольких организациях [3, 4] страны.

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

В журнале «Вопросы философии» в марте 1950 года критике были подвергнуты некоторые теоретические положения математической логики, противоречившие, по мнению авторов статьи, догмам материализма [4]. Они не скупились на резкие высказывания: «Речь идет не о том, чтобы ликвидировать математическую логику, а о том, чтобы отсечь реакционную тенденцию извращения ее, отражающую идеологию враждебных нам классов». После математической логики настала очередь массированной атаки на те направления в физиологии, которые нарушали «чистоту учения И.П. Павлова», объявленного марксистскими философами венцом учений о поведении животных, и той части поведения человека, которая регулировалась его центральной нервной системой.

В 1953 году наступила очередь агрессивных статей философов о кибернетике. Вершиной наступления на кибернетику стала статья, напечатанная в журнале «Вопросы философии» в 1953 году. Она была помещена в разделе «Критика буржуазной идеологии» и называлась «Кому служит кибернетика» (автор скрылся под псевдонимом). Все, что касалось развития вычислительной техники как таковой, когда вычислительные машины уподоблялись очень быстро работающим арифмометрам, объявлялось полезным и нужным для социалистического отечества. В подобном качестве вычислительные машины ничем не отличались от устройств, создаваемых человеком для облегчения своего труда. Однако, когда речь заходила об использовании этих машин для моделирования различных процессов или для символьных преобразований, то натренированный на поиске идеологического криминала ум борца за чистоту марксистско-ленинского учения немедленно подавал сигнал опасности: «По мнению Винера, деятельность вычислительных машин дает ключ к познанию самых разнообразных природных и общественных явлений. Эта в корне порочная идея послужила Винеру основанием для создания новой «науки» – кибернетики».

Вычислительные машины не могут внести качественно новую струю в процесс познания окружающего мира. Чтобы эта мысль дошла до всех читателей статьи, автор формулирует ее еще раз: «Теория кибернетики, пытающаяся распространить принципы действия вычислительных машин новейшей конструкции на самые различные природные и общественные явления без учета их качественного своеобразия, является механицизмом, превращающимся в идеализм. Это пустоцвет на древе познания, возникший в результате одностороннего и чрезмерного раздувания одной из черт познания». Набор ярлыков для кибернетики (пустоцвет, лженаука, идеологическое оружие империалистической реакции, порождение лакеев империализма) свидетельствовал, что никакой патриотически настроенный ученый в СССР не может заниматься столь одиозной наукой. В «Кратком философском словаре» (1954 год) в статье «Кибернетика» эта наука была определена как «реакционная лженаука, возникшая в США после второй мировой войны, получившая широкое распространение и в других капиталистических странах; форма современного механицизма».

Практические задачи (и прежде всего, задачи укрепления обороноспособности страны) требовали не прекращения работ в этой области, а наоборот, расширения и активизации этих исследований. Это понимали даже партийные чиновники из оборонного отдела и отдела науки ЦК КПСС. Когда один из первых отечественных специалистов по применению вычислительных машин в военной области А.И. Китов, математик А.А. Ляпунов и известный своими теоретическими работами, связанными с созданием атомной бомбы, математик С.Л. Соболев объединились как авторы статьи «Основные черты кибернетики» и принесли ее в журнал «Вопросы философии», то: «Как ни странно, редколлегия спорить не стала» и в начале 1955 года статью опубликовали [4]. В это время А.И. Китов и А.А. Ляпунов организовали серию выступлений на научных семинарах в академических институтах, высших учебных заведениях и в других организациях, в которых методы кибернетики могли бы принести практическую пользу и наступление на кибернетику оголтелых философов к концу 50-х годов постепенно увяло.

У истоков развития кибернетики (информатики) в СССР стояли сотрудники Академии наук и различных, именуемых «закрытыми» ведомств и предприятий, в большинстве своем связанные с оборонной техникой. Первые книги в области кибернетики, вычислительных машин и программирования, выпущенные уже во второй половине 50-х годов без грифа секретности, были написаны военными. Если бы не активная наступательная позиция военных, поддержанная членами Академии наук СССР, то идеологические концепции, охраняемые представителями консервативной философской и партийной элиты, возможно, задержали бы развитие информатики на несколько лет, как это случилось с генетикой и другими науками [З, 4].

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

Уже на начальных этапах развития вычислительной техники и программирования в конце 1950-х годов произошло разделение в этой сфере на два почти независимых направления: для применения в науке и народном хозяйстве и для оборонных систем. Первое направление вначале составляли относительно небольшие программы, создаваемые одиночками или небольшими коллективами (3–5) специалистов, преимущественно для получения конкретных результатов при автоматизации научных исследований, простых технологических процессов и/или для анализа результатов вычислений самими разработчиками программ. В 60-е годы десятки и даже сотни ЭВМ с оригинальной архитектурой и системами команд, почти кустарно изготавливались в единичных экземплярах в вузах, научных и исследовательских организациях и не имели перспективы их массового производства. Для многих видов относительно несложных программ не было необходимости в регламентировании и автоматизации жизненного цикла для длительного применения и сопровождения множества версий таких программ.

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

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

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

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

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

Развитие вычислительной техники в 1960-ые годы происходило в Советском Союзе очень высокими темпами. Предприятия активно оснащались различными ЭВМ. Кульминационной точкой в истории отечественной вычислительной техники стало создание С.А. Лебедевым в 1967-ом году ЭВМ БЭСМ-6. Именно эта машина впервые поразила весь мир невероятной для того времени производительностью – один миллион операций в секунду. Машина БЭСМ-6 сильно опередила свое время, начав развитие второго поколения ЭВМ. Она вобрала в себя много оригинальных идей, подобного класса в мире тогда не было. Эта машина широко использовалась в системах автоматизации проектирования для моделирования сложнейших физических процессов и процессов управления как инструментальная машина для разработки крупных программных продуктов оборонных систем на базе различных мобильных и бортовых ЭВМ. Она оставалась востребованной рекордно долгое время, более тридцати лет – последний экземпляр БЭСМ-6 прекратили использовать только на рубеже 21-го века.

К середине 80-х годов в стране было создано около 300 типов и более десяти семейств оригинальных ЭВМ, в основном, для оборонной техники [10, 11]. Однако большое число проектов оставалось на уровне экспериментальных образцов. Они не определяли вычислительный потенциал страны и не отражены в данной книге. Последующее изложение ориентировано на ограниченное число типов ЭВМ, сыгравших наиболее важную роль в отечественной истории развития вычислительной техники и программной инженерии. Большинство из них были оснащены отечественными операционными системами, трансляторами и отладчиками. Инструментальные средства проектирования и производства программных продуктов, естественно, были ориентированы на определенные типы аппаратуры ЭВМ и в большинстве случаев определялись используемыми вычислительными ресурсами, функциями и областями их применения. Средства программной инженерии могли реализоваться только при достаточно больших ресурсах ЭВМ. Это определило их появление и активное применение, начиная с середины 60-х годов для оборонных систем.

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

Этап оригинального развития вычислительной техники в СССР пошел на спад в конце 1970-х годов, когда было принято решение о переходе к производству и использованию ЭВМ, которые являлись прототипами моделей западных образцов – IBM 360 и PDP. Руководители высшего управленческого уровня не понимали уже освоенных в стране методов и технологий программной инженерии, направленных на создание сложных комплексов программ. Они видели, что на Западе имеется программный продукт, который «.без особого трудя» можно нелегально копировать и использовать, если наладить производство аппаратуры ЭВМ с соответствующей архитектурой. В угоду приоритету ЕС ЭВМ были оборваны и прекратили существование отечественные линии проектирования и производства семейств универсальных вычислительных машин, в частности, БЭСМ-6 и «Урал». Освоение зарубежных операционных систем, СУБД, прикладных и технологических программ для этих типов машин подорвало оригинальную, отечественную школу программирования и сориентировало ее на заимствование и адаптацию готовых, как правило, неизвестного качества, зарубежных программ. Такая тенденция стала в то время доминирующей. Проектирование и производство оригинальных советских ЭВМ – это успехи прошлого нашей страны. Вместе с тем, это свидетельство широких возможностей наших ученых и специалистов, которые, к сожалению, почти утрачены в настоящее время.

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

В конце 80-х годов началась очередная смена поколения вычислительной техники и активное освоение различных зарубежных персональных ЭВМ и серверов с резким увеличением доступных пользователям ресурсов. Эти годы стали переломными для истории оригинального развития отечественной вычислительной техники и программирования. Широкий поток в страну зарубежных персональных ЭВМ драматически отразился на создании отечественных средств автоматизации программирования и программной инженерии. Изобилие разнообразных программных продуктов для персональных ЭВМ переориентировало отечественных специалистов на их освоение и применение. Только в некоторых направлениях инструментальных средств программной инженерии (например, тестирование, компиляторы) продолжались исследования и создавались отдельные, принципиально новые технологические средства высокого качества.

Изменение акцентов в деятельности многих отечественных специалистов, связанных с переходом от индивидуального программирования небольших компонентов к коллективному созданию и применению методов и технологий программной инженерии, происходило в 1960-е – 80-е годы. В различных, (в основном, оборонных) областях применения программных продуктов появилась потребность в обеспечении экономической эффективности процессов проектирования и производства крупных комплексов программ. Для этого начали использоваться наиболее совершенные методы управления проектами, системная автоматизация процессов на всех этапах жизненного цикла комплексов программ для повышения производительности и качества результатов труда участвующих в этих процессах специалистов. Управленческие и технические проверки, анализ качества результатов выполнения промежуточных работ и созданных компонентов, проверки корректности их взаимодействия должны были обеспечивать заказчикам, руководителям и всем разработчикам более высокую степень уверенности в достижении требуемого конечного результата, и гарантии качества программного продукта.

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

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

При подготовке монографии активно использовались доступные публикации, среди которых наибольшее влияние на ее содержание оказали, прежде всего, работы некоторых ведущих отечественных специалистов, представленные в списке литературы [1 – 8], а также материалы в Интернете [11] и Компьютерном музее [10]. Материалы по развитию программной инженерии при создании систем контроля космического пространства представили Генеральный конструктор ЦНИИ Комета, доктор технических наук, профессор Виктор Порфирьевич Мисник и доктор технических наук, профессор Владимир Федорович Гребенкин, за что автор им весьма благодарен. В предлагаемой монографии, естественно, отразились профессиональные интересы, опыт и публикации автора [16–22], более 30 лет работавшего в оборонной промышленности над крупными проектами комплексов программ.

Глава 1. История появления в стране вычислительной техники и программирования в 1940-е – 60-е годы

1.1. Начало истории отечественной вычислительной техники в 1940-е – 60-е годы

Развитием промышленности по производству средств вычислительной техники правительство и руководящие органы СССР начали серьезно заниматься практически сразу же после окончания Великой Отечественной войны, считая эту задачу одной из основных для народного хозяйства [1, 2, 3]. Поручение правительства по подготовке мероприятий, связанных с развитием вычислительной техники, было дано в период острой необходимости в капитальных вложениях для подъема, разрушенного войной народного хозяйства, одновременно с философской полемикой в печати о роли «буржуазной лженауки» кибернетики. Работы, имевшие для страны большое значение, как это было принято, поручались сразу нескольким организациям. Результатом выполнения этих поручений было постановление правительства 1948-го года, предусматривавшее создание Института точной механики и вычислительной техники (ИТМ и ВТ) АН СССР и двух отраслевых организаций: НИИсчетмаш и СКБ-245, а также расширение существующей производственной базы и выделение необходимых для этого средств. Кроме того, в ряде организаций АН СССР и различных ведомств: в лаборатории электросистем Энергетического института им. Г.М. Кржижановского в Москве; в лаборатории вычислительной техники Института математики АН УССР в Киеве (позже ВЦ АН УССР); в Ереванском институте математических машин; в

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

Послевоенные годы стали отправной точкой в истории создания первых советских ЭВМ. В 1948 – 1951-е годы в Киеве в лаборатории моделирования и вычислительной техники Института электротехники АН УССР под руководством Сергея Алексеевича Лебедева была создана первая советская малая электронная счетная машина (МЭСМ) – прототип современных ЭВМ. Созданием МЭСМ в кельях бывшего монастыря «Феофания» было положено начало развитию отечественной вычислительной техники. К концу 1950 года монтаж действующего макета первой отечественной ЭВМ был завершен, и началась его проверка путем решения тестовых и ряда простейших народно-хозяйственных задач. А уже через два года в Москве, в Институте Точной Механики и вычислительном центре АН СССР, директором которого стал С.А. Лебедев, на базе разработанной в Киеве модели создается БЭСМ – большая электронная счетная машина. Машины данной серии становятся одними из лучших в США и Европе! Сегодня в это сложно поверить, однако быстродействие БЭСМ, а также возможность выполнить сложные математические операции подтверждало высокий уровень развития науки и технологий в Советском Союзе и открывало широкие перспективы для новых открытий и достижений.

Параллельно с С.А. Лебедевым по постановлению правительства над созданием электронно-вычислительных машин проводили работы и другие ученые – с 1948-го года в конструкторском бюро № 245, возглавляемом М.А. Лесечко, шла разработка цифровой вычислительной машины, получившей название «Стрела». Скорость ее работы составила две тысячи операций в секунду, что в пять раз уступает быстродействию БЭСМ. «Стрела» впервые стала выпускаться серийно.

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

Три электронно-вычислительные машины на лампах – БЭСМ, «Стрела» и «М2» относятся к советским ЭВМ первого поколения (рис. 1).


Рис. 1.

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

В середине 40-х годов в США был опубликован документ под названием «Архитектура, фон Неймана». В нем великий физик и математик Джон фон Нейман (John von Neumann) описал вычислительную систему, в которой процессорный модуль отделен от устройства хранения данных. Вскоре был создан, а затем и усовершенствован первый американский компьютер ENIAC. Его установили в Университете штата Пенсильвания, США, и начали использовать для решения научных задач. Тогда же в Англии появились первые управляемые программами ЭВМ. Ученым уже было известно, что американские и британские коллеги достигли определенных успехов, но «холодная война» наложила ограничения – исследования заморских умов нашим конструкторам были недоступны.

При создании проекта МЭСМ в 1947-м году С.А. Лебедевым были независимо от работ Дж. фон Неймана сформулированы аналогичные основные принципы построения архитектуры электронных вы числительных машин:

• в состав ЭВМ должны входить арифметическое устройство, память, устройство управления и устройство ввода-вывода;

• программа в машинных кодах должна храниться в той же памяти, что и числа;

• для представления чисел и команд должна применяться двоичная система счисления;

• вычисления должны выполняться автоматически в соответствии с программой, хранящейся в памяти;

• логические операции должны выполняться наряду с арифметическими операциями;

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

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

С.А. Лебедев очень точно определил направление развития вычислительной техники. Ее передовым фронтом он считал высокопроизводительные вычислительные системы. Сергей Алексеевич отстоял основное направление работы ИТМ и ВТ – высокопроизводительные вычислительные системы, несмотря на то, что впоследствии Институту предлагали главную роль в стране по разработке вычислительной техники на базе прототипов ЕС ЭВМ. Он считал, что развитие вычислительной техники определяют сверхвысокопроизводительные системы и страна должна иметь самостоятельное направление в этой области.

С 1953-го года в стране был налажен серийный выпуск вычислительных машин. Первой в серию пошла ЭВМ «Стрела», созданная в СКБ-245 под руководством Ю.Я. Базилевского. Основные характеристики ЭВМ «Стрела»:

• ЭВМ была разработана на обычных для того времени радиолампах общим количеством ~ 6000 штук;

• быстродействие 2000 операций в секунду, тактовая частота 50КГц, команды трехадресные;

• оперативная память содержала 2048 ячеек, ячейка, в которой размещались трехадресная команда или число, содержала 43 двоичных разряда, оперативная память была выполнена на электронно-лучевых трубках (ЭЛТ), каждый разряд запоминался на отдельной трубке;

• общая потребляемая мощность составляла ~ 150 кВт, что создавало значительные проблемы с теплоотводом;

• оперативным средством связи пользователей являлся центральный пункт управления. Он содержал по 3 ряда тумблеров и индикаторов (по 43 неоновых лампочек каждый) и ряд индикаторов адреса выполняемой команды.

Несмотря на обилие радиоламп с ограниченным гарантийным сроком службы (до 500 часов) конструктивная реализация ЭВМ позволила довести среднее полезное время работы до 20 часов в сутки, но машина все равно с трудом справлялась с потоком задач. Из-за периодических сбоев при работе ЭВМ задачи считались с «двойным просчётом» и со сравнением контрольных сумм результатов.

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

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

БЭСМ-2 была создана С.А. Лебедевым в 1957 году как серийный аналог уникальной БЭСМ-1 и нашла применение в ряде НИИ СССР и за рубежом для численного решения широкого круга математических задач. Основные технические характеристики были аналогичны характеристикам БЭСМ, система команд машины отличалась тем, что были исключены редко использовавшиеся команды и добавлены некоторые новые команды. Системное программное обеспечение в этих машинах отсутствовало. На серийных машинах БЭСМ-2 были решены тысячи задач: чисто теоретических, прикладной математики, инженерных. В частности, рассчитывались траектории полета первых космических аппаратов. Машина была разработана и внедрена в народное хозяйство коллективами ИТМ и ВТ АН СССР и завода им. Володарского (г. Ульяновск) в 1958-м году и производилась до 1962-го года.

В первую очередь, ЭВМ «Стрела» и БЭСМ-2 задействовали в военных целях – для изучения термоядерных реакций, расчета баллистических траекторий ракет и так далее. В 1956-м году Лебедев выступил с докладом на конференции в западногерманском городе Дармштадте. Академик устроил переполох, рассказав миру о том, что в СССР действует сверхбыстрая ЭВМ, – оказалось, что в Европе машине БЭСМ-1 не было равных.

Дальнейшее развитие вычислительных систем на протяжении нескольких лет было эволюционным. В 1958-м году на арену вышла система БЭСМ-2 с внешней памятью на основе ферритовых сердечников и увеличенным набором исходных команд. Впервые ЭВМ подготовили к серийному производству. Первые серьезные шаги по развитию централизованной производственной базы гражданских сфер применения ЭВМ были сделаны в конце 50-х годов после успешного завершения работ по созданию первых в нашей стране промышленных, универсальных вычислительных машин М-20 (см. рис. 1). В 1958-м году в серию пошла машина М-20, созданная в коллективе С.А. Лебедева в ИТМ и ВТ (зам. главного конструктора М.К. Сулим и М.Р. Шура-Бура) [1, 3]. Скорость решения задач напрямую зависела от подготовленности программиста, – он должен был быстро реагировать на сбои, ошибки, отлично ориентироваться в переключателях пульта управления. Первые попытки реализовать системный язык программирования С.А. Лебедев предпринял еще при разработке М-20, машина понимала некоторые наглядные и интуитивные команды, мнемокоды. Это существенно расширило круг специалистов, способных взаимодействовать с ЭВМ.

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

Машина М-20 и ее аналог БЭСМ-4 имели следующие технические характеристики: быстродействие 20 тыс. операций в секунду, оперативная память на ферритовых сердечниках емкостью 4096 слов, представление чисел с плавающей запятой, разрядность 45, система элементов – ламповые и полупроводниковые схемы, внешняя память – магнитные барабаны и ленты, а также особенности:

• впервые в отечественной практике была применена автоматическая модификация адреса;

• совмещение работы арифметического устройства и выборки команд из памяти;

• введение буферной памяти для массивов, выдаваемых на печать, совмещение печати со счетом;

• использование накопителя на магнитной ленте с быстрым пуском и остановом;

• для М-20 разработана одна из первых технологических систем программного обеспечения ИС-2 (Институт прикладной математики АН СССР).

Вслед за М-20 были разработаны и освоены в серийном производстве машины «Урал-1», «Минск-1». Они вместе с их полупроводниковыми наследниками (М-220, Урал-11-14, Минск-22 и -32), созданными в 60-е годы, были основными в СССР, практически до освоения в серийном производстве машин третьего поколения, т. е. до начала 70 – х годов [1, 3]. Основную нагрузку по выпуску этих машин приняли на себя коллективы Московского завода САМ, Пензенского завода ВЭМ, а также вступившие в строй в 1959-м году Казанский завод ЭВМ, Минский завод математических машин, Астраханский завод «Прогресс» и ряд других предприятий. В эти же годы была существенно расширена научно-исследовательская и конструкторская база: в 1956-м году созданы НИИУВМ (Пенза) и НИИММ (Ереван); в 1958-м году – НИИ-250 (Пенза), а также ряд конструкторские бюро на заводах.

В середине 50-х годов в оборонных отраслях

промышленности и в организациях министерства обороны страны проявился интерес к применению цифровых вычислительных машин для решения задач обработки информации и управления в системах военного назначения. Начались активные, секретные работы по освоению применения цифровой вычислительной техники для систем противовоздушной и противоракетной обороны, для контроля космического пространства и управления полетом в авиации и в космосе, для управления войсками и средствами вооружения разных видов. Многие из этих задач принципиально отличались по своему характеру и масштабу от ставших к тому времени традиционными вычислительных задач в гражданских областях и в науке. В них преобладали: логические операции, большая размерность, реальный масштаб времени и ряд других специфических свойств и требований. Очень быстро увеличивались номенклатура и объем функций систем, которые требовалось автоматизировать. Для реализации таких функций были необходимы значительные ресурсы памяти и производительности ЭВМ, а также большие коллективы специалистов, способные создавать крупные комплексы алгоритмов и программ в допустимые сроки. Уже первые комплексы программ военного назначения в 50-е годы достигали нескольких десятков тысяч команд, для чего было необходимо разрабатывать и применять некоторые методы программной инженерии. В результате начало активно развиваться специфическое направление вы числительной техники и программирования для крупных систем реального времени оборонного назначения [3, 9].

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

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

Для исследований, моделирования и постановки задач систем вооружения для оборонной промышленности в 1954 – м году был создан ВЦ-1 министерства обороны СССР – первый в стране профильный вычислительный центр. В научно-производственном аспекте по широте научных исследований и количеству разработчиков и специалистов в 1950-е годы это был самый мощный вычислительный центр в Советском Союзе и один из самых мощных в мире [11]. ВЦ-1 МО (впоследствии ЦНИИ-27 Министерства обороны СССР) был создан по инициативе Анатолия Ивановича Котова, который он и возглавил. ВЦ-1 стал одним из ведущих оборонных научных центров страны. В 1952-м году А.И. Китов защищает первую в СССР кандидатскую диссертацию, посвященную вопросам программирования. Название этой диссертации – «Программирование задач внешней баллистики ракет дальнего действия». В этом же году он организовал и возглавил первый в стране отдел вычислительных машин в Академии артиллерийских наук. После упразднения этой Академии в 1953-м году отдел А.И. Китова вместе с его начальником был переведён в подчинение Артиллерийской военно-инженерной академии им. Ф.Э. Дзержинского, а затем он возглавил ВЦ-1.

Осенью 1959-го года Анатолий Иванович послал в ЦК КПСС на имя Н.С. Хрущёва разработанный им проект создания общегосударственной автоматизированной системы управления для вооруженных сил и для народного хозяйства страны на базе Единой государственной сети вычислительных центров (ЕГСВЦ) – так называемый проект «Красная книга». В преамбуле этого доклада давалась резкая критика текущего состояния дел в стране с внедрением ЭВМ, и в первую очередь, в министерстве обороны СССР. Это предопределило негативное отношение к докладу А.И. Китова партийного и военного руководства СССР. Главное заключалось в том, что работники аппарата ЦК КПСС и, в частности, аппарата МО СССР почувствовали, что коренная перестройка управления на основе этого проекта приведет к устранению многих из них от рычагов государственной власти. В результате, А.И. Китов был исключен из КПСС и снят с престижной генеральской должности, которую он занимал в ВЦ 1 [11].

В 1965–1972 гг. А.И. Китов был Главным конструктором Отраслевой автоматизированной системы управления (ОАСУ) министерства радиопромышленности СССР и директором Главного вычислительного центра этого министерства. Потом около десяти лет он работал Главным конструктором АСУ «Здравоохранение». Опубликовал ряд основополагающих монографий и статей по вопросам применения ЭВМ и экономико-математических методов в области экономической информатики и медицинской информатики, в 1968-м году защитил докторскую диссертацию по гражданской тематике.

После ВЦ-1 в 50-е годы министерством обороны были организованы ВЦ-3 для разработки и исследования вычислительных систем и программирования авиационных систем, а также ВЦ-4 для артиллерийских и ракетных систем.

Отсутствие в стране в 50-е годы развитой централизованной промышленности электронных компонентов для ЭВМ являлось причиной их разработки зачастую теми же предприятиями, которые создавали архитектуру специализированных ЭВМ и системы управления в целом. Вследствие этого элементная база машин часто была полукустарной, малотиражной и разнотипной, не отличалась высоким качеством и технологическим уровнем. Необходимость для многих предприятий вести разработку систем по полному циклу, начиная с создания элементной базы ЭВМ и далее всей вычислительной техники и программных средств, не только приводила к множеству параллельных, не унифицированных разработок, но и значительно увеличивала длительность и стоимость проектов систем. Впоследствии это отразилось на сложности производства множества разнотипных ЭВМ, на трудностях сопровождения и модернизации систем в целом. С.А. Лебедев был убежден, что в разработках ЭВМ должна использоваться отечественная элементно-конструкторская база. ИТМ и ВТ был первым заказчиком дискретных интегральных и больших интегральных схем в министерстве электронной промышленности СССР. Отставание в технологии компенсировалось передовыми схемотехническими и архитектурными решениями. БЭСМ-6 была одной из лучших в мире ЭВМ по архитектурным и схемотехническим решениям (см. главу 2).

В 1960-м году были начаты работы по созданию семейства полупроводниковых ЭВМ «Урал» [3]. Основные черты нового поколения машин были сформулированы Баширом Искандеровичем Рамеевым в 1959-м году. В соответствии с ними были определены: состав семейства машин, их структура, архитектура, интерфейсы, принципы унификации, утверждены технические задания на устройства, ограничения на типы используемых комплектующих изделий. В конце 1962 года была закончена разработка унифицированного комплекса полупроводниковых элементов «Урал-10», рассчитанного на автоматизированное производство. Хотя элементы разрабатывались для использования в серии ЭВМ «Урал-11» – «Урал-16», они нашли широкое применение и в других средствах вычислительной техники и автоматики. В результате принятых правительством мер к началу 60-х годов были практически завершены все работы, связанные с созданием и освоением серийного производства полупроводниковых ЭВМ [3]. Это позволило прекратить, начиная с 1964 года, производство ламповых машин первого поколения и с 1965 года начать массовое производство полупроводниковых машин Урал-11 – Урал-14; Минск-22; Минск-23; БЭСМ-4; М-220; Раздан-3 и др.

В 1965 – 66-е годы все предприятия, НИИ и КБ в области вычислительной техники были переданы в состав двух министерств — министерства радиопромышленности (универсальные и специальные, бортовые, военные ЭВМ) и министерства приборостроения, средств автоматизации и систем управления (промышленные управляющие ЭВМ) [3, 10]. Работа предприятий в этих условиях совпала с началом активного создания и подготовки производства ЭВМ третьего поколения (на интегральных схемах). Трудности этого периода были связаны не только с решением научно-технических и технологических проблем (от архитектуры до элементной базы новых ЭВМ). Необходимо было решать большое количество сложных проблем создания в стране практически с нуля крупной отрасли вычислительной техники, базирующейся на новой технологии и широкой номенклатуре ранее не выпускавшихся средств, с переходом на внутриотраслевую специализацию. Освоение новых изделий во многих случаях шло одновременно со строительством самих заводов и обучением специалистов и сопровождалось множеством других проблем.

Решать все эти проблемы необходимо было в крайне ограниченное время (3–5 лет) с одновременным увеличением выпуска ЭВМ более чем в три раза при существенном увеличении состава оборудования в каждой машине. Реализовать эту задачу предполагалось в дальнейшем за счет разработки и освоения в серийном производстве нескольких типов программно совместимых вычислительных машин, построенных на единой конструктивно-технологи-ческой базе. Увеличение объемов производства достигалось за счет специализации производства и его лучшего технологического оснащения. Сокращение сроков разработки предусматривалось как за счет использования (легального) опыта ведущих западных фирм, на основе заключенных с ними соглашений, так и за счет привлечения к разработке и производству новых ЭВМ коллективов практически всех предприятий и организаций, ранее работавших над созданием множества разнообразных, собственных ЭВМ. Реализации этих задач было посвящено постановление правительства 1967-го года, в котором были сформулированы задачи и предусмотрены необходимые меры для обеспечения их выполнения материальными, производственными и финансовыми ресурсами [3, 11].

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

• увеличение мощностей по производству средств вычислительной техники с 304 млн. рублей в

1965-м году до 1000 млн. рублей в 1970-м году и до 3000 млн. в 1975-м году;

• рост выпуска средств вычислительной техники с 2470 млн. рублей в 1966 – 1970-е годы до 7500 млн. рублей в 1971 – 1975-е годы;

• увеличение выпуска ЭВМ с 5800 машин в 1966 – 70-е годы до 20000 машин в 1971 – 1975-е годы.

Только по министерству радиопромышленности СССР постановлением было предусмотрено строительство 14 новых заводов и реконструкция 11 существующих. Аналогичное развитие было предусмотрено и по предприятиям министерства приборостроения, средств автоматизации и систем управления и министерства электронной промышленности. Кардинальные решения были приняты по развитию мощностей по производству элементной базы машин третьего поколения, практически «с нуля» до 65 млн. интегральных схем в год. Эта программа максимум не была полностью выполнена, но она способствовала тому, что в стране примерно вдвое выросли производственные мощности по выпуску компонентов и систем вычислительной техники. В результате в 60-е годы были созданы предпосылки для последующей разработки таких высокопроизводительных систем, как БЭСМ-6, 5Э26, АС-6, МВК Эльбрус, М-13 (см. главу 2).

1.2. Начало истории отечественного программирования в 1950-е – 60-е годы

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

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

На протяжении 60-х годов запросы на разработку программного обеспечения быстро возросли и программы становились очень большими. Руководители начали понимать, что создание программного обеспечения – гораздо более сложная задача, чем они себе представляли. Это привело к тому, что было разработано структурное – модульное программирование. С развитием структурного программирования следующим достижением были процедуры и функции. Если задача выполняется несколько раз, то ее можно объявить, как функцию или процедуру и в выполнении программы просто вызывать ее. Общий код программы в данном случае становится меньше. Функции позволяют создавать модульные программы, в основе которых лежит представление программы в виде иерархической структуры блоков. Класс — это структура, которая имеет свои переменные и функции, которые работают с этими переменными. Это было очень большое достижение в области программирования. Программирование можно было разбить на классы и тестировать не всю программу, состоящую из строк кода, а разбить программу на группу классов, и тестировать каждый класс. Это существенно облегчило написание программного продукта.

Следующий шаг был сделан в 1954-м году, когда на Западе был создан первый язык программирования высокого уровня – Фортран. Языки высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека, с помощью них можно писать программы до нескольких тысяч строк длиной. Однако легко понимаемый в коротких программах, этот язык становился нечитаемым и трудно управляемым, когда дело касалось больших программ. Решение этой проблемы пришло после изобретения на Западе языков структурного программирования, таких как Алгол (1958), Паскаль (1970), Си (1972). С этого момента начался языковый бум. Языки программирования стали появляться один за другим. Так появились С+, ADA, FoxPro, Basic, Pascal и др. На сегодняшний день существует тысячи языков программирования. Из них популярность и известность получили только некоторые. Они отличаются простотой, быстротой, гибкостью и другими свойствами, удобными в некоторой определенной области использования.

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

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

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

С середины 50-х годов во всех странах, производивших вычислительную технику, начался бурный процесс «языкотворчества» — создание нескольких сотен проблемно-ориентированных языков [1, 4]. Многим программистам казалось, что небольшие улучшения языков программирования способны радикально повлиять на разработку и качество программ, на использование скудных ресурсов ЭВМ. Однако это требовало создания соответствующих трансляторов и средств отладки, вследствие чего энтузиазм языкотворчества постепенно угас. Сложной задачей для системных программистов того времени было создание трансляторов для конкретных типов машин. Создание каждого транслятора с машинно-независимого языка программирования считалось крупным научным и практическим достижением. Большое число различных типов машин и различных языков требовало трудоемкой работы высококвалифицированных программистов и математиков по разработке трансляторов. Соответственно, возникла необходимость создания небольшого числа стандартизированных языков и программно-преемственных семейств вычислительных машин. Это потребовало глубоких теоретических исследование в теории алгоритмов, схем программ, теории формальных грамматик.

В СССР в 60-е годы был создан алгоритмический язык РЕФАЛ, в основе которого лежала теоретическая модель процесса, реализуемого нормальными алгоритмами Маркова. Его использование в нашей стране позволило создать ряд оригинальных программных продуктов, не имевших аналогов за рубежом. Однако РЕФАЛ испытал судьбу многих отечественных находок. Сходная судьба была у языков программирования семейства Аналитик, созданных в Институте кибернетики АН УССР для ЭВМ серии «МИР». Эти машины, по существу, были первыми персональными ЭВМ (к сожалению, тогдашняя элементная база не позволила свести их габариты к настольным). Однако, несмотря на передовые принципы, заложенные в структуру и функции языков семейства Аналитик, они также не стали достоянием мирового сообщества программистов, хотя иностранные эксперты достаточно высоко оценивали достижения программирования в СССР [4].

Исследования в области параллельного программирования в СССР начались в середине 60-х годов, когда в Институте математики СО АН СССР (Новосибирск) и в Московском энергетическом институте возникли первые коллективы, заинтересовавшиеся теорией параллельных процессов в вычислительных системах, состоящих из однородных или неоднородных машин [4]. Первые монографии по теории вычислительных систем и параллельных вычислений вышли в нашей стране с большим опережением аналогичных изданий за рубежом. Отечественные специалисты первыми в мировой науке дали постановку и предложили решения таких задач, как сегментация алгоритмов и программ, планирование выполнения больших программ на вычислительных системах, динамическое диспетчерование потока программ и сегментов программ, асинхронная организация протекания процессов. В это время было предложено несколько оригинальных моделей для параллельных вычислений, заново открытых потом в США и других странах.

В 1953-х годах Л.В. Канторович разработал технологию крупноблочного программирования, которая давала обозримое описание крупных программ и обеспечивала формализацию, достаточную для исследования синтаксических структур программ и создания программирующих программ [4]. Идеи, высказанные в этих работах, предшествовали развитию программной инженерии. Работа школы протекала весьма активно в 1950 – 60-е годы. Характерной особенностью крупноблочных систем являлось то, что они оперировали не с индивидуальными числами и символами, а с величинами – укрупненными агрегированными информационными объектами. Такие укрупненные структуры данных (матрицы, векторы, последовательности, деревья, схемы и т. д.) выступали как целое в вычислительных планах; стандартные способы обработки отдельных компонентов выполнялись автоматически на нижних уровнях. Это вносило иерархическую структуру в языки программирования, освобождая верхние уровни от ненужной детализации. Существенно, что вычислительный процесс мыслился при этом также «объемным», протекающим одновременно, либо попеременно на каждом из этих уровней. Громоздкие и трудоемкие вычисления часто чрезвычайно упрощались при переходе на другой уровень. Представлялось, что в разумной стратегии переходов с одного уровня на другой кроется значительный резерв для повышения экономики вычислений. На этой же уровневой основе была создана оригинальная теория и методология трансляции, гибко сочетающая компиляцию и интерпретацию.

Ряд объективных обстоятельств способствовал тому, что до середины 60-х годов программирование в СССР развивалось до некоторой степени автономно от зарубежного [1, 3, 4]. К этим обстоятельствам относились:



Поделиться книгой:

На главную
Назад