автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.13, диссертация на тему:Разработка структурно-функциональных методов в параллельном программировании

кандидата технических наук
Борздова, Тамара Васильевна
город
Москва
год
1984
специальность ВАК РФ
05.13.13
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Разработка структурно-функциональных методов в параллельном программировании»

Оглавление автор диссертации — кандидата технических наук Борздова, Тамара Васильевна

ВВЕДЕНИЕ

ГЛАВА I. СТРУКТУРНО-ФУНКЦИОНАЛЬНЫЕ МЕТОДЫ

ОПИСАНИЯ ЗАДАЧ

1.1. Функциональный и алгоритмический аспекты программирования задач ••

1.2. О понятиях "структура", "структуризация программы" и способах их определения • • • •

1.3. Языки программирования и типы данных • • . • 26 Выводы

ГЛАВА 2. ФУНКЦИОНАЛЬНЫЕ ЯЗЫКИ ПАРАЛЛЕЛЬНОГО

ПРОГРАММИРОВАНИЯ

2.1. О споообах композиции функций •••.*••

2.2. Функциональные языки программирования и типизация данных . . . • ^

2.3. Основные принципы построения функциональных языков параллельного программирования • • •

2.4* Расширения функциональных языков параллельного программирования . »

Выводы.

ГЛАВА 3. ОЦЕНКИ СЛОЖНОСТИ И ЦЕЛЕНАПРАВЛЕННЫЕ

ЭКВИВАЛЕНТНЫЕ ПРЕОБРАЗОВАНИЯ ФУНКЦИЙ

3.1. Оценки сложности функций в Яф

3.1.1. Структурная сложность функций в Яф

3.1.2. Оценка сложности параллельных вычислений значений функций по их ФС

3.2. Целенаправленные эквивалентные преобразования функций вЯф.«

3.2Л. Об эквивалентных преобразованиях выч иол иных функций • . • . •.

3.2.2. Целенаправленные эквивалентные преобразования функций

Выводы

ГЛАВА МЕТОДЫ И ТЕХНОЛОГИЯ СХЕМНО-ФУНКЦИОНАЛЬНОГО

ПРОГРАММИРОВАНИЯ ЗАДАЧ

4.1. Декомпозиционные методы разработки программ и их формальное представление . •

4.2. Реализация декомпозиционных методов на основе схемно-функционального представления эадач •

4.3. Приемы разработки параллельных программ о учетом их эффективности . .•

4.4. Верификация параллельных программ

4.4.1. Правила верификации параллельных программ на ФЯПП.

4.4.2. Контроль типов функций

4.5* Технологические аспекты разработки параллельных программ на ФЯПП.

Выводы

ГЛАВА 5. ФУНКЦИОНАЛЬНАЯ СИСТЕМА ПАРАЛЛЕЛЬНОГО

ПРОГРАММИРОВАНИЯ.

5.1. Основные принципы построения системы параллельного программирования . •

5.2. Принципы организации управления вычислениями в сиотеме параллельного программирования . . «147 5.2.1. Основные функции и структура системы диспетчерских программ.•

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

5.2.3. Взаимодействие Диспетчера, Монитора и ОС ЕС

5.2.4. Взаимодействие Диспетчера, Монитора и системы виртуальных машин ••.

5.2.4.1. Основные принципы построения сиотемы виртуальных машин

5.2.4.2. Пути реализации механизмов взаимодействия Диспетчера, Монитора и СВМ ЕС

5.3. Средства отладки параллельных программ

5.4. Основные характеристики системы параллельного программирования

Выводы.

Введение 1984 год, диссертация по информатике, вычислительной технике и управлению, Борздова, Тамара Васильевна

