Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Логическое отношение алгоритмов может быть сформулировано на основе неформального описания (например, блок-схемы алгоритмов, граф-схемы). Блок-схемы используются для описания «предшествующих» алгоритмов («вычислить - х» алгоритмов). Описание состоит из последовательности шагов – операторов и инструкции. Предписывающие алгоритмы исполняются (интерпретируются) неймановской машиной и является программой: предикатный символ ® Qi(t1,... tn).
В программе выбираются контрольные точки (узлы), которые ставят в соответствие предикаты, обозначающие состояние программы в i-том узле.
ti – термы, обозначение состояния (значения) i-той переменной.
Порядок записи уравнения:
1) если i и j – это вход и выход операторной вершины (смотри рисунок S – оператор с инструкцией на выполнение преобразования). Переход из i в j – это дуга, которая определяется формулой: Qi(t1t2... tn) ® Qj(l1l2...ln)
где lj = f(f1... fn)
2) если i и j – вход и выход условной вершины. Тогда дуге «i ® j» ставится в соответствие формула с контрольным предикатом:
Qi & P ® Qi, P = P(t1... tn)
3) начало программы Q0 - Æ - местный предикат - высказывание
4) конец программы Qk.
Пример: программа «умножение» х,у – целые
x – множимое; у – множитель
x значит «ввод х»; z ® «вывод z»
Контрольные формулы вводятся:
Q3 (x,y,z) & (z > 0) ® Q5 (x,y - 1,z + x) & (z > x)
Q3 (x,y,z) & (z = 0) ® Q5 (x,y - 1, x)
Пример задачи:
1 a "x"y Q6 (x,y) & (y = 0)
- если эта формула выводится, то программа завершена.
2. Интерпретация формул для конкретных чисел данных обозначает исполнение алгоритма.
Интерпретация включает:
1) подстановка значений переменных после ввода данных.
2) интерпретация формул после подстановки значений переменных.
3) запуск итерационного процесса (Q1=T) который выполняется с формулами пока Fi+1 не равно Fi.
Формулы можно упорядочить для ускорения итерации. Формулы можно интерпретировать параллельно – это логическое программирование – запись алгоритмов в виде формул и исполнение алгоритмов осуществляется машиной, интерпретирующей формулу.
3. Символическое тестирование – при неполностью определенных данных с целью тестирования алгоритма, в результате интерпретации при частично определенных данных будет получена формула, которая совпадает с исходным определением метода вычисления.
Задаемся множимым х = а; и множителем у = 3.
Интерпретация: подстановки
Q0®Q1(x = a, y = 3, z = Æ)®
®Q2(a, 3, Æ)®Q3(a, 3, Æ)®
®Q5(a, y = 2, z = z + a)®
®Q2(a, 3, a)®
®Q5(a, y = 1, z = a + a)®
®Q2(a, 1, a + a)®
®Q5(a, y = Æ, z = a + a + a)
®Q2(a, Æ, a + a + a)
®Q4(a, Æ, a + a + a)
®Qk(a, Æ) - конец программы.
Подтверждается:
4. Частичные вычисления при ограниченных условиях. При интерпретации сохраняется только те формулы, которые применимы при ограниченных данных. Программа адаптируется для конкретных условий работы.
5. В традиционном программирований в неймановской машине используется контрольные формулы, в которых проверяется свойства данных в конкретных точках программы. Практически во всех процедурных языках программирования используется оператор assert(формула), сохраняется признак (Æ и 1), по которым можно судить о наличии ошибки.
Дата публикования: 2014-11-28; Прочитано: 221 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!