- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Очерки истории отечественной программной инженерии в 1940-е – 80-е годы - Владимир Липаев
Шрифт:
Интервал:
Закладка:
• три входных языка программирования для специализированных ЭВМ – автокод, макроязык, алгоритмический язык;
• высокое качество программ, транслированных с алгоритмического языка (коэффициент эффективности – расширения кодов программ в пределах 1,1 – 1,2);
• автоматизированная стыковка программных компонентов по глобальным переменным и по передачам управления;
• автоматизированный контроль структурного построения и использования памяти программами;
• автоматизированная отладка компонентов на универсальной технологической ЭВМ на уровне входного языка программирования с интерпретацией команд специализированной ЭВМ;
• автоматический выпуск документации на весь комплекс программ и на отдельные подпрограммы в соответствии с ГОСТами и пригодной для ввода программ в специализированную ЭВМ.
Перечисленные особенности отличали САРПО ЯУЗА-6 от обычных трансляторов как комплексную систему программной инженерии, предназначенную для автоматизации основных этапов разработки крупных комплексов программ, при условии высокой эффективности создаваемых программ по использованию ресурсов ЭВМ (рис. 3). Комплексная автоматизация должна была в несколько раз повысить производительность труда при разработке больших управляющих программ (размером порядка 100 тыс. команд). При этом должны были исследованы, и учитываться принципиальные особенности мобильных, специализированных ЭВМ и комплексов программ оборонных систем того времени [16, 18].
Значительное расширение функций автоматизации разработки программ на мощных технологических ЭВМ (БЭСМ-6), а также быстрый рост числа различных структур мобильных и бортовых ЭВМ, для которых была необходима автоматизация программирования, приводили к сокращению общей доли, изменяемой части инструментальных систем разработки программ для множества применяемых ЭВМ. В результате было показано, что экономически целесообразно выделять в инструментальных технологических системах программирования машинно ориентированную на специализированные ЭВМ часть программ, и отдельно автоматизировать их разработку. Впоследствии, примером могла служить система ЯУЗА-6, в которой из 400 тысяч команд, для настройки на различные специализированные ЭВМ оказалось необходимо всего около 3–5 % изменяемых команд- Для автоматизации такой настройки целесообразно было разработать дополнительную подсистему размером около 10–20 тысяч команд и соответствующие инструкции по ее применению.
Основное достоинство разработанного и исследованного оригинального метода адаптируемых кросс-систем состояло в том, что эти системы могли быть ориентированы практически на любые типы специализированных ЭВМ, поддерживая при этом эффективность результатов программирования на достаточном уровне. Процесс адаптации кросс-систем был формализован и автоматизирован.
Рис. 3
При разработке адаптируемой кросс-системы в ее машинно-зависимые технологические программы были введены проблемно-ориентированные средства, предназначенные для обеспечения автоматизации адаптации.
Для формирования подсистемы адаптации было исследовано множество характеристик и параметров, различных специализированных ЭВМ. При этом был использован не только статистический материал, накопленный при рассмотрении специализированных ЭВМ, но и априорные обобщенные характеристики широкого класса объектных вычислительных машин. В пределах этого класса определялись типы данных, с которыми работают специализированные ЭВМ, специфика систем команд, их форматы и времена исполнения; состав памяти данных и команд; системы адресации и т. д. Данные характеризовались типом, формой представления, способом кодирования и точностью.
При полной трудоемкости создания ЯУЗА-6 около 300 человеко-лет, для адаптации всей системы на архитектуру любой специализированной ЭВМ, требовалось только около одного человеко-года квалифицированного специалиста.
К программным средствам объектных ЭВМ реального времени в 70-е годы предъявлялись особенно жесткие требования к использованию их вычислительных ресурсов, что вызывало необходимость построения и применения специфических методов программирования и соответствующих языков для систем реального времени. Для сложных комплексов программ было характерно разнообразие алгоритмов решения функциональных и вспомогательных задач. При этих условиях трудно было удовлетворить требования высокой эффективности получаемых программ и одновременно высокой производительности труда специалистов, если проводить программирование на одном языке. Проведенные исследования показали, что перспективным является путь автоматизации программирования на базе группы взаимно связанных входных языков, различающихся глубиной машинной и проблемной ориентации, применяемых в зависимости от типов задач. По своей ориентации языки программирования полезно было разделить на:
• автокоды, предназначенные для записи программ с полным учетом структуры и системы команд конкретной специализированной ЭВМ;
• макроязыки, предназначенные для записи программ с использованием унифицированных операторов и процедур, состав и содержание которых учитывают не полностью структуру каждой специализированной ЭВМ и особенности ее системы команд;
• алгоритмические языки, запись программ, на которых почти полностью унифицирована и производится с учетом лишь структуры памяти, специализированной ЭВМ или класса ЭВМ, либо вообще без учета особенностей конкретной ЭВМ, предназначенной для работы по этой программе.
Для специализированных ЭВМ указанные языки должны были образовывать взаимосвязанную систему языков программирования, в которой обеспечивался преемственный вертикальный переход от нижних уровней на более высокий уровень путем ввода новых конструкций в язык и, наоборот, исключением конструкций, не соответствующих задачам уровня. Разработчик функциональной программы или модуля специализированной ЭВМ могли бы выбирать уровень языка в зависимости от требований к эффективности использования ресурсов памяти и производительности. Удовлетворение этих требований зависело от характеристик трансляторов.
Было исследовано расширение текста транслированных программ при программировании на языках высокого уровня. Для специализированных ЭВМ по отношению к программе, записанной на автокоде, трансляторы с макроязыка давали расширения не более 10 %, а с алгоритмического языка около 20 %. Поэтому при жестких требованиях к эффективности программы по занимаемому объему памяти и производительности, программирование рекомендовалось проводить на автокоде. При более слабых требованиях к полноте использования ресурсов специализированных ЭВМ и хороших трансляторах, алгоритмические языки оказывались предпочтительными, поскольку программирование на них удобнее и сопровождается меньшим числом программных ошибок.
Описание базового автокода представляло собой унифицированный документ, который использовался при программировании любой специализированной ЭВМ. Он содержал сведения о принципах построения базового автокода и структуре его документации. В особом разделе приводилась структура программ, правила оформления модулей, записи связей по управлению и кодированию программ. В описание базового автокода вводился специальный раздел, содержащий правила формирования конкретного представления автокода, которые регламентировал действия по обозначению машинно-зависимых элементов автокода. Все функции транслятора с автокода, кроме генерации машинных команд, следовало адаптировать к явным значениям параметров специализированной ЭВМ, автокода и характеристикам проекта прикладной системы – заказа. Программы, реализующие перечисленные функции, следовало проектировать по методу параметризации.
В большинстве проектов макрогенератор не зависел от параметров условий применения. Однако в специальных проектах в него могли быть встроены машинно-зависимые функции распределения памяти и масштабирования. В этом случае подготовка макрогенератора осуществлялась аналогично подготовке компилятора алгоритмического языка.
Компилятор алгоритмического языка необходимо было настраивать на структуру памяти и форматы специализированной ЭВМ, а также на правила программирования операторов алгоритмического языка, учитывающие специфику системы команд специализированной ЭВМ. Настройка на параметры машины могла осуществляться тем же методом, который применялся для настройки транслятора с автокода.