Проблема повышения эффективности разработки программного обеспечения является одной из наиболее важных и трудных проблем современного программирования. Использование вычислительной техники во всех областях науки и производства, увеличение сложности задач, решаемых с помощью электронных вычислительных машин (ЭВМ), приводят к возрастанию размера и сложности программного обеспечения вычислительных комплексов. Если два-три десятилетия назад составление программ являлось в значительной степени искусством, которым владели немногие, то в наши дни разработка программных комплексов проводится большими коллективами, и затраты на их создание значительно превышают затраты на аппаратную часть. В середине 70-х годов стоимость разработки программного обеспечения составляла 60-70% полной стоимости разработки системы, к 1985 году эта цифра, по прогнозам [I-3J , будет равна 90%.

Поставки программного обеспечения часто задерживаются, так как в отличие от сложных технических систем, в отношении программного обеспечения трудно высказать определенные прогнозы, касающиеся сроков его разработки. Так, разработка проекта операционной системы 0S/360 фирмы IBM, трудоемкость которого была определена в 5000 человеко-лет, завершилась несколькими годами позже предполагаемого срока [3] .

Стоимость программного обеспечения теоно связана о производительностью труда программистов. Производительность разработки программ, измеряемая числом операторов (строк) правильно работающей программы, остается низкой. На основе анализа разработок 15 проектов объемом от нескольких тысяч до свыше 100 тыс. строк исходного текота в Национальном агентстве США по аэронавтике и космическим исследованиям (НАСА) было установлено [4] , что трудозатраты на разработку и отладку одной отроки исходного текста на языке Фортран иди Ассемблер составляют от 0,15 до 0,3 человеко-часов* Без учета затрат на управленческий персонал это соответствует примерно 4-12 долларам за I строку программного текста*

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

Увеличение размеров и сложности программ приводит к возрастанию трудоемкости и стоимости их отладки. Хотя время, затрачиваемое на отладку программ, занимает по оценкам специалистов от 30% до 50% общего времени разработки проекта, чиоло ошибок, остающихся не обнаруженными, очень велико. Причем установлено [5J , что 64% всех ошибок вносится на этапе проектирования и лишь 36% - на этапе кодирования. В работе [6] отмечается, что в проекте НАСА "Аполлон" примерно 73% всех ошибок было овязано с ошибками проектирования.

Процесс создания программного обеспечения - это не только процеос написания программ и их отладка; это также и сопровождение готового программного продукта. Причем, следует заметить, что затраты на этот этап так называемого "жизненного цикла" программного обеспечения составляют в среднем 67% от общих затрат. Парадоксальным является тот факт, что сложное программное обеспечение часто не поддается осознанию даже его создателей, не говоря уже о сопровождающем программисте [ 7] .

Вот как распределяются затраты на разработку типичного пакета программ для авиационно-коомических применений [ 8] по этапам его жизненного цикла: сам жизненный цикл составляет около 15 лет; 4 года уходит собственно на разработку, стоимость которой составляет 1/3 полной стоимости пакета (стоимооть пакета составляет 150 млн•долларов); стоимость интеграции системы составляет 7% полной стоимости, а остальные 60% полной стоимости (90 млн,долларов) обусловлены изменениями пакета, причем 1/3 последней суммы расходуется на коррекцию пакета, а остальная чаоть - на изменения спецификаций, усовершенствования и адаптацию к новому оборудованию*

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

Чем обусловлена низкая эффективность разработки программ?

Укажем следующие, на наш взгляд, наиболее существенные причины:

1) язык программирования "далек" от той предметной области, где возникает задача;

2) наиболее общим приемом решения сложной задачи является декомпозиция ее на более простые подзадачи* Операционный последовательный характер описания задач на традиционных языках программирования не позволяет в естественной форме отразить декомпозиционные процессы построения программы, усложняет верификацию программ, получение "объективной" оценки возможного ее убыстрения при раопараллеливании. Это препятствует повышению производительности труда программистов и качества разрабатываемых программ;

3) процесо решения сложных задач предполагает его распараллеливание. То, на какой оонове это делается (всякие раоширения последовательных языков [13, 14] , сохраняющие здание фон-неймановского стиля, либо использование синхронизирующих примитивов [15]), добавляет новые принципиальные трудности в процеоо программирования: заботу об однозначности результата, вычисляемого программой при допущении одновременно или асинхронно протекающих процессов ее выполнения. Доказывать однозначность - достаточно сложная задача. Наиболее общий метод, применяемый для этой цели, основан на известной теореме Черча-Роо-сера [16] .

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

