
- •В.Ф. Гузик проектирование проблемно - ориентированных вычислительных систем
- •Часть 1
- •Предисловие
- •Производительность суперкомпьютеров
- •Глава первая. Концепция построения многопроцессорных вычислительных систем с программируемой архитектурой (мвс па)
- •Глава вторая. Организация математического обеспечения мвс с программируемой архитектурой
- •2.1. Основы математического обеспечения многопроцессорных вычислительных систем с программируемой архитектурой
- •2.2. Организация машинных языков высокого уровня и технология программирования мвс с программируемой архитектурой
- •2.3. Организация параллельных вычислительных процессов в мвс с программируемой архитектурой
- •Глава третья. Проблемно-ориентированные мвс па
- •3.1.Методика перехода от систем дифференциальных и алгебраических уравнений к системе уравнений Шеннона
- •3.1.1.Представление исходной задачи в форме, удобной для реализации на цифровых интегрирующих машинах (цим)
- •3.1.2. Методика перехода от заданных функций к системе уравнений Шеннона
- •3.1.3. Методика перехода от заданных дифференциальных уравнений к системе уравнений Шеннона
- •3.1.4.Методика перехода от систем линейных алгебраических уравнений к системе уравнений Шеннона
- •3.1.5.Получение программных матриц соединений цифровых решающих модулей
- •3.1.6.Методика перехода от программных матриц к схеме соединения цифровых решающих модулей (црм) в цим с жесткими связями
- •3.2.Примеры структурной организации вычислительного процесса в цим.
- •3.2.1.Задача №1
- •3.2.2.Задача №2
- •3.2.3.Задача №3
- •Приложение 3.2
- •3.2.4.Задача №4
- •3.2.5.Задача №5
- •Глава четвёртая. Теоретические основы построения интегрируЮщих вычислительных структур модульного типа
- •4.1. Общая структурно-логическая схема проектирования (анализа и синтеза) модульных ивс
- •4.2. Представление задач для модульных ивс в операторном пространстве
- •4.3. Построение базиса в операторном -пространстве для ивс модульного типа
- •4.4. Разработка эффективного машинного алгоритма выбора базиса в операторном -пространстве
- •4.5. Математическая модель ивс модульного типа на основе t -алгоритмов
- •4.6. Примеры, иллюстрирующие работу базовой машины ивс
- •Глава пятая. Анализ и синтез универсальных решающих блоков интегрирующих вычислительных структур (ивс)
- •5.1. Синтез алгоритма универсального решающего блока интегрирующих вычислительных структур
- •5.2. Разработка алгоритма автоматического масштабирования переменных и приращений в универсальном решающем блока ивс
- •5.3. Построение структурных схем универсальных решающих блоков ивс с автоматическим масштабированием переменных
- •5.4 Разработка алгоритма универсального решающего блока, основанного на принципе цифрового слежения и синтез его структурной схемы
- •5.5.Проектирование решающей части интегрирующих вычислительных структур
- •Глава шестая. Проектирование функциональных модулей интегрирующих вычислительных структур
- •6.1. Исследование принципов построения коммутационных систем модульных интегрирующих вычислительных структур
- •6.2. Разработка волновых каскадных коммутирующих сред для интегрирующих вычислительных структур
- •6.3. Принципы построения цифровых решающих и функциональных модулей ивс
- •6.4.Определение параметров функциональных модулей интегрирующих вычислительных структур
- •6.5.Матричное представление функциональных модулей интегрирующих вычислительных структур
- •6.6. Построение специализированного микропроцессора интегрирующей вычислительной структуры
- •Глава седьмая. Система математического обеспечения модульных интегрирующих вычислительных структур
- •7.1. Структура системы математического обеспечения модульных ивс
- •7.2. Разработка языка структурного программирования высокого уровня для модульных ивс
- •7.3.Разработка транслятора, загрузчика и диспетчера системы программного обеспечения модульных ивс
- •7.4. Построение пакета системных программ для программного обеспечения ивс
- •7.5. Организация вычислительных процессов в модульных ивс
- •Глава восьмая. Однородные цифровые интегрирующие структуры
- •8.1. Цифровые интеграторы для оцис
- •8.2. Интерполяционные и экстраполяционные, одноразрядные и многоразрядные однородные цифровые интегрирующие структуры
- •Глава девятая. Примеры проектирования проблемно- ориентированных мвс на интегрирующих структурах
- •9.1. Моделирующий вычислительный комплекс для исследования систем инерциальной навигации на основе модульных ивс
- •9.2. Применение интегрирующих вычислительных структур для реализации систем управления манипуляционными устройствами автономных роботов
- •9.3. Специализированная вычислительная система для решения задач управления с прогнозированием
- •9.4. Логико-интегрирующие вычислительные структуры
- •Приложение 1 Примерный перечень
- •Министерство образования и науки российской федерации
- •Курс «Технология программирования»
- •Практические задания
- •Курс «Интерфейсы периферийных устройств»
- •Курс «Конструкторско-технологическое обеспечение производства эвм»
- •Библиографический список
- •Оглавление
7.2. Разработка языка структурного программирования высокого уровня для модульных ивс
Для модульных ИВС предлагается использовать язык структурного программирования высокого уровня, разработка которого опирается на основные идеи Э.В. Дейкстры [68, 115], а также на работу К. Бома и Г. Джакопини [113].
В
данных работах авторами доказана теорема
о возможности представления управляющей
логики любой программы с помощью трех
базовых конструкций: простой
последовательности
,
структуры типа
и
типа
.
В работе [115] показано реальное использование
идей при построении мультипрограммной
системыTHE.
Входной язык программирования ИВС должен содержать в своей основе арифметические и рекуррентные соотношения, некоторый набор базовых конструкций управляющей логики и иметь возможность описывать системы обыкновенных дифференциальных уравнений, задавать различные сложные функциональные зависимости, алгебраические и интегральные уравнения - вообще разнообразные негипертрансцендентные математические зависимости, которые могут быть сведены к системе обыкновенных дифференциальных уравнений.
При
построении языка, а также компиляторы
с
него
и программы загрузки, учитывалось, что
в конечном итоге, задачи, решаемые на
ИВС,
представляются
с
помощью некоторых Τ-операторов,
которые вводятся как отображения вида
.
Кроме
того, многозначность отображения
используется при загрузке программы,
когда для зависимости f
нет соответствующего оператора, но
для другого оператора зависимостиq.
Таким образом, воплотив данные идеи в ЯП ИВС, можно рассматривать отображение задач в них безотносительно к внутреннему содержанию ФМ ИВС, реализующих набор базисных операторов. Это, в свою очередь, дает возможность на внешнем уровне при программировании использовать естественную математическую запись исходной задачи.
Грамматику
ЯП ИВС зададим в форме четверки
,
где
VT
множество
терминальных символов языка (буквы от
А
до
Ζ,
цифры от 0 до 9, пробел, операции *, +, -, /,
#);
множество синтаксических классов
(нетерминалов); S
-
множество подстановок;
начальный символ (аксиома). Правила
подстановок S
имеют вид, заданный в форме Бэкуса:
<программа>:: = <список операторов>
<список операторов> :: = <оператор> | <список операторов> <оператор>
<оператор> :: = <метка> <пробел> <оператор> | <оператор присваивания> | <управляющий оператор>
<оператор присваивания> :: = <переменная> <операция отождаствле-ния> <выражение>
<управляющий оператор> :: = IF (<выражение>) <метка>,
<метка > <метка>
<выражение> :: = <терм> | - <терм> | <выражение> <операция типа сложения> <терм>
<терм> :: = <множ> | <терм> <операция типа умножения>
<множ>
<множ> :: = <первичное> | <множ> <операция типа возведения в степень> <первичное>
<первичное> :: = (<выражение>) | < константа> | < функция> | |<переменная>
<переменная> ::= <идентификатор> | <индексный идентификатор>
<функция> ::= <имя функции> (< выражение>) | INT
(<идентификатор>, < идентификатор>, < выражение>
<выражение>)
<имя функции> ::= < буква > { <буква> | <цифра> } *15
<операция отождествления> ::=
<операция типа сложения> ::= + | -
<операция типа умножения> ::= * | /
<операция типа возведения в степень>:; = #
<идентификатор> ::= <буква> { <буква> | <цифра> *15 - IF
<индексный идентификатор> :: = <буква> { <буква> | <цифра>} *15
(<целое> | <переменная >)
<константа> ::= <целое> | < вещественное>
<вещественное> :: = <целое> <целое>}
<целое> ::= <цифра> { < цифра> } *15
<метка>::= < цифра> { < цифра>} *4
<пробел> ;:= _
<буква> ::= А | В | ...| Z
<цифра> ::= 0 | 1 | 2 | ... | 9
При построении транслятора с заданного введенной грамматикой языка функции синтаксического анализа исходкой программы, как наиболее веяной и сложной части, а также других этапов трансляции можно осуществить как программными, так и аппаратными средствами. Основным методом обоих решений, лежащим в основе построения транслятора, является синтез магазинного автомата (детерминированного - ДМА, или недетерминированного - НДМА), представляющего данный язык. С одной стороны, это позволит однозначно установить тип языка (грамматике), с другой – оценить затраты на схемную реализацию транслятора с него с практической точки зрения.
Следуя работе [8], для данной грамматики G вводим обозначения, после чего можно будет записать для G уравнения в языках, исходя из бэкусовской записи грамматических форм:
S – нетерминал <список операторов>;
О – -"- <оператор> ;
Μ – -"- <метка > ;
- -"- <управляющий оператор >;
-
-"- <оператор присваивания >;
V - -"- <переменная>;
С - -"- <операция отношения>;
В - -"- <выражение>;
T - -"- <терм > ;
- -"-
<операция типа сложения > ;
L - -"- <множимое > ;
- -"-
<операция типа умножения >;
W - -"- < первичное > ;
- -"-
<операция возведения в степень>;
- -"-
<константа> ;
F - -"- <функция >;
I - -"- <идентификатор> ;
-
нетерминал
< индексный идентификатор>
;
N - -"- <имя функции> ;
R - -"- <буква>;
А - -"- <цифра> ;
P - -"- <целое >;
-"-
<вещественное>.
Входным алфавитом МА является множество символов:
открывающая скобка "(" ;
закрывающая скобка ")" ;
запятая
"," ;
унарный минус "-";
знак равенства "=";
знак плюс "+";
знак
минус "-",:
знак
умножения "*";
знак деления "/";
знак возведения в степень "#";
точка ".";
пробел
"",
а также буквы латинского алфавита А, B, С,..., Ζ и цифры от 0 до 9, кроме того, сюда же относится зарезервированный идентификатор if - "если", и идентификатор int - "интеграл".
После введенных обозначений система уравнений в языках для G запишется в следующем виде:
Далее все вхождения нетерминалов, обозначенных буквами, в правые части индивидуализируются с помощью индексации. Это приводит к следующим выражениям:
После индексации те уравнения, в которых имеется два и более дизъюнктивных членов, заключаются в скобки, после чего все символы уравнений разделяются черточками. Следующим шагом является разметка мест в уравнениях, производящаяся по известной методике [8] . После разметки мест получаются следующие выражения:
Теперь все введенные места отождествляются с состояниями синтезируемого автомата. Внутренний алфавит МА составляют все буквенные обозначения в левых частях выражений; входной алфавит остался без изменений.
На следующем этапе проводится построение таблицы МА:
1) в местах {5, 8, II, 12, 14, 16, 18, 21, 34, 37, 43, 45, 41, 46, 48, 50, 52, 54, 57, 59, 61, 67, 69, 71, 73, 75, 77, 81, 89, 91} МА считывает букву входного алфавита из входного магазина и переходит в состояние, которое занумеровано непосредственно справа от считанной буквы;
2) в местах {0, 2, 3, 6, 7, 9, 13, 15, 17, 19, 21, 23, 24, 25, 26, 28, 29, 30, 32, 33, 36, 34, 38, 41, 44, 46, 48, 50, 52, 54, 55, 60, 62, 63, 64, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 86, 87, 88} MA производит запись данной буквы внутреннего алфавита во внутренний магазин и переходит к самому левому начальному месту в выражении для данной буквы (к правилу для данного нетерминала) ;
3) в конечных местах {l, 4, 10, 20, 22, 27, 31, 35, 37, 39, 53, 55, 57, 59, 61, 65, 78, 82, 84, 88, 91, 93 } ΜΑ считывает верхнюю букву внутреннего магазина и переходит к месту, расположенному непосредственно справа от считанной буквы.
При пустом внутреннем магазине МА останавливается.
Используя данную методику, можно построить таблицу МA. В качестве начального состояния выбирается состояние "О", в качестве заключительного "1", так как МА должен представлять язык G(G = S).·
Исходя из изложенного, можно сделать следующие выводы:
1) данный язык является контекстно-свободным языком с простой структурой;
2) данный язык представим МА с числом внутренних состояний Q 93, что показывает практическую реализуемость транслятора с него без значительных аппаратурных затрат.
Ниже приводится методика подготовки и программирования задач для решения на ИВС.
Задачи, программируемые для решения на ИВС, должны быть сформулированы математически, а математические зависимости, описывающие решаемую задачу, должны быть представлены в канонической форме. Системы уравнений должны быть разрешены относительно искомых переменных, а дифференциальные уравнения должны быть представлены в интегральной форме. Исходная числовая информация записывается в программе с помощью оператора присваивания.