Курсовик (вар 1) / PART3
.DOC
|
wr ( LWr ) ┴ |
writeln ( length ( id ) , id ) end . |
Выброс x 2 |
2, 7, 27 |
||
|
LWr ) ┴ |
length ( id ) , id ) end . |
Вызов PEx(3) |
2, 7, 27 |
||
Стек вызовов: S(0), OpL(4), PEx(3) ДМП-процессор PEx(3) |
||||||
|
PEx ┴ |
length ( id ) , id ) end . |
Замена по правилу 1: (PEx Trm PE1) |
|
||
|
Trm PE1┴ |
length ( id ) , id ) end . |
Замена по правилу 6: (Trm Mul Tr1) |
1 |
||
|
Mul Tr1 PE1┴ |
length ( id ) , id ) end . |
Замена по правилу 17: (Mul len ( vec ) ) |
1,6 |
||
|
len ( vec ) Tr1 PE1┴ |
length ( id ) , id ) end . |
Выброс x 2 |
1,6, 17 |
||
|
vec ) Tr1 PE1┴ |
id ) , id ) end . |
Вызов Vec(0) |
1,6, 17 |
||
Стек вызовов: S(0), OpL(4), PEx(3), Vec(0) ДМП-процессор Vec(0) |
||||||
|
Vec ┴ |
id ) , id ) end . |
Замена по правилу 1: (Vec id ) |
|
||
|
id ┴ |
id ) , id ) end . |
Выброс |
1 |
||
|
┴ |
) , id ) end . |
Возврат в PEx(3) |
{L(Vec(0))} = 1 |
||
Стек вызовов: S(0), OpL(4), PEx(3) ДМП-процессор PEx(3) |
||||||
|
vec ) Tr1 PE1┴ |
vec {из Vec(0)} ) , id ) end . |
Выброс x 2 |
1,6, 17, {L(Vec(0))} |
||
|
Tr1 PE1┴ |
, id ) end . |
Замена по правилу 8: (Tr1 ) |
1,6, 17, {L(Vec(0))} |
||
|
PE1┴ |
, id ) end . |
Замена по правилу 3: (PE1 ) |
1,6, 17, {L(Vec(0))}, 8 |
||
|
┴ |
, id ) end . |
Возврат в OpL(4) |
{L(PEx(3))} = 1,6, 17, {L(Vec(0))}, 8, 3 |
||
Стек вызовов: S(0), OpL(4) ДМП-процессор OpL(4) |
||||||
|
LWr ) ┴ |
pex {из PEx(3)} , id ) end . |
Замена по правилу 28: (LWr pex Wr1 ) |
2, 7, 27, {L(PEx(3))} |
||
|
pex Wr1 ) ┴ |
pex {из PEx(3)} , id ) end . |
Выброс |
2, 7, 27, {L(PEx(3))}, 28 |
||
|
Wr1 ) ┴ |
, id ) end . |
Замена по правилу 29: (Wr1 , LWr ) |
2, 7, 27, {L(PEx(3))}, 28 |
||
|
, LWr ) ┴ |
, id ) end . |
Выброс |
2, 7, 27, {L(PEx(3))}, 28, 29 |
||
|
LWr ) ┴ |
id ) end . |
Вызов PEx(4) |
2, 7, 27, {L(PEx(3))}, 28, 29 |
||
Стек вызовов: S(0), OpL(4), PEx(4) ДМП-процессор PEx(4) |
||||||
|
PEx ┴ |
id ) end . |
|
|
||
|
Работа ДМП-процессора PEx(4) |
|||||
|
┴ |
) end . |
Допуск Возврат в PEx(4) |
{L(PEx(4))} = … |
||
Стек вызовов: S(0), OpL(4) ДМП-процессор OpL(4) |
||||||
|
LWr ) ┴ |
pex {из PEx(4)} ) end . |
Замена по правилу 28: (LWr pex Wr1 ) |
2, 7, 27, {L(PEx(3))}, 28, 29, {L(PEx(4))} |
||
|
pex Wr1) ┴ |
pex {из PEx(4)} ) end . |
Выброс |
2, 7, 27, {L(PEx(3))}, 28, 29, {L(PEx(4))}, 28 |
||
|
Wr1) ┴ |
) end . |
Замена по правилу 30: (Wr1 ) |
2, 7, 27, {L(PEx(3))}, 28, 29, {L(PEx(4))}, 28 |
||
|
) ┴ |
) end . |
Выброс |
2, 7, 27, {L(PEx(3))}, 28, 29, {L(PEx(4))}, 28, 30 |
||
|
┴ |
end . |
Допуск Возврат в S(0) |
{L(OpL(4))} = 2, 7, 27, {L(PEx(3))}, 28, 29, {L(PEx(4))}, 28, 30 |
Стек вызовов: S(0) ДМП-процессор S(0) |
|||
┴ program id ; def begin opl ; opl ; opl |
end . |
Перенос |
{R(Def(0))}, {L(OpL(0))}, {L(OpL(1))}, {L(OpL(4))}, |
┴ program id ; def begin opl ; opl ; opl |
end . |
Свертка по правилу 5 (Op1 opl) |
{R(Def(0))}, {L(OpL(0))}, {L(OpL(1))}, {L(OpL(4))}, |
┴ program id ; def begin opl ; opl ; Op1 |
end . |
Свертка по правилу 6 (Op1 opl ; Op1) |
{R(Def(0))}, {L(OpL(0))}, {L(OpL(1))}, {L(OpL(4))}, 5 |
┴ program id ; def begin opl ; Op1 |
end . |
Свертка по правилу 6 (Op1 opl ; Op1) |
{R(Def(0))}, {L(OpL(0))}, {L(OpL(1))}, {L(OpL(4))}, 5, 6 |
┴ program id ; def begin Op1 |
end . |
Свертка по правилу 4 (Ops Op1) |
{R(Def(0))}, {L(OpL(0))}, {L(OpL(1))}, {L(OpL(4))}, 5, 6, 6 |
┴ program id ; def begin Ops |
end . |
Перенос x 2 |
{R(Def(0))}, {L(OpL(0))}, {L(OpL(1))}, {L(OpL(4))}, 5, 6, 6, 4 |
┴ program id ; def begin Ops end . |
|
Свертка по правилу 3 (BOp beg Ops end .) |
{R(Def(0))}, {L(OpL(0))}, {L(OpL(1))}, {L(OpL(4))}, 5, 6, 6, 4 |
┴ program id ; def BOp |
|
Свертка по правилу 1 (S pro id ; def BOp) |
{R(Def(0))}, {L(OpL(0))}, {L(OpL(1))}, {L(OpL(4))}, 5, 6, 6, 4, 3 |
┴ S |
|
Допуск Завершение разбора |
{R(Def(0))}, {L(OpL(0))}, {L(OpL(1))}, {L(OpL(4))}, 5, 6, 6, 4, 3, 1 |
Результат разбора
Разборы подцепочек |
Выводы |
|||
{R(Def(0))} {L(OpL(0))}{L(OpL(1))} {L(OpL(4))} 5, 6, 6, 4, 3, 1 |
S (1) pro id ; def BOp (3) pro id ; def beg Ops end . (4) pro id ; def beg Op1 end. (6) pro id ; def beg opl ; Op1 end. (6) pro id ; def beg opl ; opl ; Op1 end . (5) pro id ; def beg opl ; opl ; opl end. |
|||
|
{R(Def(0))} = {L(Cid(0))}, {L(Cid(1))}, 23, 20, 10, 29, 30, 28, {R(Typ(0))} 29, 28 {R(Typ(1))} 26, 27, 16, 15, 11, 8, 3,1 |
Def (1) Df (3) Bl1 (8) DfC Bl2 (11) DfC Bl3 (15) DfC DfV (16) DfC var Vrs (27) DfC var LVr : Typ ; Vrs (26) DfC var LVr : Typ ; LVr : Typ (28) DfC var LVr : Typ ; LV1 : Typ (29) DfC var LVr : Typ ; id : Typ (28) DfC var LV1 : Typ ; id : Typ (30) DfC var id, LV1 : Typ ; id : Typ (29) DfC var id, id : Typ ; id : Typ (10) con LCn var id, id : Typ ; id : Typ (20) con id = Cns; var id, id : Typ ; id : Typ (23) con id = # cid, cid # ; var id, id : Typ ; id : Typ |
||
|
{L(Cid(0))} = 3, 5 |
|
||
|
{L(Cid(1))} = 2, 4 |
|
||
|
{R(Typ(0))} = 3 |
|
||
|
{R(Typ(1))} = 8 |
|
||
|
{L(OpL(0))} = 2, 5, 16, 18, {L(PEx(0))}, 19 |
|
||
|
{L(PEx(0))} = 1, 6 {L(Cid(2))} 14, 8 |
|
||
|
{L(Cid(2))} = 2, 5 |
|
||
|
{L(OpL(1))} = 2, 8, 11, {L(Ex(0))}, {L(OIf(0))},2 |
|
||
|
{L(Ex(0))} = {L(PEx(1))}, 1, 2, {L(PEx(2))} |
|
||
|
{L(PEx(1))} = … |
|
||
|
{L(PEx(2))} = … |
|
||
|
{L(OIf(0))} = 1, {L(Ex(1))}, {L(OpL(2))}, 2, {L(OpL(2))} |
|
||
|
{L(Ex(1))} = … |
|
||
|
{L(OpL(2))} = … |
|
||
|
{L(OpL(3))} = … |
|
||
|
{L(OpL(4))} = 2, 7, 27, {L(PEx(3))}, 28, 29, {L(PEx(4))}, 28, 30 |
OpL (2) Op (7) OWr (27) wr ( LWr ) (28) wr ( pex Wr1 ) (29) wr ( pex , LWr ) (28) wr (pex , pex Wr1) (28) wr (pex , pex) |
||
|
{L(PEx(3))} = 1,6, 17, {L(Vec(0))}, 8, 3 |
|
||
|
{L(Vec(0))} = 1 |
|
||
|
{L(PEx(4))} = … |
|