Разрабатываемый в диссертационной работе подход к решению проблемы повышения эффективности процеосов конструирования и выполнения программ базируется на следующих, выдвинутых в [17] основных положениях:

1) развитие отруктурных, схемных форм описания задач (особенно сложных) является необходимым условием повышения эффективности процессов программирования вообще и параллельного программирования в частности;

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

3) поскольку в процеосе программирования задач объективно имеют место два относительно самостоятельных аспекта: логический, связанный с обеспечением корректности строящейся программы, и вычислительный, отражающий количественную сторону программы сложность, степень раопараллеливания), одноуровневое операционное описание задачи должно быть заменено двухуровневым согласно названным аспектам программирования.

Эти положения нашли свое воплощение в математичеокой абстракции функциональной системы, введенной в [17] , где в ранках одной модели присутствуют два формальных языка: функциональный яэык, предназначенный для представления процессов решения задач в схемной декомпозиционной форме, и операционный язык, средствами которого описываются процессы (в том числе асинхронные) вычисления значений функций*

В диссертационной работе решаются следующие основные задачи:

1) анализ структурных и функциональных методов программирования задач;

2) исследование общих принципов построения функциональных языков параллельного программирования; создание на этой основе конкретного функционального языка параллельного программирования;

3) исследование и разработка методов оценки сложности конструируемых функциональных программ, отражающих трудоемкость их разработки и степень распараллеливания;

4) разработка методов и технологии охемно-функционального программирования задач;

5) создание на базе разработанного функционального языка параллельного программирования системы параллельного программирования для комплексов, организуемых на основе ЕС ЭВМ*

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

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

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

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

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

В приложениях приведены

- формулировка конкретного языка функционального параллельного программирования;

- оценки сложности арифметических функций и функции обращения матрицы параллельным методом диакоптики;

- примеры разработки программ на функциональном языке параллельного программирования;

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

- комплект документов, описывающих программу решения задачи оинтаксичеокого анализа арифметических выражений;

- анализ известных методов оценки сложности программ и функций;

- оценки времени выполнения последовательной и параллельной программ решения задачи сортировки*

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

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

Кроме того, автор выражает оамую глубокую благодарность овоим родителям за постоянное внимание, помощь, поддержку, терпение.

Родителям и посвящается эта работа.

Охарактеризуем в заключение цель работы и полученные результаты.

Цель работы

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

Научная новизна

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

Практическая значимость работы

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

Реализация результатов исследования

Исследования завершены разработкой реальной системы параллельного программирования для существующих многопроцессорных комплексов ЕС ЭВМ,

Результаты исследований внедрены на предприятиях радиопромышленности и использованы в перспективных разработках многопроцессорных ЕС ЭВМ,

Апробация

Отдельные результаты работы докладывались:

- на научной конференции, посвященной 60-летию образования СССР, Москва, МЭИ, 1982 г.;

- на 1У Всесоюзной школе-семинар "Распараллеливание обработки информации", Львов, 1983 г.;

- на У1 Всесоюзной школе-семинар "Параллельные вычислительные системы", Киев, 1983 г,;

- на НТС предприятий радиопромышленности;

- на научных семинарах, проводимых на кафедрах Прикладной математики и Вычислительной техники МЭИ.

Научные публикации

По теме диссертации автором опубликованы 3 печатные работы; результаты работы отражены в 2 отчетах по НИР, в руководстве по использованию системы параллельного программирования.

Структура и объем работы

Работа состоит из введения, 5 глав, заключения, спиока литературы, включающего 145 наименований, и 7 приложений; общий объем работы 277 старниц машинописного текста. Основная чаоть изложена на 165 страницах машинописного текста, содержит 13 рисунков и 4 таблицы.

Заключение диссертация на тему "Разработка структурно-функциональных методов в параллельном программировании"

Выход

Т и TI - логические переменные

-К -V

I, Если значения Т и TI есть "Т", то присвоить Т значение "Т" иначе присвоить Т значение 11 11 А

Т - логическая переменная rv

- 164 -ЗАКЛЮЧЕНИЕ

