2. Регистровые машины
Регистровая машина имеет конечное количество регистров
R1, . . . ,Rn каждый из которых может содержать произвольно
большое натуральное число.
3. Регистровые машины
Регистровая машина имеет конечное количество регистров
R1, . . . ,Rn каждый из которых может содержать произвольно
большое натуральное число. Машина выполняет программу
состоящую из конечного числа инструкций снабженных
метками S1, . . . ,Sm. Когда машина выполняет инструкцию с
меткой Sk, мы говорим, что машина находится в состоянии Sk.
4. Регистровые машины
Регистровая машина имеет конечное количество регистров
R1, . . . ,Rn каждый из которых может содержать произвольно
большое натуральное число. Машина выполняет программу
состоящую из конечного числа инструкций снабженных
метками S1, . . . ,Sm. Когда машина выполняет инструкцию с
меткой Sk, мы говорим, что машина находится в состоянии Sk.
Инструкции бывают трёх типов:
5. Регистровые машины
Регистровая машина имеет конечное количество регистров
R1, . . . ,Rn каждый из которых может содержать произвольно
большое натуральное число. Машина выполняет программу
состоящую из конечного числа инструкций снабженных
метками S1, . . . ,Sm. Когда машина выполняет инструкцию с
меткой Sk, мы говорим, что машина находится в состоянии Sk.
Инструкции бывают трёх типов:
I. Sk: R + +;Si
6. Регистровые машины
Регистровая машина имеет конечное количество регистров
R1, . . . ,Rn каждый из которых может содержать произвольно
большое натуральное число. Машина выполняет программу
состоящую из конечного числа инструкций снабженных
метками S1, . . . ,Sm. Когда машина выполняет инструкцию с
меткой Sk, мы говорим, что машина находится в состоянии Sk.
Инструкции бывают трёх типов:
I. Sk: R + +;Si
II. Sk: R − −; Si;Sj
7. Регистровые машины
Регистровая машина имеет конечное количество регистров
R1, . . . ,Rn каждый из которых может содержать произвольно
большое натуральное число. Машина выполняет программу
состоящую из конечного числа инструкций снабженных
метками S1, . . . ,Sm. Когда машина выполняет инструкцию с
меткой Sk, мы говорим, что машина находится в состоянии Sk.
Инструкции бывают трёх типов:
I. Sk: R + +;Si
II. Sk: R − −; Si;Sj
III. Sk: STOP
8. Регистровые машины
Регистровая машина имеет конечное количество регистров
R1, . . . ,Rn каждый из которых может содержать произвольно
большое натуральное число. Машина выполняет программу
состоящую из конечного числа инструкций снабженных
метками S1, . . . ,Sm. Когда машина выполняет инструкцию с
меткой Sk, мы говорим, что машина находится в состоянии Sk.
Инструкции бывают трёх типов:
I. Sk: R + +;Si
II. Sk: R − −; Si;Sj
III. Sk: STOP
Lambek [1961], Melzak [1961], Minsky [1961], Minsky [1967],
Shepherdson и Sturgis [1963]
9. Протокол
q ... t +1 t ... 0
S1 s1,q ... s1,t+1 s1,t ... s1,0
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
Sk sk,q ... sk,t+1 sk,t ... sk,0
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
Sm sm,q ... sm,t+1 sm,t ... sm,0
1, если на шаге t машина была в состоянии k
sk,t =
0 в противном случае
12. Новые значения регистров
+ −
r ,t+1 =r ,t + sk,t − z ,t sk,t
+
где -суммирование ведется по всем инструкциям вида
Sk : R + +; Si,
−
а -суммирование – по всем инструкциям вида
Sk : R − −; Si; Sj.
13. Новые состояния
+ − 0
sd,t+1 = sk,t + z ,t sk,t + (1 − z ,t )sk,t
+
где -суммирование ведется по всем инструкциям вида
Sk : R + +; Sd ,
−
-суммирование ведется по всем инструкциям вида
Sk : R − −; Sd ; Sj,
0
а -суммирование – по всем инструкциям вида
Sk : R − −; Si; Sd .
15. Начальные значения
Всегда начинаем в состоянии S1:
s1,0 = 1,
s2,0 = · · · = sm,0 = 0.
16. Начальные значения
Всегда начинаем в состоянии S1:
s1,0 = 1,
s2,0 = · · · = sm,0 = 0.
(Единственная) входная величина a помещается в регистр R1:
r1,0 = a,
17. Начальные значения
Всегда начинаем в состоянии S1:
s1,0 = 1,
s2,0 = · · · = sm,0 = 0.
(Единственная) входная величина a помещается в регистр R1:
r1,0 = a,
все остальные регистры пусты:
r2,0 = · · · = rn,0 = 0.
18. Остановка
Sm является единственной командой STOP:
sm,q = 1,
s1,q = · · · = sm−1,q = 0.
При остановке все регистры пусты:
r1,q = · · · = rn,q = 0.
22. Протокол
q ... t +1 t ... 0
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
q t
Sk sk,q ... sk,t+1 sk,t ... sk,0 = sk = t=0 sk,t b
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
q t
R r ,q ... r ,t+1 r ,t ... r ,0 =r = t=0 r ,t b
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
Z z ,q ... z ,t+1 z ,t ... z ,0
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
23. Протокол
q ... t +1 t ... 0
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
q t
Sk sk,q ... sk,t+1 sk,t ... sk,0 = sk = t=0 sk,t b
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
q t
R r ,q ... r ,t+1 r ,t ... r ,0 =r = t=0 r ,t b
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
q t
Z z ,q ... z ,t+1 z ,t ... z ,0 =z = t=0 z ,t b
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
24. Новые значения регистров
q q q
t t
sk = sk,t b r = r ,t b z = z ,t bt
t=0 t=0 t=0
+ −
r ,t+1 = r ,t + sk,t − z ,t sk,t
25. Новые значения регистров
q q q
t t
sk = sk,t b r = r ,t b z = z ,t bt
t=0 t=0 t=0
+ −
r ,t+1 = r ,t + sk,t − z ,t sk,t
26. Новые значения регистров
q q q
t t
sk = sk,t b r = r ,t b z = z ,t bt
t=0 t=0 t=0
+ −
r ,t+1 = r ,t + sk,t − z ,t sk,t
27. Новые значения регистров
q q q
t t
sk = sk,t b r = r ,t b z = z ,t bt
t=0 t=0 t=0
+ −
r ,t+1 = r ,t + sk,t − z ,t sk,t
28. Новые значения регистров
q q q
t t
sk = sk,t b r = r ,t b z = z ,t bt
t=0 t=0 t=0
t+1 + −
r ,t+1 b = r ,t bt+1 + sk,t bt+1 − z ,t sk,t bt+1
29. Новые значения регистров
q q q
t t
sk = sk,t b r = r ,t b z = z ,t bt
t=0 t=0 t=0
q−1 q−1
t+1 + −
r ,t+1 b = r ,t bt+1 + sk,t bt+1 − z ,t sk,t bt+1
t=0 t=0
30. Новые значения регистров
q q q
t t
sk = sk,t b r = r ,t b z = z ,t bt
t=0 t=0 t=0
q−1 q−1
t+1 + −
r ,t+1 b = r ,t bt+1 + sk,t bt+1 − z ,t sk,t bt+1
t=0 t=0
31. Новые значения регистров
q q q
t t
sk = sk,t b r = r ,t b z = z ,t bt
t=0 t=0 t=0
q−1 q−1
t+1 + −
r ,t+1 b = r ,t bt+1 + sk,t bt+1 − z ,t sk,t bt+1
t=0 t=0
+ −
r −r ,0 = br + b sk − b (z ∧ sk )
32. Новые значения регистров
q q q
t t
sk = sk,t b r = r ,t b z = z ,t bt
t=0 t=0 t=0
q−1 q−1
t+1 + −
r ,t+1 b = r ,t bt+1 + sk,t bt+1 − z ,t sk,t bt+1
t=0 t=0
+ −
r −r ,0 = br + b sk − b (z ∧ sk )
+ −
r1 − a = br1 + b sk − b (z ∧ sk )
+ −
r = br + b sk − b (z ∧ sk ), l = 2, . . . , n
33. Новые состояния
q q
t
sk = sk,t b z = z ,t bt
t=0 t=0
sd,t+1 =
+ − 0
= sk,t + z ,t sk,t + (1 − z ,t )sk,t
34. Новые состояния
q q
t
sk = sk,t b z = z ,t bt
t=0 t=0
sd,t+1 =
+ − 0
= sk,t + z ,t sk,t + (1 − z ,t )sk,t
35. Новые состояния
q q
t
sk = sk,t b z = z ,t bt
t=0 t=0
sd,t+1 =
+ − 0
= sk,t + z ,t sk,t + (1 − z ,t )sk,t
36. Новые состояния
q q
t
sk = sk,t b z = z ,t bt
t=0 t=0
sd,t+1 =
+ − 0
= sk,t + z ,t sk,t + (1 − z ,t )sk,t
37. Новые состояния
q q
t
sk = sk,t b z = z ,t bt
t=0 t=0
sd,t+1 bt+1 =
+ − 0
= sk,t bt+1 + z ,t sk,t bt+1 + (1 − z ,t )sk,t bt+1
38. Новые состояния
q q
t
sk = sk,t b z = z ,t bt
t=0 t=0
q−1
sd,t+1 bt+1 =
t=0
q−1
+ − 0
= sk,t bt+1 + z ,t sk,t bt+1 + (1 − z ,t )sk,t bt+1
t=0
39. Новые состояния
q q
t
sk = sk,t b z = z ,t bt
t=0 t=0
q−1
sd,t+1 bt+1 =
t=0
q−1
+ − 0
= sk,t bt+1 + z ,t sk,t bt+1 + (1 − z ,t )sk,t bt+1
t=0
40. Новые состояния
q q
t
sk = sk,t b z = z ,t bt
t=0 t=0
q−1
sd,t+1 bt+1 =
t=0
q−1
+ − 0
= sk,t bt+1 + z ,t sk,t bt+1 + (1 − z ,t )sk,t bt+1
t=0
0 + −
sd − sd,0 = b sk + b (z ∧ sk ) + b ((e − z ) ∧ sk )
41. Новые состояния
q q
t
sk = sk,t b z = z ,t bt
t=0 t=0
q−1
sd,t+1 bt+1 =
t=0
q−1
+ − 0
= sk,t bt+1 + z ,t sk,t bt+1 + (1 − z ,t )sk,t bt+1
t=0
0 + −
sd − sd,0 = b sk + b (z ∧ sk ) + b ((e − z ) ∧ sk )
q−1
bq − 1
e= 1 · bt+1 =
b−1
t=0
42. Индикаторы нуля
0, если r ,t = 0
z ,t =
1 в противном случае
b = 2c+1 r ,t ≤ 2c − 1 = 01 . . . 1
01 . . . 1, если r ,t > 0
2c − 1 + r ,t =
1 ∗ · · · ∗ в противном случае
2c ∧ (2c − 1 + r ,t ) = 2c z ,t
(2c ∧ (2c − 1 + r ,t )) = 2c z ,t
2c f ∧ ((2c − 1)f + r ) = 2c z
43. Индикаторы нуля
0, если r ,t = 0
z ,t =
1 в противном случае
b = 2c+1 r ,t ≤ 2c − 1 = 01 . . . 1
01 . . . 1, если r ,t > 0
2c − 1 + r ,t =
1 ∗ · · · ∗ в противном случае
2c ∧ (2c − 1 + r ,t ) = 2c z ,t
(2c ∧ (2c − 1 + r ,t )) = 2c z ,t
2c f ∧ ((2c − 1)f + r ) = 2c z
44. Индикаторы нуля
0, если r ,t = 0
z ,t =
1 в противном случае
b = 2c+1 r ,t ≤ 2c − 1 = 01 . . . 1
01 . . . 1, если r ,t > 0
2c − 1 + r ,t =
1 ∗ · · · ∗ в противном случае
2c ∧ (2c − 1 + r ,t ) = 2c z ,t
(2c ∧ (2c − 1 + r ,t )) = 2c z ,t
2c f ∧ ((2c − 1)f + r ) = 2c z
45. Индикаторы нуля
0, если r ,t = 0
z ,t =
1 в противном случае
b = 2c+1 r ,t ≤ 2c − 1 = 01 . . . 1
01 . . . 1, если r ,t > 0
2c − 1 + r ,t =
1 ∗ · · · ∗ в противном случае
2c ∧ (2c − 1 + r ,t ) = 2c z ,t
(2c ∧ (2c − 1 + r ,t )) = 2c z ,t
2c f ∧ ((2c − 1)f + r ) = 2c z
46. Индикаторы нуля
0, если r ,t = 0
z ,t =
1 в противном случае
b = 2c+1 r ,t ≤ 2c − 1 = 01 . . . 1
01 . . . 1, если r ,t > 0
2c − 1 + r ,t =
1 ∗ · · · ∗ в противном случае
2c ∧ (2c − 1 + r ,t ) = 2c z ,t
(2c ∧ (2c − 1 + r ,t ))bt = 2c z ,t bt
2c f ∧ ((2c − 1)f + r ) = 2c z
47. Индикаторы нуля
0, если r ,t = 0
z ,t =
1 в противном случае
b = 2c+1 r ,t ≤ 2c − 1 = 01 . . . 1
01 . . . 1, если r ,t > 0
2c − 1 + r ,t =
1 ∗ · · · ∗ в противном случае
2c ∧ (2c − 1 + r ,t ) = 2c z ,t
q q
(2c ∧ (2c − 1 + r ,t ))bt = 2c z ,t bt
t=0 t=0
q
c c c bq+1 − 1
2 f ∧ ((2 − 1)f + r ) = 2 z f = 1 · bt+1 =
b−1
t=0
48. Выбор c
2c > a
b = 2c+1 r ,t ≤ 2c − 1 = 01 . . . 1
01 . . . 1, если r ,t > 0
2c − 1 + r ,t =
1 ∗ · · · ∗ в противном случае
49. Выбор c
2c > a
b = 2c+1 r ,t ≤ 2c − 1 = 01 . . . 1
01 . . . 1, если r ,t > 0
2c − 1 + r ,t =
1 ∗ · · · ∗ в противном случае
2c ∧ r ,t =0
50. Выбор c
2c > a
b = 2c+1 r ,t ≤ 2c − 1 = 01 . . . 1
01 . . . 1, если r ,t > 0
2c − 1 + r ,t =
1 ∗ · · · ∗ в противном случае
2c ∧ r ,t =0
(2c ∧ r ,t ) =0
51. Выбор c
2c > a
b = 2c+1 r ,t ≤ 2c − 1 = 01 . . . 1
01 . . . 1, если r ,t > 0
2c − 1 + r ,t =
1 ∗ · · · ∗ в противном случае
2c ∧ r ,t =0
(2c ∧ r ,t ) =0
52. Выбор c
2c > a
b = 2c+1 r ,t ≤ 2c − 1 = 01 . . . 1
01 . . . 1, если r ,t > 0
2c − 1 + r ,t =
1 ∗ · · · ∗ в противном случае
2c ∧ r ,t =0
(2c ∧ r ,t )bt = 0
53. Выбор c
2c > a
b = 2c+1 r ,t ≤ 2c − 1 = 01 . . . 1
01 . . . 1, если r ,t > 0
2c − 1 + r ,t =
1 ∗ · · · ∗ в противном случае
2c ∧ r ,t =0
q
(2c ∧ r ,t )bt = 0
t=0
q
c bq+1 − 1
2 f ∧r =0 f = 1 · bt+1 =
b−1
t=0
54. Остановка
Sm является единственной командой STOP
Машина останавливается на q-ом шаге если и только если
s m = 2q
55. Протокол
q ... t +1 t ... 0
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
q t
Sk sk,q ... sk,t+1 sk,t ... sk,0 = sk = t=0 sk,t b
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
q t
R r ,q ... r ,t+1 r ,t ... r ,0 =r = t=0 r ,t b
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
q t
Z z ,q ... z ,t+1 z ,t ... z ,0 =z = t=0 z ,t b
.
. .
. .
. .
. .
. .
. .
.
. . . . . . .
56. Выбор c
2c > a
b = 2c+1 r ,t ≤ 2c − 1 = 01 . . . 1
57. Выбор c
2c > a
b = 2c+1 r ,t ≤ 2c − 1 = 01 . . . 1
58. Выбор c
2c > a
b = 2c+1 r ,t ≤ 2c − 1 = 01 . . . 1
2c f ∧ r = 0
59. Выбор c
2c > a
b = 2c+1 r ,t ≤ 2c − 1 = 01 . . . 1
2c f ∧ r = 0
60. Выбор c
2c > a
b = 2c+1 r ,t ≤ 2c − 1 = 01 . . . 1
2c f ∧ r = 0
61. Выбор c
2c > a
b = 2c+1 r ,t ≤ 2c − 1 = 01 . . . 1
q
bq+1 − 1
2c f ∧ r = 0 f = 1 · bt+1 =
b−1
t=0
62. Индикаторы нуля
0, если r ,t = 0
z ,t =
1 в противном случае
b = 2c+1 r ,t ≤ 2c − 1 = 01 . . . 1
01 . . . 1, если r ,t > 0
2c − 1 + r ,t =
1 ∗ · · · ∗ в противном случае
q
c c c bq+1 − 1
2 f ∧ ((2 − 1)f + r ) = 2 z f = 1 · bt+1 =
b−1
t=0
63. Новые состояния
q q
t
sk = sk,t b z = z ,t bt
t=0 t=0
0 + −
sd − sd,0 = b sk + b (z ∧ sk ) + b ((e − z ) ∧ sk )
q−1
bq − 1
e= 1 · bt+1 =
b−1
t=0
64. Новые значения регистров
q q q
t t
sk = sk,t b r = r ,t b z = z ,t bt
t=0 t=0 t=0
+ −
r −r ,0 = br + b sk − b (z ∧ sk )
+ −
r1 − a = br1 + b sk − b (z ∧ sk )
+ −
r = br + b sk − b (z ∧ sk ), l = 2, . . . , n
65. Остановка
Sm является единственной командой STOP
Машина останавливается на q-ом шаге если и только если
s m = 2q