Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СборкаМЛ_05_2008.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
1.37 Mб
Скачать

5.3 Алгебра программ

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

Элементарными вычисляющими программами будем называть программы вида

Error: Reference source not found

обозначать их будем соответственно символами r, l, s, a, где a Ã.

Программы, у которых множество выходов разбито на два непустых подмножества (подмножество да–выходов и подмножество нет–выходов) назовем бинарными распознающими программами.

Элементарными распознающими программами будем считать программы вида

Error: Reference source not found

обозначать такую программу будем через <a>.

Правила композиции. Введем несколько правил, которые позволят нам из уже построенных программ строить более сложные.

  1. Если T1T2, …., Tk – программы, то выражение [T1T2, …., Tk] обозначает программу, которая получена следующим образом. Все выходы программы Ti соединены дугой с входом программы Ti+1 (i = 1,2,…,k-1), каждая такая дуга помечена буквами из Ã, которые не использованы на других дугах, выходящих из рассматриваемой выходной вершины (в дальнейшем при соединении выходов одной программы с входом другой будем пользоваться этим правилом). Входом в полученную программу является вход программы T1, а выходами – выходы программ Tk. Таким образом, программа [T1T2, …., Tk] предписывает последовательное выполнение программ T1T2, …., Tk.

  2. Если Р – бинарная распознающая программа, а Т – произвольная, то выражение

(если P) T

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

Error: Reference source not found

  1. Если дан набор охраняемых программ, вида: (если Pi)Ti, (i = 1, 2 …., k) то выражение вида

(если P1)T1 … (если Pk)Tk

обозначает программу, полученную следующим образом. да-выходы программы Pi соединяются с входом Ti (i = 1, 2, …., k). нет–выходы программы Pi соединяются с входом Pi+1. Входом в полученную программу является вход в программу Pi, а выходами – выходы программы T1T2, …., Tk и нет-выходы программы Pk.

Error: Reference source not found

  1. Если Р – бинарная распознающая программа, а Т – любая, то выражение

(пока P)T

обозначает программу, полученную следующим образом. Да-выходы программы Р соединяются с входом программы Т. Все выходы программы Т соединены с входом в Р. Входом в полученную программу является вход в Р, а выходами нет-выходы программы Р.

Error: Reference source not found

  1. Если Р – бинарная распознающая программа, а Т – любая, то выражение

T(до P)

обозначает программу, полученную соединением нет-выходов программы Р с входом в Т, а выходов Т – с входом в Р. Входом в полученную программу является вход в Т, а выходами – да-выходы программы Р.

Error: Reference source not found

Сокращения: Программы вида T1 T2Tk будем сокращенно записывать в виде Ti, а программы вида [T1T2, …., Tk] в случае, если T1 T=….= Tk – в виде Tk. В контексте со словами “если”, ”пока”, ”до” угловые скобки в записи элементарного распознающего оператора <a> будем опускать.