В процессе решения задач, поставленных в диссертационной работе, получены следующие результаты:

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

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

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

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

5) создана полиязычная система параллельного программирования, ориентированная на применение на многопроцессорных комплексах ЕС ЭВМ, которая включает:

- функциональный язык параллельного программирования;

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

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

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

6) разработанная система параллельного программирования внедрена на ряде предприятий радиопромышленности.

Библиография Борздова, Тамара Васильевна, диссертация по теме Телекоммуникационные системы и компьютерные сети

1. Глушков В.М., Вельбицкий И.В. Технология программирования и проблемы ее автоматизации. - УСиМ, 1976, fe 6, с. 75-92.

2. Обучение разработчиков программного обеспечения. -Экспресс-информация, серия "ВТ", 1983, № 15, с. 15-17.

3. Брукс Ф.П. Как проектируются и создаются программные комплексы. М. : Наука, 1979, 151 с.

4. Перспективы развития методов и средств разработки программного обеспечения. Экспресс-информация, серия "ВТ", 1983, № 36, с. 20-30.5 •ЗоеЛ/п В., /77с С£?еал fi., itzf?ip.-Z>. Sa/ne ех/оезтелсе automated at'ds to t/?e design о/ Зсаёе ге ft a fee

5. So/£u/cti(=>. Intet/Tdftortcie Coafez елее ал feeiafte Softtt/a-ze. /os JsTfeZes, a/>zz<? /&Ф, />. //J.

6. PAoit/i fe Af.K Pe&J/>ectiires a/7 oo/txsate елрг'леечг'лр.-Compi/ti'ap Juziret/s , , v. />. /W-4/&.

7. Гласс P., Нуазо P. Сопровождение программного обеспечения. М. : Мир, 1983, 156 с.

8. Современное состояние и тенденции развития методологии проверки программного обеспечения. Экспресс-информация, серия "ВТ", с. 18-22.

9. Борздова Т.В., Вахрушева М.Б. Система параллельной обработки списковой информации. Тезисы 1У Всесоюзной школы-семинар "Распараллеливание обработки информации". - Львов, 1983, ч. Ш, с. 98-99.

10. Петцольд В. Построение систем параллельной обработки символьной информации на основе одного семейства функциональных моделей. Диссертация на соиск.уч. степени к.т.н. - М. : МЭИ, 1982.

11. Борздова Т.В., Вахрушева М.Б., Дяафри А., Кутепов В.П., Петцольд В. Полиязычная система параллельного функционального программирования для комплексов БС ЭВМ. Описание. -М. : МЭИ, 1983 (рукопись).

12. Борздова Т.В., Вахрушева М.Б., Кутепов В.П., Петцольд В. Полиязычная система параллельного программирования, основанная на одном семействе функциональных языков. Программирование, 1984, № 2, с. 31-45.

13. Кутепов В.П. Функциональные системы и параллельные вычисления. Диссертация на соиск. уч. степ. д.т.н. - М. : МЭИ, 1983.

14. Дал У., Дейкстра Э., Хоор К. Структурное программирование. М. : Мир, 1975, 245 с.

15. Мендельсон Э. Введение в математическую логику. М. : Наука, 1976, 320 с.

16. Клини С.К. Введение в метаматематику. М. : Иностранная литература, 1957, 526 с.

17. Bet с6us J~- Can ptogta/rrsmhg &e /z^eicftec/ /torn £Aeiron /leumann jtyPe ? d fuacttoacfP -jtf/Pe с/лс/ i tJczege&lc?a/ ftoglcws. СГАС/f, <2/,

18. Кухепов В.П., Фальк В.Н. Функциональные системы: теоретический и пракхический аспекхы. Кибернехика, 1979, № 3, с. 46-58.

19. Кораблин Ю.П. Языки параллельных алгорихмов и принципы их реализации. Авхореферах дисс. на соиск. уч. схеп. к.х.н. -М. : МЭИ, 1977.

20. Редько В.Н. Основания композиционного программирования. Программирование, 1979, № 3, с. 3-13.

21. Большая Совехская Энциклопедия. / Гл.ред. : А.М.Прохоров, т. 24, книга I. М. : Совехская энциклопедия, 1976, 608 с.

22. Ожегов С.И. Словарь русского языка. М. : Русский язык, 846 с.

23. Ляпунов А.А. О логических схемах программ. В сб. : Проблемы кибернетики. Вып. I. - М. : Физматгиз, 1958, с.46-74.

24. Янов Ю.И. О логических схемах алгоритмов. В сб. : Проблемы кибернетики. Вып. I. - М. : Физматгиз, 1958, с. 75-127.

25. Ершов А.П. Современное состояние теории схем программ. -В сб. : Проблемы кибернетики. Вып. 27. М. : Наука, 1973,с. 87-110.

26. Котов В.Е. Введение в теорию схем программ. Новосибирск : Наука, 1978, 258 с.

27. А/огс/з£го/77 £. cf/7 аг/£<?г>7е &/& /rr&tte/vcftz'c&P /тгос/р/? fob t/fe с/е/770-/7//pi/f&trG"7 с/сг/сг Г/7 ; Ptac. о/ Co/r/eierrce о/J>c?ta^/Jbt-i&ct/osy , J^/У/7 7/7'^^ еу^гУfttiscti/te Л&бе City, /&7<р. SJ~£/>ZAA/ /ГоГГсе*,1. Г. г. rjJue^ /- //

28. Бросгол Б.М. Дискуссионные вопросы из области типов данных и контроля типов. В сб. : Данные в языках программирования. - М. : Мир, 1982, с. 170-195.39. Obe/tcA А- А

29. Скотт Д. Теория решеток, типы данных и семантика. -В сб. : Данные в языках программирования. М. : Мир, 1982, о. 25-53.41. /77с /Ъ>г/ З/г&гфЗу Xc^iva^^-eJ fAt/fr fcJCGr<?f С7/7С/ o/Aei /7£>7tr fef t/eff/W'ec/cffcr typed X f /^jr ^

30. Йенсен К., Вирт H. Паскаль. Руководство для пользователя и описание языка. М. : Финансы и статистика, 1982, 151 с.43. k/ittA 4/. АГ027С//Лъа/77гг7/>7£7. jq/fwat P<1 &<Г?/С€> &/7с/ /e/7C-e,/077, У. л//.

31. Вегнер П. Программирование на языке Ада. М. : Мир, 1983, 239 с.

32. XI/ J/j/t&ct с/с//с/ J а ос/ t3e Jetreecy>/nev£ о/а/с/tс/ iftt/rtc/ie 4 .-333/f, ".2/?kb./ilkov<jr7t/c/e4. 3.9 /}tAS/7ios7 <fcAar//ettС Jfot tact/or? me с Acr/7/ V/77 d //7 3^0. -333//, /977, к л/3, />■ 33J- 076.

33. Дал У., Мюрхауг В., Нюгорд К. Симула-67. Универсальный язык программирования. М. : Мир, 1969, 99 с.

34. За/7-de/7 33. J/?e /?2o^bcr/77/77/'/7g

35. Со/7сг/ъ 1 e/7t~ Зсг-зс&З. -J~33~3~ Tier/7 j&cti0/7d 0/7 ъ<?7(^1/7 е. e z 1/7j /0739 is. S3-/, л/3,

36. J 01/2/70 в f /07$ , * , * /=>. 307-3/2.

37. Методология программирования на языке Фортран, основанная на применении абстрактных данных. Экспресс-информация, серия "ВТ", 1983, № 19, с. 9-15.

38. JtitfL/jfic/jP 3. СЗал&э : Л/7 cfatlcrcT' c/ata3/ty /о* t/n? С . ST03A3A/ /Vot/сед , /&>3>, к/7^л'/, /о. 42-52.

39. За/гаГге /Г., ЗоигыЗЗ., //et/na/7 2>., 2ау/таЗ> Л/7 ехрег /е/7Се //7 //т7/> Berne/71//7^ cffotzac:/ c/ata Сг/yoej. —

40. ЗгоГсТг'се агос/ £х/>е4/е/7се> у /£73?/, * /У, р. 3/3-320.г/пуP<e/77e/7tc/t/a/7 of- ctfo£tc/c?Sa/7 fcfc/Р/ty. f'i.Gfcttce сг/7с/ Sxy-eiterrce, A?*

41. Кутепов В.П., Фальк В.Н. Модели асинхронных вычислений значений функций в языке функциональных схем. Программирование, 1978, № 3, с. 3-15.

42. Холстед М.Х. Начала науки о программах. М. : Финансы и статистика, 1981, 128 с.57. ^2/'^te/7de/7 лг., P/tea* P. у ^ i-eJ/Detrfr'veа/7 Joftf/ane Jc/e/rce. ZS/Уa/7 Jaftvcfie £/7£//?<>4>Tf>7g, SPSS', к SS-2 9 ,/>. £##-320.

43. Coo£ /77. Z. Soft^&ie /77e?i/cd : a/r to/to atsct/as7 а/7с/ aoaaZatec/ Ё/^З/а^а^Зу. S^/ta^at e7atpj, к 7, //2, />. M 33.

44. Поспелов Д.А. Лекции по вычислительным системам (Учебное пособие). М. : МЭИ, 1972, 124 с.

45. Карп Е.М. Заметка о приложении теории графов к программированию для ЦВМ. В сб. : "Кибернетический сборник". -М. : ИЛ, 1962, вып. 4, с. 123-134.

46. Глушков В.М., Барабанов А.А., Калиниченко Л.А., Мих-новский С.Д., Рабинович З.Л. Вычислительные машины с развитыми системами интерпретации. Киев : Наукова думка, 1970, 260 с.

47. Головкин Б.А. Графовые модели программ с вероятностными параметрами (Современное состояние). В сб. : "Вопросы радиоэлектроники". Серия : Электронная вычислительная техника (ЭВТ). - М. : 1976, вып. 6.

48. Головкин Б.А., Герман В.А. О расчете времени исполнения машинных программ. В сб. : "Цифровая вычислительная техника и программирование". - М. : Сов. радио, 1972, вып. 7,с. 37-50.

49. Sfewcflt" 7. Л c0/77/>a%/j/o/r о/ ли/пгъ/сан? /'/? /77афг .-C4C/V, /&73>, "<?/, "2 />• -/32

50. Головкин Б.А. Расчет характеристик и планирование параллельных вычислительных процессов. М. : Радио и связь, 1983, 272 с.

51. Кутепов В.П., Перцов Е.Е. Оценка вероятности и среднего времени для множества путей вероятностного графа по регулярным выражениям. В сб. : "Цифровая вычислительная техникаи программирование". М. : Сов. радио, 1974, вып. 8, с. 16-20.

52. Демьянчук A.M., Жемгулис А.В. Анализ длительности параллельных алгоритмов. В сб. : Вычислительные системы.

53. М. : Финансы и статистика, 1982, с. 75-82.

54. Кутепов В.П. Языки параллельных алгоритмов. Учебное пособие по курсу "Структуры вычислительных машин и систем" -М. : МЭИ, с. I-9I.

55. Липаев В.В. Качество программного обеспечения. -М. s Финансы и статистика, 1983, 263 с.

56. Сложность вычислений и алгоритмов. Сб. переводов. Библиотека "Кибернетического сборника". М. : Мир, 1974, 389 с.

57. Хартманис Дж., Хопкрофт Дж. Обзор теории сложности вычислений. Кибернетический сборник, новая серия. Вып. II. М. : Мир, 1974, с. I3I-I76.

58. Ахо А. и др. Построение и анализ вычислительных алгоритмов. М. : Мир, 1979, 536 с.84. /Сисб 2>. я/у <?<?*><? /TVC^A/WP J^y^/r/'scft^аг7с/ yia^icr/77/77/h^, — CaTPytsf/'/vg fc&tsey* / /977, /Г?f

59. Иткин В.Э. Информационная структурированность программ. Кибернетика, 1979, № I, с. 29-37.

60. Борздова Т.В. Оценки сложности задания функций по их функциональным схемам. Тезисы 1У Всесоюзной школы-семинар "Распараллеливание обработки информации". - Львов, 1983, с. Ш, с. 96-98.

61. Дейкстра Э. Дисциплина программирования. М. : Мир, 1978, 275 с.

62. Вирт Н. Систематическое программирования. М. : Мир, 1977, 183 с.

63. Ньюэл А., Саймон Г. CP программа, моделирующая процесс человеческого мышления. - В кн. : Вычислительные машины и мышление. - М. : Мир, 1967, с. 283-300.

64. Нильсон Н. Искусственный интеллект. Методы поиска решений. М. : Мир, 1973, 270 с.

65. Хант Э. Искусственный интеллект. М. : Мир, 1978, 558 с.

66. Рафаэл Б. Думающий компьютер. М. : Мир, 1979, 407 с.

67. Уинстон П. Искусственный интеллект. М. : Мир, 1980, 519 с.

68. Ефимов Е.И. Решатели интеллектуальных задач. М. : Наука, 1982, 316 с.

69. Вельбицкий И.В. Технологические линии производства программ. Программирование, 1980, № 2, с. 14-26.

70. Родионов С.Т. Основные концепции модульности и анализ некоторых направлений развития общей технологии программирования. Программирование, 1980, Кг 2, с. 31-37.

71. Хьюз Дж., Мичтом Дж. Структурный подход к программированию. М. : Мир, 1980, 278 с.98. /,etre/7MaP . X />eoptar/i7 cf*4tf/7 snetAoc/d. dimafat10/7 , , > "'>/>

72. Структура модульных программ. Экспресс-информация,серия "ВТ", 1982, № 3, с. 16-19.

73. Методы программирования "оверху вниз", "снизу вверх" и структурное программирование. Экспресс-информация, серия "ВТ", 1976, № 17, с. 6-8.

74. Si/tee-i- СМ,Яг'с/гагс*40/7 А/С., ТЬ^е/л^оя 7.7.

75. Tof-cSour/7 ittucttstecf deii^i tecAa/^ej. Coffege Cat1tcu£v/77 *>7 C0"7f>., gag.asrc/ J)arte? /^гг.,

76. Турский B.M. Методология программирования. М. : Мир, 1981, 265 о.

77. Йодан Э. Структурное программирование и конструирование программ. М. : Мир, 1979, 415 с.

78. Лингер Р., Миллс X., Уитт Б. Теория и практика структурного программирования. М. : Мир, 1982, 406 с.

79. Засбеъ jyjte/77 tttei/pA jtivcti/iec/ f>iogta/77s77i/7g . ft о с. xpj-ps} y. yatt /}

