Категории
Самые читаемые
Лучшие книги » Детская литература » Детская образовательная литература » Очерки истории отечественной программной инженерии в 1940-е – 80-е годы - Владимир Липаев

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

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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 25 26 27 28 29 30 31 32 33 ... 65
Перейти на страницу:

• три входных языка программирования для специализированных ЭВМ – автокод, макроязык, алгоритмический язык;

• высокое качество программ, транслированных с алгоритмического языка (коэффициент эффективности – расширения кодов программ в пределах 1,1 – 1,2);

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

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

• автоматизированная отладка компонентов на универсальной технологической ЭВМ на уровне входного языка программирования с интерпретацией команд специализированной ЭВМ;

• автоматический выпуск документации на весь комплекс программ и на отдельные подпрограммы в соответствии с ГОСТами и пригодной для ввода программ в специализированную ЭВМ.

Перечисленные особенности отличали САРПО ЯУЗА-6 от обычных трансляторов как комплексную систему программной инженерии, предназначенную для автоматизации основных этапов разработки крупных комплексов программ, при условии высокой эффективности создаваемых программ по использованию ресурсов ЭВМ (рис. 3). Комплексная автоматизация должна была в несколько раз повысить производительность труда при разработке больших управляющих программ (размером порядка 100 тыс. команд). При этом должны были исследованы, и учитываться принципиальные особенности мобильных, специализированных ЭВМ и комплексов программ оборонных систем того времени [16, 18].

Значительное расширение функций автоматизации разработки программ на мощных технологических ЭВМ (БЭСМ-6), а также быстрый рост числа различных структур мобильных и бортовых ЭВМ, для которых была необходима автоматизация программирования, приводили к сокращению общей доли, изменяемой части инструментальных систем разработки программ для множества применяемых ЭВМ. В результате было показано, что экономически целесообразно выделять в инструментальных технологических системах программирования машинно ориентированную на специализированные ЭВМ часть программ, и отдельно автоматизировать их разработку. Впоследствии, примером могла служить система ЯУЗА-6, в которой из 400 тысяч команд, для настройки на различные специализированные ЭВМ оказалось необходимо всего около 3–5 % изменяемых команд- Для автоматизации такой настройки целесообразно было разработать дополнительную подсистему размером около 10–20 тысяч команд и соответствующие инструкции по ее применению.

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

Рис. 3

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

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

При полной трудоемкости создания ЯУЗА-6 около 300 человеко-лет, для адаптации всей системы на архитектуру любой специализированной ЭВМ, требовалось только около одного человеко-года квалифицированного специалиста.

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

• автокоды, предназначенные для записи программ с полным учетом структуры и системы команд конкретной специализированной ЭВМ;

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

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

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

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

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

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

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

1 ... 25 26 27 28 29 30 31 32 33 ... 65
Перейти на страницу:
На этой странице вы можете бесплатно скачать Очерки истории отечественной программной инженерии в 1940-е – 80-е годы - Владимир Липаев торрент бесплатно.
Комментарии