2.1.2. Матричная схема алгоритма
Матричная схема алгоритма (МСА) представляет собой квадратную матрицу, строки которой соответствуют вершинам с выходами, столбцы - вершинам с входами. На пересечениях строк и столбцов записываются функции перехода. Такая функция представляет собой конъюнкцию кодов логических условий (логических переменных), переменная пишется без инверсии, если выход осуществляется по 1, в противном случае переменная пишется c инверсией. Функция перехода, равная 1, соответствует безусловному переходу.
Для указанного выше алгоритма МСА (МСА ННОД) представлена в табл.2
Таблица 2
МСА ННОД |
Y1 |
Y2 |
Y3 |
Y4 |
Y5 |
YK |
Y0, 4 |
__ __ Х1Х2 |
|
|
__ Х1Х2 |
Х1 |
|
Y1 |
|
1 |
|
|
|
|
Y2 |
|
|
1 |
|
|
|
Y3 |
|
|
|
1 |
|
|
Y5 |
|
|
|
|
|
1 |
Для МСА можно сформировать условия корректности:
в МСА не должно быть строки Yk;
в МСА не должно быть столбца Y0;
должны быть столбец Yk и строка Y0;
не должно быть пустых строк и столбцов;
на строке не должно быть одинаковых функций перехода;
на строке не должно быть сочетаний 1 и функций перехода через логические переменные;
в столбце могут быть одинаковые функции перехода;
на строке может быть только одна 1;
дизъюнкция всех функций переходов на строке должна быть равна единице;
10) разные строки с одинаковыми функциями переходов разрешается оформ-
лять в одной строке с указанием всех индексов вершин старта.
По МСА можно упрощать алгоритмы и, следовательно, автоматы.
2.1.3. Функциональная микропрограмма
Функциональная микропрограмма (ФМП) операции представляет собой программу в терминах микроопераций и осведомительных сигналов.
Применительно к Ф - языку [9] ФМП имеет следующую структуру:
заголовок с ключевым словом “АЛГОРИТМ”;
совокупность описаний с ключевыми словами “ВХОДНЫЕ”, ”ВНУТРЕННИЕ”, ”ВЫХОДНЫЕ”;
НАЧАЛО;
тело;
окончание с ключевым словом “КОНЕЦ”.
ФМП алгоритма ННОД можно представить в следующем виде:
АЛГОРИТМ ННОД;
ВХОДНЫЕ А(1:32),С(1:32);
ВНУТРЕННИЕ: А(1:32),С(1:32),НОД(1:32);
ВЫХОДНЫЕ: НОД(1:32);
НАЧАЛО
М3: ПЕРЕЙТИ ЕСЛИ Х1 ТО М1;
ПЕРЕЙТИ ЕСЛИ Х2 ТО М2;
Y1;
Y2;
Y3;
М2: Y4;
ПЕРЕЙТИ М3;
М1: Y5;
КОНЕЦ.
По ФМП, как и по предыдущим способам описания, можно организовать алгоритмический процесс. Пусть А=8, С=6, тогда данный процесс следует отразить следующим образом:
начало;
1 цикл: 8=6, Х1=0, 8>6, X2=1, М2, Y4, А=2, В=6, М3;
2 цикл: 2=6, Х1=0, 2>6, Х2=0, Y1, НОД=2, А=6, В=2, А=4, М3;
3 цикл: 4=2, Х1=0, 4>2, X2=1, M2, Y4, A=2, B=2, M3;
4 цикл: 2=2, Х1=1, М1;
НОД=2;
конец.
Для исходных чисел 8 и 6 действительно наибольший общий делитель равен 2.
Для ФМП существуют и условия корректности:
должен быть заголовок;
данной меткой может быть помечен только один оператор (одна строка);
в операторах перехода могут использоваться одинаковые метки;
строка после оператора безусловного перехода должна иметь метку;
на строке может быть записана только одна микрокоманда или один оператор перехода.