80. Aro/>€>te //. JtiL/ctVi&c/ /> 1&£7гсГ/7?/77//7£? ~& -jf&tt/J t€>/><?} ■ Jfitsctv* <PC/ Jaftarc/ie JPer&f&y^e/??. Jh/o? <?с/г state4it fept /77a i few ,

81. Joned //.А/. //IPO foi с/РУеРо/э/'/z^ jf>ee-/f/e&t/o/7d. -2cftctsT7cttT'os7, /&73, К //£,/-/*,/£/.110. //ТР0 c?/7c/ irttPplc/Zear яуггсу/тг /7.— TB/7 -J//-Jte/77 Уi/raP , /&7<!Г, /г /о.

82. Дзержинский Ф.Я., Тер-Сааков А.П. Технология программирования структурный подход (учебно-методическое пособие). -М. : ЦНИИатоминформ, 1978.

83. Глушков В.М. Фундаментальные исследования и технология программирования. Программирование, 1980, № 2, с. 3-13.

84. Глушков В.М., Капитонова Ю.В., Летичевский А.А. Теоретические основы проектирования дискретных систем. Кибернетика, 1977, № 6, с. 5-20.

85. Глушков В.М., Капитонова Ю.В., Летичевский А.А. О применении метода формализованных технических заданий к проектированию программ обработки структур данных. Программирование,1978, № 6, с. 31-43.

