Определение рекурсивной схемы



Рекурсивная схема (РС) так же, как СПП определяется в некотором базисе. Полный базис РС, как и базис ССП, включает четыре счетных множества символов: переменные, функциональные символы, предикатные символы, специальные символы.

Множества переменных и предикатных символов ничем не отличаются от ССП. Множество специальных символов - другое, а именно: { if, то, else, (, ),, }. Отличие множества функциональных символов состоит в том, что оно разбито на два непересекающиеся подмножества: множество базовых функциональных символов и множество определяемых функциональных символов (обозначаются для отличия прописными буквами, например, F (1), G (2), и т.д.).

В базисе РС нет множества операторов, вместо него – множество логических выражений и множество термов.

Простые термы определяются так же, как термы–выражения в СПП. Среди простых термов выделим базовые термы, которые не содержат определяемых функциональных символов, а также вызовы-термы вида F (n)(t1,t2,…tn), где t1,t2,…t n - простые термы, F (n) - определяемый функциональный символ.

Логическое выражение - слово вида

p (n)(t1,t2,…tn),

где p (n) - предикатный символ, а t1,t2,…tn - базовые термы.

Терм - это простой терм, или условный терм, т.е. слово вида

if p then t1 else t2,

где p - логическое выражение, t1, t2 - простые термы, называемые левой и соответственно правой альтернативой.

Примеры термов:

§ f (x, g (x, y)); h (h (a)) - базовые термы;

§ f (F (x), g (x, F (y))); H (H (a)) - простые термы;

§ F (x); H (H (a)) - вызовы;

§ if p (x, y) then h (h (a)) else F (x) - условный терм.

Используется бесскобочная форма представления:

if pxy then hha else Fx - условный терм.

Расширим в базисе В множество специальных символов символом "=".

Рекурсивным уравнением, или определением функции F назовем слово вида

F ( n )(x1,x2,…xn) = t(x1,x2,…xn),

где t(x1,x2,…xn) - терм, содержащий переменные, называемые формальными параметрами функции F.

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

Примеры РС:

RS1: F (x); F (x) = if p (x) then a else g (x, F (h (x))).

RS2: A (b, c); A (x, y) = if p (x) then f (x) else B (x, y);

B (x, y) = if p (y) then A (g (x), a) else C (x, y);

C (x, y) = A (g (x), A (x, g (y))).

RS3:F (x); F (x) = if p (x) then x else f (F (g (x)), F (h (x))).

Пара (RS, I), где RS - PC в базисе В, а I - интерпретация этого базиса, называется рекурсивной программой. При этом заметим, что определяемые функциональные символы не интерпретируются.

Протоколы выполнения программы (RS1, I1) и (RS1, I2), где I1 и I2 - интерпретации из п. 1.2.3 (рисунок 1.3, б, в), выглядят следующим образом:

№п/п Значение терма для (RS1, I1) Значение терма для (RS1, I2)
  F (4) F (a,b,c)
  4* F (3) CONSCAR (abc, F (b,c))
  4*(3* F (2)) CONSCAR (abc, CONSCAR (bc, F (c)))
  4*(3*(2* F (1))) CONSCAR (abc, CONSCAR (bc, CONSCAR (c, F (е))))
  4*(3*(2*(1* F (0)))) CONSCAR (abc,CONSCAR (bc,CONSCAR (c, е))) = abc
  4*(3*(2*(1*1)))=24  

 

 


Дата добавления: 2015-12-20; просмотров: 22; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!