Запишем необходимые команды, для обсчета функции f(x, y)=x+y. Имеем:
- J(1,2,5)
- S(0)
- S(2)
- J(0,0,1)
Теперь покажем, как работает программа на конкретном примере. Следовательно, имеем:
f(x, y)=x+y:
f(2,3)=2+3
Начальные условия записываем в регистры R0 и R1. Шаг за шагом выполняем необходимые команды, пока машина не остановится.
R0 | R1 | R2 | R3 |
2 | 3 | 0 | 0 |
3 | 3 | 0 | 0 |
3 | 3 | 1 | 0 |
4 | 3 | 1 | 0 |
4 | 3 | 2 | 0 |
5 | 3 | 2 | 0 |
5 | 3 | 3 | 0 |
Результ считываем из регистра R0. Следовательно, имеем, что 2+3=5
МНР-программа для функции f(x, y)=x-y:
- J(0,1,5)
- S(1)
- S(2)
- J(0,0,1)
- Т(2,0)
Аналогично, к предыдущему примеру имеем: f(x, y)=x-y:
f(5,2)=5-2
R0 | R1 | R2 | R3 |
5 | 2 | 0 | 0 |
5 | 3 | 0 | 0 |
5 | 3 | 1 | 0 |
5 | 4 | 1 | 0 |
5 | 4 | 2 | 0 |
5 | 5 | 2 | 0 |
5 | 5 | 3 | 0 |
3 | 5 | 3 | 0 |
Для следующих примеров, действия аналогичны.
МНР-программа для функции f(x)=2x:
- T(0,1)
- J(1,2,6)
- S(0)
- S(2)
- J(0,0,2)
- J(0,2,5)
- J(1,2,6)
- S(2)
- J(0,0,1)
- Т(1,0)
МНР-программа для функции f(x)=x/2:
- J(0,2,6)
- S(2)
- S(2)
- S(1)
- J(0,0,1)
- Т(1,0)
МНР-программа для предиката "x=y":
- J(0,1,3)
- J(0,0,4)
- S(2)
- T(2,0)
МНР-программа для функции f(x)=[x/2]:
- J(0,2,7)
- S(2)
- J(0,2,7)
- S(2)
- S(1)
- J(0,0,1)
- Т(1,0)
МНР-программа для функции f(x)=sg(x):
- J(0,1,4)
- Z(0)
- S(0)
МНР-программа для функции f(x, y)=x⋅y,
- J(3,1,9)
- J(0,2,6)
- S(2)
- S(4)
- J(0,0,2)
- Z(2)
- S(3)
- J(0,0,1)
- Т(4,0)