86. Вельбицкий И.В., Ходаковский В.Н., Шолмов Л.И. РТК -технологический комплекс программиста БЭСМ-6.-УсиМ, 1976, N2 4, с. 29-33.

87. Вельбицкий И.В. Технологический комплекс производства программ РТК (концепции и возможности). Препринт 79-27. Киев, ЙК АН УССР, 1979, 53 с.

88. Вельбицкий Й.В., Ходаковский В.Н. Технологический комплекс производства программ на ЭВМ единой системы.- УсиМ,1979, № 2, с. 18-25.

89. Вельбицкий И.В. Р технология-80. - УСиМ, 1980, fe 6, с. 49-55.

90. Майерс Г. Искусство тестирования программ. М. : Финансы и статистика, 1982, 156 с.

91. Плюшкявичус Р.А. Некоторые вопросы структурной теории доказательства правильности программ. В сб. : Семиотика и информатика, вып. 14. М. : ВИНИТИ, 1980, с. 81-91.

92. Андерсон Р. Доказательство правильности программ. -М. : Мир, 1982, 163 с.126. /ЯаялсЗ еТ #33. Sodi/cftcre /rref/rcrc/d p<i0tr/'/7g flape-it/ei /?/-33ЗУ, /072, У. /39 /УЗ3, /У 27-33>

