В середине прошлого века в СССР активно стали развиваться спецкомпьютеры (о некоторых из них). Возникла острая необходимость использования ЭВМ в военном деле, что одновременно сократило бы военные расходы и затраты, при этом увеличило бы точность и дальность поражения, повысило бы мощность средств уничтожения, увеличило бы скорость перемещения, автоматизировало бы операции управления оружием. Исходя из этого, шел поиск эффективных схемотехнических и конструкторских решений, которые бы выполняли поставленные задачи с минимизацией требований к материальным ресурсам. Такие ЭВМ, в отличии от универсальных, требовали высокой надежности при работе в различных механических и климатических условиях, минимизации их обьема, уменьшения потребляемой энергии, а главное огромнейших затрат интеллектуального труда. Внимательное отношение к составу команд при создании программ для решения задач в установленные сроки построения систем — было одним из основных требований.
В США в военных компьютерах использовались схемы универсальных компьютеров, что требовало повышения их скорости, объема памяти и надежности. В нашем отечестве в СЭВМ память для команд и память для чисел были независимы, что увеличивало производительность, исключало случайности, связанные с программами, например — появление вирусов. Спецкомпьютеры соответствовали структуре «Риск».
Для спец ЭВМ военного назначения (например при использовании для расчета стрельбовых данных), появление ошибки было недопустимо, так как неправильные данные приводили к срыву выполняемой задачи, что в лучшем случае, "… требовало повторного решения и дополнительной траты снарядов, ракет, а в худшем — к проигрышу поединка, краху операции и уничтожению". Высокая достоверность выдаваемой информации могла быть достигнута применением различных методов контроля, как для проверки работы аппаратуры, так и для проверки выдаваемых данных.
Не новость, что в Союзе вычислительная техника и программное обеспечение развивались по двум почти независимым направлениям. Над вычислительной техникой «кропотали» многочисленные коллективы предприятий промышленности, академий наук и вузов. Над развитием направления программного обеспечения трудились в организации военно-промышленного комплекса (ВПК). Научно-исследовательский институт НИИ5 (называемый «пятеркой») стал ведущим разработчиком средств автоматизации создания программного обеспечения для специализированных ЭВМ в 50 — 80 годы. Уже к концу 60 годов только программистов в нем насчитывалось более чем 2 тысячи. Здесь разрабатывались не отдельные программы, а проектировались сложные программные комплексы, это и отличало «пятерку» от остальных академических институтов.
Перед алгоритмистами и программистами стала задача найти очень экономные решения сложных задач. Это было обусловлено малыми аппаратными ресурсами специализированных управляющих ЭВМ. Применять языки программирования высокого уровня (ЯВУ) стало неоправданным для машин первого, второго и третего поколения, ведь при работе с ними количество команд увеличивалось в полтора-два раза и более (активно использовался ЯВУ в спецкомпьютерах четвертого поколения, которые были построенных на микропроцессорах и вопрос экономии памяти и быстродействия перестал быть определяющими при формировании габаритно-весовых показателей компьютера). В 60 годы программы писали в машинном коде самих машин или специализированных ассемблерах.
Специфика спец компьютеров, заключалась вот в чем: архитектура создаваемых машин соответствовала какой-то определенной функциональности, в систему команд входили спец команды для выполнения какого-то конкретного действия, но задач ведь было много, а соответственно — появился целый «зоопарк» таких ЭВМ (в военном применении только насчитывали около 300 штук).
Как вспоминал Липаев: "… это была вовсе не блажь, как может показаться, а следствие ограниченных возможностей. На плохой и медленной элементной базе создавались скоростные системы. О том, за счет чего это удавалось, можно судить на основании сравнения с отрывочными сведениями о решениях нашего потенциального противника. Вычислительные ресурсы у американцев были несравненно больше, но стоимость труда программистов там традиционно высока. А мы, как всегда, брали своей изобретательностью и численностью".
Владимир Васильевич Липаев
Альтернативы не было, в 60 годах стали доступными универсальные машины, началось создание интерпретаторов, на которых удавалось писать и отлаживать отдельные фрагменты. Интерпретаторами стали кросс-системы.
Позже, к середине 70 годов, стали применяться макроязыки, которые были адаптированы к архитектуре СУ ЭВМ. Начали развиваться кросс-системы автоматизации программирования комплексов программ, но компиляторы, отладчики, документаторы нужно было адаптировать под особенности архитектуры каждой такой ЭВМ, а из-за их малых ресурсов, такой технологический инструментарий размещать приходилось на больших универсальных ЭВМ с иными системами команд.
Становилось невозможным создавать системы обработки информации в требуемые сроки без средств автоматизации проектирования.
«Яуза-6»
Под руководством Липаева (профессор, доктор технических наук, один из ведущих специалистов по военным программным системам и методам автоматизации программирования) в 1973 году начало развиваться направление автоматизации разработки программ реального времени. Уже в 1975 году ввели в эксплуатацию первую версию системы комплексной автоматизации программирования и отладки программ «Яуза-6», на разработку системы обьемом более чем 350 тысяч автокода БЭСМ-6 было затрачено 400 человеко-лет.
БЭСМ-6
К началу 80 годов такая кросс-система «Яуза-6» была настроена более чем на 25 архитектурах СУ ЭВМ и передана для работы в 14 организаций различных ведомств. Адаптируемые кросс-системы были востребованы, они помогли повысить производительность труда специалистов при создании крупных программ реального времени. Адаптируемость достигалась применением принципов параметризации, конфигурирования и функционального расширения.
Особенностями данной кросс-системы «Яуза-6» стали:
- возможность автоматизированной адаптации системы на структуру и архитектуру команд различных специализированных ЭВМ;
- применение трех входных языков программирования для специализированных ЭВМ автокода, макроязыка и алгоритмического языка;
- обеспечение высокого качества программ по использованию памяти и производительности ЭВМ, транслированных с алгоритмического языка (коэффициент расширения в пределах 1,1 1,2);
- автоматизированную стыковку программных компонентов по глобальным переменным и по передачам управления;
- автоматизированный контроль структурного построения и использования памяти программными компонентами;
- автоматизированное тестирование и отладка программ с использованием стационарной универсальной ЭВМ на уровне входного языка программирования с интерпретацией команд специализированной ЭВМ;
- автоматизированный выпуск документации на весь комплекс программ и на отдельные компоненты в соответствии с ГОСТами и пригодной для ввода программ в специализированную ЭВМ.
Все эти особенности отличали «Яуза-6» от обычных трансляторов. Она была комплексной системой программной инженерии и предназначалась для автоматизации основных этапов разработки крупных комплексов программ, при условии высокой эффективности создаваемых программ по использованию ресурсов специализированной ЭВМ.
Кросс-система автоматизации программирования «Яуза-1» была разработана в 1971 году на технологической ЭВМ М-220. В ней были реализованы транслятор с ассемблера, автоматизированно-настраиваемый на архитектуру управляющих ЭВМ, простейшая база данных проектирования, средства изготовления расширенной номенклатуры программных документов. Она была разработана под руководством Л.А. Серебровского. Он разработал алголоподобный язык Яуза для специализированных ЭВМ и реализовал компилятор с него, но практического применения такой язык так и не нашел.
В систему «Яуза-6» входили три крупных компонента, это была организующая система, система автоматизации программирования, система отладки. Все они использовали базу данных, которая включала архив символьной информации исходных текстов программ, библиотеку паспортов модулей и компонентов, архив оттранслированных программ на языке программирования и в машинных кодах, тесты и результаты отладки, технологические и эксплуатационные документы программных продуктов.
Кросс-система «Яуза-6» использовала три взаимосвязанных языка программирования: автокод, макроязык и алгоритмический язык. Алгол-60 — служил базовым языком, он был модифицирован и русифицирован. Трансляция с автокода состоял из двух просмотров, в модуле программы глобальные переменные не описывались, а считались объявленными во всем комплексе программ. Транслятор с макроязыка был построен по обычной схеме макрогенераторов. Макроязык рассматривался как макросредства над автокодом. Трансляторы с алгоритмических языков состояли из пяти просмотров, решали такие задачи как, лексический и синтаксический контроль входного текста, распределение памяти переменных, масштабирование, семантический контроль, формирование последовательности автокодных команд или операторов макроязыка, оптимизация программы.
Для специализированных ЭВМ указанные языки образовывали взаимосвязанную систему языков программирования, обеспечивался преемственный вертикальный переход от нижних уровней на более высокий уровень путем ввода новых конструкций в язык и, наоборот, исключением конструкций, не соответствующих задачам уровня. Разработчик функциональной программы или модуля специализированной ЭВМ мог выбирать уровень языка в зависимости от требований к эффективности использования ресурсов памяти и производительности ЭВМ.
Для машин по отношению к программе, записанной на автокоде, трансляторы с макроязыка давали расширения не более 10%, а с алгоритмического языка около 20 — 30%. Был разработан базовый автокод (унифицированный документ), он отличался унифицированным построением синтаксиса и лексики на базе русского языка, лексика такого базового автокода делилась на две части, одна из них постоянная, вторая — переменная (формировалась в процессе идентификации кодов операций, устройств, регистров).
Для системы был налажен процесс накопления и использования наборов готовых испытанных программных и информационных модулей, компонентов для формирования новых комплексов программ и/или их модернизированных версий.
Библиотеки наборов таких компонентов и унифицированные межмодульные интерфейсы обеспечили эффективное конфигурационное управление при создании из них новых комплексов программ и при модернизации эксплуатируемых версий программных продуктов.
«Яуза-6» эксплуатировалась в ряде организаций почти 20 лет, начиная с 1979 года. Применялась для различных типов бортовых ЭВМ класса «Аргон». Она использовалась для разработки программ, таких как — орбитальная станция САЛЮТ-7, межпланетная станция Венера и Марс, спутников Экран, Радуга, Горизонт и ряда стратегических ракет.
После технического старения машин БЭСМ-6 прекратилось использование данной кросс-системы.
Системы «Темп», «Руза»
В СССР в конце 70 годов появились первые микропроцессоры типа Intel 8086 и Intel 3000. Для применения при программировании во встраиваемых микро ЭВМ на базе компонентов «Яузы 1-6» была создана система «Темп».
Большие универсальные машины (типа БЭСМ-6) имели высокое быстродействие, располагали большим объемом оперативной и внешней памяти и дисплейными терминальными станциями (до 15 дисплеев). На таких ЭВМ могли быть размещены сложные кросс-системы «Яуза-6», «Темп», «Руза», объемом порядка 200 — 400 тысяч команд, автоматизирующие почти весь технологический процесс проектирования сложных комплексов программ объемом до 1 млн. команд. Большой объем внешней памяти обеспечивал накопление и хранение информации о создаваемых комплексах программ и возможность вести проектирование нескольких комплексов одновременно. Это давало возможность визуализировать на дисплеи всю необходимую информацию, что сокращало использование перфокарт и распечаток. Технологический процесс был автоматизирован.
К 80 годам была разработана технологическая кросс-система «Руза», под руководством Штрика. Она базировалась на основных концепциях «Яузы-6», кроме этого исключала некоторые ее дефекты. Такая система применялась при проектировании комплексов программ объемом десятки и сотни тысяч команд для работы в реальном масштабе времени, в режиме нон-стоп, предназначалась унифицировать технологию проектирования и автоматизировать разработку крупных комплексов программ, повышала производительность труда программистов и улучшала качество программ.
Языковым средствам САРПО «Руза» относятся следующие языки:
- настройки САРПО «Руза» на конкретный тип СЭВМ и характеристики проектируемого комплекса программ
- управления и диалогового взаимодействия пользователя с «Руза» и технологической ЭВМ
- спецификаций программ
- программирования различных уровней
- отладки программ
ПО «Руза» размещалось на магнитных носителях и содержало контрольные тесты для проверки работоспособности эталонной версии, предназначенной для эксплуатации и настройки, объем минимальной комплектации — 250 тысяч команд.
Типы машин, для которых могла быть применена САРПО (система автоматизации разработки программного обеспечения) «Руза», различались архитектурой, системами команд, типами адресации, а также видами и объемами памяти. Команды могли быть одно-, двух- и трехадресными, способы адресации — непосредственная, прямая, косвенная, относительная, стековая (безадресная), регистровая и т. д. «Руза» работала на ЭВМ ЕС-1033, ЕС-1045, ЕС-1060 под управлением ОС ЕС версии 6.1 и более поздних изданий.
ПО «Руза» структурно состояло из 454 программных и 235 информационных модулей. Среднее количество программных модулей в подсистеме 36, 75% модулей разработано на языке ПЛ/1, для связи с ОС ЕС, отдельных высокоэффективных программ использовался ассемблер. 65 оверлейных сегментов обьединяли компоненты системы (8 -10 программных модулей в каждом).
В 80 годах в НИИ «Аргон» были созданы бортовые машины с архитектурой и системами команд ЕС ЭВМ, это позволило использовать для разработки управляющих программ реального времени стационарные ЕС ЭВМ без применения интерпретаторов и кросс-систем. К началу 90 годов программы для управляющих ЭВМ военного назначения писали полностью отечественные специалисты без использования импортных компонентов. Было доказано, что наши алгоритмисты и программисты способны создавать различные сложные комплексы программ с высоким качеством в допустимые сроки.
Автор: ua-hosting.company