93. Непейвода Н.Н., Свириденко Д.И. Программирование с логической точки зрения. Препринты T-I, Т-2, СО АН СССР, Ин-т математики, Новосибирск, 1981.

94. Непейвода Н.Н. Об одном методе построения правильной программы из правильных подпрограмм. Программирование, 1929, te I, с. 15-25.

95. Джафри А. Разработка функционального языка параллельного программирования и его реализация на вычислительных системах. Диссертация на соиск. учен. степ. к.т.н. - М. : МЭИ, 1980.

96. Панфилов И.В., Половко.А.М. Вычислительные системы. -М. : Сов. радио, 1980, 304 с.

97. ЕС ЭВМ. Операционная система. Режим мультипроцессиро-вания в операционной системе ОС ЕС. Руководство системного программиста. Ц51.804.006 45 Д246.

98. ЕС ЭВМ. Операционная система. Макрокоманды супервизора и управления данными. Руководство программиста. Ц51.804. 001-01 Д5.

99. ЕС ЭВМ. Система виртуальных машин. Общее описание. Е I.00005-01 90 01.

100. Разработка базового программного обеспечения для систем представления знаний в ЭВМ. Часть 5. "Интерпретирующая система Лисп/ЕС. Общие положения". Отчет по НИР. № Б664449.1. М. : МЭИ, 1978.

101. Землянский А.А., Персиц М.Г. Основы операционной системы ЕС ЭВМ. М. : Советское радио, 1980, 144 с.137.138. 2>. ? /77&1 /С. 7~У/77<Р 30<SS7£/zf £?S7 рс/л с?РРе Р егга/РисСЗ/Ъ/г с?/ 0"i/'3/7/7r&t/'c £>лг/> 1

102. Jc>Vi/7C/P <S>/7 <TG>/77/>ut-/>?gr f У. A/2^ />■139. 3l£>/7f 3/9 У3б> fC-fc/Pee/? rinsr/bar?аы' ?/r/77etrc PAT/?* , yotsi/z&P /0?-?2/; л/ />. 20/~ 237.140. tar?-af 3=:P j /77</ЗР<РЪ J><F S//r£>

103. Ъерг/Угес/ to etrz?Pc/c/t> с/Зггг&Ъ/7 -/^л** at/33/77&?/c

104. PX/>-> PddfO/yj — J/7/04/770/3/0/7

105. Вальковокий В.А., Котов В.Е. Автоматическое построение параллельных программ. Распараллеливание выражений и циклов. Препринт № 146, Новосибирск, 1979, 42 с.

106. Котарова И.Н., Шамаева О.Ю. Параллельный метод диа-коптики для решения сложных задач на распределенных вычислительных системах. Кибернетика, 1979, № I, с. II2-II9.

107. Фаддева В.Н. Вычислительные методы линейной алгебры. -М. : ГИТТЛ, 1950, 240 о.

108. Криницкий Н.А. Равносильные преобразования алгоритмов и программирование. М., Сов. радио, 1970.