-
Сокращенная форма.
Входная конструкция: |
|
Последовательность тетрад: |
||||
IF |
|
|
||||
<Выражение> |
|
1 |
Перевод выражения (R – результат) |
|||
THEN |
|
2 |
BF |
L1 |
R |
|
<Операторы> |
|
3 |
Перевод операторов |
|||
|
|
4 |
DEFL |
L1 |
|
|
3. 3. 2. Оператор while.
Входная конструкция: |
|
Последовательность тетрад: |
|||||||
WHILE |
|
|
|||||||
|
|
1 |
DEFL |
L1 |
|
|
|||
<Выражение> |
|
2 |
Перевод выражения (R – результат) |
||||||
DO |
|
3 |
BF |
L2 |
R |
|
|||
<Операторы> |
|
3 |
Перевод операторов |
||||||
|
|
BRL |
L1 |
|
|
||||
|
|
7 |
DEFL |
L2 |
|
|
3. 4. Построение атрибутной транслирующей грамматики.
1) Грамматика G.
1) S -> pro Id ; Def beg Ops end . {вызов Def} {вызов Ops}
2) S -> pro Id ; beg Ops end . {вызов Ops}
3) S -> pro Id ; Def beg end . {вызов Def}
4) S -> pro Id ; beg end .
2) Грамматика G1.
1) Def -> lab DL
2) Def -> con DC
3) Def -> var DV
4) Def -> lab DL con DC
5) Def -> lab DL var DV
6) Def -> con DC var DV
7) Def -> lab DL con DC var DV
8) DL -> Lbs ;
9) Lbs -> Lq {SETLABEL}p
pq
10) Lbs -> Lbs , Lq {SETLABEL}p
pq
11) Lp -> Nat {GETLABEL}q
pq
12) DC -> Iq1 = Cns ; {вызов Cns}q2 {SETCONST}p1 {SETVAL}p2,p3
p1,p2q1
p3q2
13) DC -> DC Iq1 = Cns ; {вызов Cns}q2 {SETCONST}p1 {SETVAL}p2,p3
p1,p2q1
p3q2
14) DV -> Idsq1 : Typq2,q3 ; {SETTYPE}p1,p2,p3
p1q1
p2q2
p3q3
15) DV -> DV Idsq1 : Typq2,q3 ; {SETTYPE}p1,p2,p3
p1q1
p2q2
p3q3
-
Idsp -> Iq
pq
17) Idsp -> Idsq1 , Iq2
pq1+q2
18) Ip -> Id {GETID}q
pq
19) Typp1,p2 -> reareal
p1real
p20
20) Typp1,p2 -> intinteger
p1integer
p20
21) Typp1,p2 -> vecvector [ Id ] {GETID}q2 {GETIDVAL}q3
q3q2
p1vector
p2q3
22) Typp1,p2 -> vecvector [ Nat ] {GETNAT}q
qNewId
p1vector
p2q
3. Грамматика G2.
1) Ops -> Op
2) Ops -> Ops ; Op
3) Op -> Lab OpE
4) Op -> Lab OpC
5) Op -> OpE
6) Op -> OpC
7) Lab -> Nat : {GETNAT}q {DEFL}p
pq
8) OpC -> B Ops E
9) OpC -> beg end {BLBEG} {BLEND}
10) B -> beg {BLBEG}
11) E -> end {BLEND}
12) OpE -> Op1
13) OpE -> Op2
14) OpE -> Op3
15) OpE -> Op4
16) OpE -> Op5
17) OpE -> Op6
18) Op1 -> Iq1 := ArEq2 {:=}p2,p1
p1q1
p2q2
19) Ip -> Id {GETID}q
pq
20) Ip -> CVe {вызов CVe}q
pq
21) Op2 -> rd ( Str )
22) Op2 -> rdl ( Str ) {CR} {LF}
23) Str -> Iq {READ}p
pq
24) Str -> Str , Iq {READ}p
pq
25) Op3 -> wr ( Out )
26) Op3 -> wrl ( Out ) {CR} {LF}
27) Out -> SO
28) SO -> ArE {вызов ArE}q {WRITE}p,0,-1
pq
29) SO -> ArE : ArE {вызов ArE}q1 {вызов ArE}q2 {WRITE}p1,p2,-1
p1q1
p2q2
30) SO -> ArE : ArE : ArE {вызов ArE}q1 {вызов ArE}q2
{вызов ArE}q3 {WRITE}p1,p2,p3
p1q1
p2q2
p3q3
31) Op4 -> got Nat {GETNAT}q {BRL}p
pq
32) Op5 -> if Expq1 {BF}q2,p1 T1 {BRL}q3 {DEFL}p2 T2 {DEFL}p3
q2NewLabel // Генерация новой метки с занесением в таблицу целых чисел
q3NewLabel
p1q1
p2q2
p3q3
33) Op5 -> if Expq1 {BF}q2,p1 THE Op {DEFL}p2
q2NewLabel // Генерация новой метки с занесением в таблицу целых чисел
p1q1
p2q2
34) T1 -> THE Op
35) T2 -> ELS Op
-
THE -> the
37) ELS -> els
38) Op6 -> WHI {DEFL}q1 Expq2 DO {BF}q3,p2 Op {BRL}p1 {DEFL}p3
q1NewLabel
q3NewLabel
p1q1
p2q2
p3q3
39) WHI -> whi
40) DO -> do
41) Expp4 -> ArE rel ArE {вызов ArE}q1{вызов ArE}q2 {GETREL}q3 {REL}p3,p1,p2,q4
q4NewId
p1q1
p2q2
p3q3
p4q4
42) Expp3 -> ArE = ArE {вызов ArE}q1 {вызов ArE}q2 {=}p1,p2,q3
q3NewId
p1q1
p2q2
p3q3
4. Грамматика G3.
1) ArEs -> Eq1,q2 Tq3 {+}p2,p1,p3,t
tNewId // Генерация нового идентификатора c занесением в таблицу
p1q1
p2q2
p3q3
st
2) ArEs -> Tt
st
3) Ep1,p2 -> ArE + {вызов ArE}q1 {GETOP}q2
p1q1
p2q2
4) Ts -> T1q1,q2 Pq3 {*}p2,p1,p3,t
tNewId
p1q1
p2q2
p3q3
st
5) Ts -> Pt
st
6) T1p1,p2 -> Tq1 * {GETOP}q2
p1q1
p2q2
7) Pp -> Cns {вызов Cns}q
pq
8) Pp -> Id {GETID}q
pq
9) Pp -> CVe {вызов CVe}q
pq
10) Pp -> VOp {вызов VOp}q
pq
11) Pp -> ( ArE ) {вызов ArE}q
pq
5. Грамматика G4.
1) VOpp2 -> len ( Id ) {GETID}q1 {LENGTH}p1,q2
q2NewId
p1q1
p2q2
2) VOpp2 -> len ( VOp ) {вызов VOp}q1 {LENGTH}p1,q2
q2NewId
p1q1
p2q2
3) VOpp3 -> sum ( Id , Id ) {GETID}q1 {GETID}q2 {SUM}p1,p2,q3
q3NewId
p1q1
p2q2
p3q3
4) VOpp3 -> sum ( Id , VOp ) {GETID}q1 {вызов VOp}q2 {SUM}p1,p2,q3
q3NewId
p1q1
p2q2
p3q3
5) VOpp3 -> sum ( VOp , Id ) {вызов VOp}q1 {GETID}q2 {SUM}p1,p2,q3
q3NewId
p1q1
p2q2
p3q3
6) VOpp3 -> sum ( VOp , VOp ){вызов VOp}q1 {вызов VOp}q2 {SUM}p1,p2,q3
q3NewId
p1q1
p2q2
p3q3
7) VOpp3 -> ms ( Id , Id ) {GETID}q1 {GETID}q2 {MULTSCAL}p1,p2,q3
q3NewId
p1q1
p2q2
p3q3
8) VOpp3 -> ms ( Id , VOp ) {GETID}q1 {вызов VOp}q2{MULTSCAL}p1,p2,q3
q3NewId
p1q1
p2q2
p3q3
9) VOpp3 -> ms ( VOp , Id ) {вызов VOp}q1{GETID}q2 {MULTSCAL}p1,p2,q3
q3NewId
p1q1
p2q2
p3q3
10) VOpp3 -> ms ( VOp, VOp ){вызов VOp}q1 {вызов VOp}q2{MULTSCAL}p1,p2,q3
q3NewId
p1q1
p2q2
p3q3
11) VOpp3 -> mc ( Id , Cns ){GETID}q1 {вызов Cns}q2 {MULTCONST}p1,p2,q3
q3NewId
p1q1
p2q2
p3q3
12) VOpp3 -> mc ( VOp , Cns ) {вызов VOp}q1 {вызов Cns}q2{MULTCONST}p1,p2,q3
q3NewId
p1q1
p2q2
p3q3
13) VOpp3 -> mc ( Id , Id ) {GETID}q1 {GETID}q2 {MULTCONST}p1,p2,q3
q3NewId
p1q1
p2q2
p3q3
14) VOpp3 -> mc ( VOp, Id ) {вызов VOp}q1 {GETID}q2 {MULTCONST}p1,p2,q3
q3NewId
p1q1
p2q2
p3q3
6. Грамматика G5.
1) Cnsp -> Nat {GETNAT}q
qNewId
pq
2) Cnsp3 -> + Nat {GETOP}q1 {GETNAT}q2 {+}p1,p2,q3
q2NewId
q3NewId
p1q1
p2q2
p3q3
3) Cnsp -> Num {GETNUM}q
qNewId
pq
4) Cnsp3 -> + Num {GETOP}q1 {GETNUM}q2 {+}p1,p2,q3
q2NewId
q3NewId
p1q1
p2q2
p3q3
7. Грамматика G6.
1) CVep3 -> Id [ Id ] {GETID}q1 {GETID}q2 {SUBS}p1,p2,q3
q3NewId
p1q1
p2q2
p3q3
2) CVep3 -> Id [ Nat ] {GETID}q1 {GETNAT}q2 {SUBS}p1,p2,q3
q3NewId
p1q1
p2q2
p3q3
3) CVep3 -> Id [ ArE ] {GETID}q1 {вызов ArE}q2 {SUBS}p1,p2,q3
q3NewId
p1q1
p2q2
p3q3
3. 5. Описания операционных сиволов.
Операционный символ |
Семантика |
{вызов Def}, {вызов Ops} |
Вызов соответствующих ДМП-процессоров |
{вызов ArE}q, {вызов VOp}q, {вызов Cns}q, {вызов CVe}q |
Вызов соответствующих ДМП-процессоров. Результат их работы запоминается как атрибут q. |
{GETLABEL}p |
Получить из таблицы целых чисел константу и запомнить её номер как p. |
{SETLABEL}p |
Установить в поле «метка» константы из таблицы целых чисел, определяемой атрибутом p, значение TRUE. |
{GETNAT}q |
Получить из таблицы целых чисел константу и записать её значение в поле «значение идентификатора» идентификатора, определяемого атрибутом q. Установить в поле «тип идентификатора» значение integer. |
{GETNUM}q |
Получить из таблицы вещественных чисел константу и записать её значение в поле «значение идентификатора» идентификатора, определяемого атрибутом q. Установить в поле «тип идентификатора» значение real. |
{SETCONST}p |
Установить в поле «константа» идентификатора, определяемого атрибутом p, значение TRUE. |
{SETTYPE}p1,p2,p3 |
Установить в таблице идентификаторов в поле «тип» идентификатора, определяемого атрибутом p1, значение, определяемое атрибутом p2; в поле «размерность вектора» – значение, определяемое атрибутом p3 |
{SETVAL}p1,p2 |
Установить в таблице идентификаторов в поле «значение» идентификатора, определяемого атрибутом p1, значение, определяемое атрибутом p2. |
{GETID}q |
Получить из таблицы идентификаторов имя идентификатора и запомнить его как атрибут q |
{GETIDVAL}q |
Получить из таблицы идентификаторов значение идентификатора. Если оно целое число, то запомнить его как атрибут q, иначе синтаксическая ошибка. |
{DEFL}p |
Определить, есть ли в таблице целых чисел константа-метка, определяемая атрибутом p. Если есть, то записать на выход тетраду DEFL, p, , . Если нет, то синтаксическая ошибка. |
{BLBEG} |
Записать на выход тетраду BLBEG, , , |
{BLEND} |
Записать на выход тетраду BLEND, , , |
{:=}p2,p1 |
Получить из таблицы идентификаторов значение поля «константа» идентификатора, определяемого атрибутом p1. Если TRUE, то синтаксическая ошибка, иначе получить из таблицы идентификаторов типы идентификаторов, определяемых атрибутами p1, p2. Если p1 - real и p2 - real или p1 - integer и p2 - integer, то записать на выход тетраду :=, p2, , p1. Если p1 - real, p2- integer, то записать на выход тетрады ITOA, p2, , t и :=, t, , p1 . Во всех остальных случаях – синтаксическая ошибка. |
{READ}p |
Получить из таблицы идентификаторов тип идентификатора, определяемого атрибутом p. Если real или integer, то записать на выход тетраду read, p, , . Иначе синтаксическая ошибка. |
{WRITE}p1,p2,p3 |
Получить из таблицы идентификаторов типы идентификаторов, определяемых атрибутами p1, p2, p3. Если значения типов real, integer, integer или integer, integer, integer, то записать на выход тетраду write, p1, p2, p3 . Иначе синтаксическая ошибка. |
{CR} |
Записать на выход тетраду CR, , , |
{LF} |
Записать на выход тетраду LF, , , |
{BRL}p |
Определить, есть ли в таблице целых чисел константа-метка, определяемая атрибутом p. Если есть, то записать на выход тетраду BRL, p, , . Иначе синтаксическая ошибка. |
{BF}p1,p2 |
Определить, есть ли в таблице целых чисел константа-метка, определяемая атрибутом p1. Если есть, то записать на выход тетраду BF, p1, p2, |
{GETREL}q |
Получить из таблицы однолитерных или двухлитерных разделителей знак отношения и запомнить его как атрибут q. |
{REL}p1,p2,p3,q |
Получить из таблицы идентификаторов типы идентификаторов, определяемых атрибутами p2, p3. Если значение хотя бы одного типа – vector, то синтаксическая ошибка. Иначе если p2 – real, p3 – real или p2 – integer, p3 – integer, то записать на выход тетраду rel, p2, p3, q . Если p2 – real, p3 – integer, то записать на выход тетрады ITOA, p3, , t и rel, p2, t, q. Если p2 – integer, p3 – real, то записать на выход тетрады ITOA, p2, , t и rel, t, p3, q . Здесь rel – знак отношения, определяемого атрибутом p1. |
{=}p1,p2,q |
Получить из таблицы идентификаторов типы идентификаторов, определяемых атрибутами p1, p2. Если значение хотя бы одного типа – vector, то синтаксическая ошибка. Иначе если p1 – real, p2 – real или p1 – integer, p2 – integer, то записать на выход тетраду =, p2, p3, q . Если p1 – real, p2 – integer, то записать на выход тетрады ITOA, p2, , t и =, p1, t, q. Если p1 – integer, p2 – real, то записать на выход тетрады ITOA, p1, , t и =, t, p2, q . |
{GETOP}q |
Получить из таблицы однолитерных разделителей знак операции и запомнить его как атрибут q. |
{+}p3,p1,p2,q {*}p3,p1,p2,q |
Получить из таблицы идентификаторов типы идентификаторов, определяемых атрибутами p1, p2. Если значение хотя бы одного типа – vector, то синтаксическая ошибка. Иначе установить в поле «тип» идентификатора, определяемого атрибутом q, значение в соответствии с операцией, определяемой атрибутом p3, и типами идентификаторов, определяемых атрибутами p1, p2 (см. таблицу преобразования типов для бинарных арифметических операций). Записать на выход тетраду op, p1, p2, q . Здесь op – операция, определяемая атрибутом p3. |
{LENGTH}p,q |
Получить из таблицы идентификаторов идентификатор, определяемый атрибутом p. Если тип идентификатора не vector, то синтаксическая ошибка. Иначе установить в поле «тип» идентификатора, определяемого атрибутом q, значение real. Записать на выход тетраду length, p, , q . |
{SUM}p1,p2,q |
Получить из таблицы идентификаторов идентификаторы, определяемые атрибутами p1, p2. Если тип хотя бы одного идентификатора не vector или значения размерности векторов идентификаторов не равны, то синтаксическая ошибка. Иначе установить в поле «тип» идентификатора, определяемого атрибутом q, значение vector, в поле «размерность вектора» – значение размерности вектора идентификатора, определяемого атрибутом p1. Записать на выход тетраду sum, p1, p2, q |
{MULTSCAL}p1,p2,q |
Получить из таблицы идентификаторов идентификаторы, определяемые атрибутами p1, p2. Если тип хотя бы одного идентификатора не vector или значения размерности векторов идентификаторов не равны, то синтаксическая ошибка. Иначе установить в поле «тип» идентификатора, определяемого атрибутом q, значение real. Записать на выход тетраду multscal, p1, p2, q . |
{MULTCONST}p1,p2,q |
Получить из таблицы идентификаторов идентификаторы, определяемые атрибутами p1, p2. Если тип первого идентификатора не vector или тип второго идентификатора vector, то синтаксическая ошибка. Иначе установить в поле «тип» идентификатора, определяемого атрибутом q, значение vector, в поле «размерность вектора» – значение размерности вектора идентификатора, определяемого атрибутом p1. Если p2 – real, то записать на выход тетраду multconst, p1, p2, q , иначе записать на выход тетрады ITOA, p2, , t и multconst, p1, p2, q . |
{+}p1,p2,q |
Получить из таблицы идентификаторов значение типа идентификатора, определяемого атрибутом p2, и установить его в поле «тип» идентификатора, определяемого атрибутом q. Если значение атрибута p1 – «+», то записать на выход тетраду :=, p2, , q , если «-», то тетраду -, p2, , q . |
{SUBS}p1,p2,q3 |
Получить из таблицы идентификаторов тип идентификатора, определяемого атрибутом p1. Если не vector, то синтаксическая ошибка. Иначе установить в поле «тип» идентификатора, определяемого атрибутом p3, значение real; проверить, что тип константы или идентификатора, определяемого атрибутом p2 – целый. Если нет, то синтаксическая ошибка, иначе записать на выход тетраду SUBS, p1, p2, q3 |
3. 6. Построение атрибутных ДМП-процессоров.
1) ДМП-процессор для грамматики G.
ФУНКЦИИ ТИПА "ПЕРЕНОС-СВЕРТКА" :
---- функция "перенос" ( количество элементов : 11 * 9 ) :
============================================
I IDef!Ops!pro!beg!end!; !. !Id !EpsI
============================================
IS IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
IDef IОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
IOps IОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
Ipro IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---I
Ibeg IОШ !ПЕР!ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
Iend IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
I; IПЕР!ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
I. IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
IId IОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
I + IОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
I + S IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ДОПI
============================================
---- функция "свертка" ( количество элементов : 10 * 4 ) :
====================
I I1 !2 !3 !4 I
====================
IS IОШ!ОШ!ОШ!ОШI
I------I--+--+--+--I
IDef IОШ!ОШ!ОШ!ОШI
I------I--+--+--+--I
IOps IОШ!ОШ!ОШ!ОШI
I------I--+--+--+--I
Ipro IОШ!ОШ!ОШ!ОШI
I------I--+--+--+--I
Ibeg IОШ!ОШ!ОШ!ОШI
I------I--+--+--+--I
Iend IОШ!ОШ!ОШ!ОШI
I------I--+--+--+--I
I; IОШ!ОШ!ОШ!ОШI
I------I--+--+--+--I
I. IОШ!ОШ!ОШ!ОШI
I------I--+--+--+--I
IId IОШ!ОШ!ОШ!ОШI
I------I--+--+--+--I
I + I1 !2 !3 !4 I
====================
2) ДМП-процессор для грамматики G1.
ФУНКЦИИ ТИПА "ПЕРЕНОС-СВЕРТКА" :
---- функция "перенос" ( количество элементов : 26 * 16 ) :
========================================================================
I Ilab!con!var!; !, !: != !Cns!Id !Nat![ !] !rea!int!vec!EpsI
========================================================================
IDef IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IDL IОШ !ПЕР!ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
ILbs IОШ !ОШ !ОШ !ПЕР!ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IL IОШ !ОШ !ОШ ! C ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IDC IОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IDV IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IIds IОШ !ОШ !ОШ !ОШ !ПЕР!ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
II IОШ !ОШ !ОШ !ОШ ! C ! C !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
ITyp IОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
Ilab IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
Icon IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
Ivar IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I; IОШ ! C ! C !ОШ !ОШ !ОШ !ОШ !ОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I, IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I: IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ПЕР!ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I= IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
ICns IОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IId IОШ !ОШ !ОШ !ОШ ! C ! C ! C !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
INat IОШ !ОШ !ОШ ! C ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I[ IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I] IОШ !ОШ !ОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
Irea IОШ !ОШ !ОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
Iint IОШ !ОШ !ОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
Ivec IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I + IПЕР!ПЕР!ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I + DefIОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ДОПI
========================================================================
---- функция "свертка" ( количество элементов : 25 * 22 ) :
=======================================================================
I I1 !2 !3 !4 !5 !6 !7 !8 !9 !10!11!12!13!14!15!16!17!18!19!20!21I
=======================================================================
IDef IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IDL IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
ILbs IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IL IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IDC IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!18!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IDV IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!12!ОШ!14!ОШ!16!17!18!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IIds IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
II IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
ITyp IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Ilab IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!8 !9 !10!11!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Icon IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!12!13!ОШ!ОШ!16!ОШ!18!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Ivar IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!12!ОШ!14!15!16!17!18!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I; IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I, IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!11!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!18!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I: IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!19!20!21I
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I= IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
ICns IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IId IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
INat IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I[ IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I] IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Irea IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Iint IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Ivec IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I + I1 !2 !3 !4 !5 !6 !7 !ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
=======================================================================
===========
I I22I
===========
IDef IОШI
I------I--I
IDL IОШI
I------I--I
ILbs IОШI
I------I--I
IL IОШI
I------I--I
IDC IОШI
I------I--I
IDV IОШI
I------I--I
IIds IОШI
I------I--I
II IОШI
I------I--I
ITyp IОШI
I------I--I
Ilab IОШI
I------I--I
Icon IОШI
I------I--I
Ivar IОШI
I------I--I
I; IОШI
I------I--I
I, IОШI
I------I--I
I: I22I
I------I--I
I= IОШI
I------I--I
ICns IОШI
I------I--I
IId IОШI
I------I--I
INat IОШI
I------I--I
I[ IОШI
I------I--I
I] IОШI
I------I--I
Irea IОШI
I------I--I
Iint IОШI
I------I--I
Ivec IОШI
I------I--I
I + IОШI
===========
-
ДМП-процессор для грамматики G2.
ФУНКЦИИ ТИПА "ПЕРЕНОС-СВЕРТКА" :
---- функция "перенос" ( количество элементов : 50 * 25 ) :
========================================================================
I Ibeg!end!rd !rdl!wr !wrl!got!if !the!els!whi!do !; !: !( !) I
========================================================================
IOps IОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IOp IОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C !ОШ !ОШ ! C !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
ILab IПЕР!ОШ !ПЕР!ПЕР!ПЕР!ПЕР!ПЕР!ПЕР!ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IOpC IОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C !ОШ !ОШ ! C !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IB IПЕР!ОШ !ПЕР!ПЕР!ПЕР!ПЕР!ПЕР!ПЕР!ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IE IОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C !ОШ !ОШ ! C !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IOpE IОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C !ОШ !ОШ ! C !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IOp1 IОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C !ОШ !ОШ ! C !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
II IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IOp2 IОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C !ОШ !ОШ ! C !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IStr IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕРI
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IOp3 IОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C !ОШ !ОШ ! C !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IOut IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕРI
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
ISO IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IOp4 IОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C !ОШ !ОШ ! C !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IOp5 IОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C !ОШ !ОШ ! C !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IT1 IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IT2 IОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C !ОШ !ОШ ! C !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
ITHE IПЕР!ОШ !ПЕР!ПЕР!ПЕР!ПЕР!ПЕР!ПЕР!ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IELS IПЕР!ОШ !ПЕР!ПЕР!ПЕР!ПЕР!ПЕР!ПЕР!ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IOp6 IОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C !ОШ !ОШ ! C !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IWHI IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IDO IПЕР!ОШ !ПЕР!ПЕР!ПЕР!ПЕР!ПЕР!ПЕР!ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IExp IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
Ibeg I C !ПЕР! C ! C ! C ! C ! C ! C !ОШ !ОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
Iend IОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C !ОШ !ОШ ! C !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
Ird IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
Irdl IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
Iwr IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
Iwrl IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
Igot IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
Iif IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
Ithe I C !ОШ ! C ! C ! C ! C ! C ! C !ОШ !ОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
Iels I C !ОШ ! C ! C ! C ! C ! C ! C !ОШ !ОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
Iwhi IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
Ido I C !ОШ ! C ! C ! C ! C ! C ! C !ОШ !ОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I; IПЕР!ОШ !ПЕР!ПЕР!ПЕР!ПЕР!ПЕР!ПЕР!ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I: I C !ОШ ! C ! C ! C ! C ! C ! C !ОШ !ОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I( IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I) IОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C !ОШ !ОШ ! C !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I, IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I= IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I:= IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IId IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
INat IОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C !ОШ !ОШ ! C !ПЕР!ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
Irel IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
IArE IОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C ! C !ОШ ! C ! C !ПЕР!ОШ ! C I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
ICVe IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I + IПЕР!ОШ !ПЕР!ПЕР!ПЕР!ПЕР!ПЕР!ПЕР!ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I + OpsIОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
========================================================================
============================================
I I, != !:= !Id !Nat!rel!ArE!CVe!EpsI
============================================
IOps IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
IOp IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
ILab IОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---I
IOpC IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
IB IОШ !ОШ !ОШ !ПЕР!ПЕР!ОШ !ОШ !ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---I
IE IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
IOpE IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
IOp1 IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
II I C !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
IOp2 IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
IStr IПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
IOp3 IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
IOut IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
ISO IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
IOp4 IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
IOp5 IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
IT1 IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
IT2 IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
ITHE IОШ !ОШ !ОШ !ПЕР!ПЕР!ОШ !ОШ !ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---I
IELS IОШ !ОШ !ОШ !ПЕР!ПЕР!ОШ !ОШ !ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---I
IOp6 IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
IWHI IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
IDO IОШ !ОШ !ОШ !ПЕР!ПЕР!ОШ !ОШ !ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---I
IExp IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
Ibeg IОШ !ОШ !ОШ ! C ! C !ОШ !ОШ ! C !ОШ I
I------I---+---+---+---+---+---+---+---+---I
Iend IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
Ird IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
Irdl IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
Iwr IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
Iwrl IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
Igot IОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
Iif IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
Ithe IОШ !ОШ !ОШ ! C ! C !ОШ !ОШ ! C !ОШ I
I------I---+---+---+---+---+---+---+---+---I
Iels IОШ !ОШ !ОШ ! C ! C !ОШ !ОШ ! C !ОШ I
I------I---+---+---+---+---+---+---+---+---I
Iwhi IОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
Ido IОШ !ОШ !ОШ ! C ! C !ОШ !ОШ ! C !ОШ I
I------I---+---+---+---+---+---+---+---+---I
I; IОШ !ОШ !ОШ !ПЕР!ПЕР!ОШ !ОШ !ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---I
I: IОШ !ОШ !ОШ ! C !ОШ !ОШ !ПЕР! C !ОШ I
I------I---+---+---+---+---+---+---+---+---I
I( IОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ПЕР!ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---I
I) IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
I, IОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---I
I= IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
I:= IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
IId I C !ОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
INat IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
Irel IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
IArE IОШ !ПЕР!ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
ICVe I C !ОШ ! C !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
I + IОШ !ОШ !ОШ !ПЕР!ПЕР!ОШ !ОШ !ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---I
I + OpsIОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ДОПI
============================================
---- функция "свертка" ( количество элементов : 49 * 42 ) :
=======================================================================
I I1 !2 !3 !4 !5 !6 !7 !8 !9 !10!11!12!13!14!15!16!17!18!19!20!21I
=======================================================================
IOps IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!11!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOp IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
ILab IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!8 !9 !10!ОШ!12!13!14!15!16!17!18!19!20!21I
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOpC IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IB I1 !2 !3 !4 !5 !6 !7 !8 !9 !10!ОШ!12!13!14!15!16!17!18!19!20!21I
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IE IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOpE IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOp1 IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
II IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOp2 IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IStr IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOp3 IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOut IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
ISO IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOp4 IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOp5 IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IT1 IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IT2 IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
ITHE IОШ!ОШ!3 !4 !5 !6 !7 !8 !9 !10!ОШ!12!13!14!15!16!17!18!19!20!21I
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IELS IОШ!ОШ!3 !4 !5 !6 !7 !8 !9 !10!ОШ!12!13!14!15!16!17!18!19!20!21I
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOp6 IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IWHI IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IDO IОШ!ОШ!3 !4 !5 !6 !7 !8 !9 !10!ОШ!12!13!14!15!16!17!18!19!20!21I
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IExp IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Ibeg IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Iend IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Ird IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Irdl IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Iwr IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Iwrl IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Igot IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Iif IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Ithe IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Iels IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Iwhi IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Ido IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I; IОШ!ОШ!3 !4 !5 !6 !7 !8 !9 !10!ОШ!12!13!14!15!16!17!18!19!20!21I
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I: IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I( IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!18!19!20!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I) IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I, IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!19!20!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I= IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I:= IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IId IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
INat IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Irel IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IArE IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
ICVe IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I + I1 !2 !3 !4 !5 !6 !7 !8 !9 !10!ОШ!12!13!14!15!16!17!18!19!20!21I
=======================================================================
=======================================================================
I I22!23!24!25!26!27!28!29!30!31!32!33!34!35!36!37!38!39!40!41!42I
=======================================================================
IOps IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOp IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
ILab I22!23!ОШ!25!26!ОШ!ОШ!ОШ!ОШ!31!32!33!ОШ!ОШ!ОШ!ОШ!38!39!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOpC IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IB I22!23!ОШ!25!26!ОШ!ОШ!ОШ!ОШ!31!32!33!ОШ!ОШ!ОШ!ОШ!38!39!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IE IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOpE IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOp1 IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
II IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOp2 IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IStr IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOp3 IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOut IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
ISO IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOp4 IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOp5 IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IT1 IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!35!ОШ!37!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IT2 IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
ITHE I22!23!ОШ!25!26!ОШ!ОШ!ОШ!ОШ!31!32!33!ОШ!ОШ!ОШ!ОШ!38!39!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IELS I22!23!ОШ!25!26!ОШ!ОШ!ОШ!ОШ!31!32!33!ОШ!ОШ!ОШ!ОШ!38!39!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IOp6 IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IWHI IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!28!29!30!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!41!42I
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IDO I22!23!ОШ!25!26!ОШ!ОШ!ОШ!ОШ!31!32!33!ОШ!ОШ!ОШ!ОШ!38!39!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IExp IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!34!ОШ!36!ОШ!ОШ!ОШ!40!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Ibeg IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Iend IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Ird IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Irdl IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Iwr IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Iwrl IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Igot IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Iif IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!28!29!30!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!41!42I
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Ithe IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Iels IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Iwhi IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Ido IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I; I22!23!ОШ!25!26!ОШ!ОШ!ОШ!ОШ!31!32!33!ОШ!ОШ!ОШ!ОШ!38!39!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I: IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I( IОШ!23!24!ОШ!ОШ!27!28!29!30!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!41!42I
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I) IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I, IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I= IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I:= IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IId IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
INat IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Irel IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IArE IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
ICVe IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I + I22!23!ОШ!25!26!ОШ!ОШ!ОШ!ОШ!31!32!33!ОШ!ОШ!ОШ!ОШ!38!39!ОШ!ОШ!ОШI
=======================================================================
-
ДМП-процессор для грамматики G3.
ФУНКЦИИ ТИПА "ПЕРЕНОС-СВЕРТКА" :
---- функция "перенос" ( количество элементов : 15 * 9 ) :
============================================
I I+ !* !( !) !Id !CVe!Cns!VOp!EpsI
============================================
IArE IПЕР!ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---I
IE IОШ !ОШ !ПЕР!ОШ !ПЕР!ПЕР!ПЕР!ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---I
IT I C !ПЕР!ОШ ! C !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
IT1 IОШ !ОШ !ПЕР!ОШ !ПЕР!ПЕР!ПЕР!ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---I
IP I C ! C !ОШ ! C !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
I+ IОШ !ОШ ! C !ОШ ! C ! C ! C ! C !ОШ I
I------I---+---+---+---+---+---+---+---+---I
I* IОШ !ОШ ! C !ОШ ! C ! C ! C ! C !ОШ I
I------I---+---+---+---+---+---+---+---+---I
I( IОШ !ОШ !ПЕР!ОШ !ПЕР!ПЕР!ПЕР!ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---I
I) I C ! C !ОШ ! C !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
IId I C ! C !ОШ ! C !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
ICVe I C ! C !ОШ ! C !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
ICns I C ! C !ОШ ! C !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
IVOp I C ! C !ОШ ! C !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---I
I + IОШ !ОШ !ПЕР!ОШ !ПЕР!ПЕР!ПЕР!ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---I
I + ArEIОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ДОПI
============================================
---- функция "свертка" ( количество элементов : 14 * 11 ) :
=========================================
I I1 !2 !3 !4 !5 !6 !7 !8 !9 !10!11I
=========================================
IArE IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--I
IE IОШ!2 !ОШ!4 !5 !6 !7 !8 !9 !10!11I
I------I--+--+--+--+--+--+--+--+--+--+--I
IT IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--I
IT1 IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!7 !8 !9 !10!11I
I------I--+--+--+--+--+--+--+--+--+--+--I
IP IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--I
I+ IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--I
I* IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--I
I( I1 !2 !3 !4 !5 !6 !7 !8 !9 !10!11I
I------I--+--+--+--+--+--+--+--+--+--+--I
I) IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--I
IId IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--I
ICVe IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--I
ICns IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--I
IVOp IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--I
I + I1 !2 !3 !4 !5 !6 !7 !8 !9 !10!11I
=========================================
-
ДМП-процессор для грамматики G4.
ФУНКЦИИ ТИПА "ПЕРЕНОС-СВЕРТКА" :
---- функция "перенос" ( количество элементов : 12 * 10 ) :
================================================
I Ilen!sum!ms !mc !, !( !) !Id !Cns!EpsI
================================================
IVOp IОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ПЕР!ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---I
Ilen IОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---I
Isum IОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---I
Ims IОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---I
Imc IОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---I
I, IПЕР!ПЕР!ПЕР!ПЕР!ОШ !ОШ !ОШ !ПЕР!ПЕР!ОШ I
I------I---+---+---+---+---+---+---+---+---+---I
I( IПЕР!ПЕР!ПЕР!ПЕР!ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---I
I) IОШ !ОШ !ОШ !ОШ ! C !ОШ ! C !ОШ !ОШ ! C I
I------I---+---+---+---+---+---+---+---+---+---I
IId IОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ПЕР!ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---I
ICns IОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ПЕР!ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---I
I + IПЕР!ПЕР!ПЕР!ПЕР!ОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---+---+---+---+---I
I + VOpIОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ОШ !ДОПI
================================================
---- функция "свертка" ( количество элементов : 11 * 14 ) :
==================================================
I I1 !2 !3 !4 !5 !6 !7 !8 !9 !10!11!12!13!14I
==================================================
IVOp IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Ilen IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Isum IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Ims IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--I
Imc IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I, I1 !2 !3 !4 !5 !6 !7 !8 !9 !10!11!12!13!14I
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I( I1 !2 !3 !4 !5 !6 !7 !8 !9 !10!11!12!13!14I
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I) IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--I
IId IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--I
ICns IОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШ!ОШI
I------I--+--+--+--+--+--+--+--+--+--+--+--+--+--I
I + I1 !2 !3 !4 !5 !6 !7 !8 !9 !10!11!12!13!14I
==================================================
-
ДМП-процессор для грамматики G5.
ФУНКЦИИ ТИПА "ПЕРЕНОС-СВЕРТКА" :
---- функция "перенос" ( количество элементов : 6 * 4 ) :
========================
I INat!Num!+ !EpsI
========================
ICns IОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---I
INat IОШ !ОШ !ОШ ! C I
I------I---+---+---+---I
INum IОШ !ОШ !ОШ ! C I
I------I---+---+---+---I
I+ IПЕР!ПЕР!ОШ !ОШ I
I------I---+---+---+---I
I + IПЕР!ПЕР!ПЕР!ОШ I
I------I---+---+---+---I
I + CnsIОШ !ОШ !ОШ !ДОПI
========================
---- функция "свертка" ( количество элементов : 5 * 4 ) :
====================
I I1 !2 !3 !4 I
====================
ICns IОШ!ОШ!ОШ!ОШI
I------I--+--+--+--I
INat IОШ!ОШ!ОШ!ОШI
I------I--+--+--+--I
INum IОШ!ОШ!ОШ!ОШI
I------I--+--+--+--I
I+ IОШ!ОШ!ОШ!ОШI
I------I--+--+--+--I
I + I1 !2 !3 !4 I
====================
-
ДМП-процессор для грамматики G6.
ФУНКЦИИ ТИПА "ПЕРЕНОС-СВЕРТКА" :
---- функция "перенос" ( количество элементов : 8 * 6 ) :
================================
I IId !Nat!ArE![ !] !EpsI
================================
ICVe IОШ !ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---I
IId IОШ !ОШ !ОШ !ПЕР!ПЕР!ОШ I
I------I---+---+---+---+---+---I
INat IОШ !ОШ !ОШ !ОШ !ПЕР!ОШ I
I------I---+---+---+---+---+---I
IArE IОШ !ОШ !ОШ !ОШ !ПЕР!ОШ I
I------I---+---+---+---+---+---I
I[ IПЕР!ПЕР!ПЕР!ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---I
I] IОШ !ОШ !ОШ !ОШ !ОШ ! C I
I------I---+---+---+---+---+---I
I + IПЕР!ОШ !ОШ !ОШ !ОШ !ОШ I
I------I---+---+---+---+---+---I
I + CVeIОШ !ОШ !ОШ !ОШ !ОШ !ДОПI
================================
---- функция "свертка" ( количество элементов : 7 * 3 ) :
=================
I I1 !2 !3 I
=================
ICVe IОШ!ОШ!ОШI
I------I--+--+--I
IId IОШ!ОШ!ОШI
I------I--+--+--I
INat IОШ!ОШ!ОШI
I------I--+--+--I
IArE IОШ!ОШ!ОШI
I------I--+--+--I
I[ IОШ!ОШ!ОШI
I------I--+--+--I
I] IОШ!ОШ!ОШI
I------I--+--+--I
I + I1 !2 !3 I
=================
4. Генерация ассемблерного кода.
При генерации ассемблерного кода из тетрад учитывалось следующее:
-
Память выделяется статически.
-
Под целое число в памяти отводятся 2 байта (слово), под вещественное число – 4 байта (двойное слово).
-
Вектора представляются в памяти как массивы вещественных чисел.
-
Под все числовые константы в сегменте данных также выделяется память, так как все арифметические операции производятся с использованием FPU.
-
Также в сегменте данных выделяется память под вспомогательные целые и вещественные переменные, используемые в программе.
-
Для обеспечения ввода и вывода были написаны процедуры на Ассемблере. Эти процедуры вставляются в окончательный код только в том случае, если программа должна использовать ввод или вывод соответственно.
-
В случае если в программе обнаружена ошибка, на экран выводится сообщение с указанием предположительной причины ошибки. Ассемблерный код в этом случае не генерируется.
5. Полный тестовый пример.
1) Исходный файл test.pas.
program Test;
var
r:real;
v:vector[3];
begin
v[1]:=1.2;
v[2]:=2.4;
v[3]:=1.5;
r:=length(v);
if r<1.1 then write(r:0:2) else write(r:0:4)
end.
2) Поток токенов stream.txt.
program 1 1
Id 2 1
; 5 1
var 1 2
Id 2 2
: 5 2
real 1 3
; 5 1
Id 2 3
: 5 2
vector 1 4
[ 5 3
Nat 3 1
] 5 4
; 5 1
begin 1 5
Id 2 3
[ 5 3
Nat 3 2
] 5 4
:= 6 1
Num 4 1
; 5 1
Id 2 3
[ 5 3
Nat 3 3
] 5 4
:= 6 1
Num 4 2
; 5 1
Id 2 3
[ 5 3
Nat 3 4
] 5 4
:= 6 1
Num 4 3
; 5 1
Id 2 2
:= 6 1
length 1 6
( 5 5
Id 2 3
) 5 6
; 5 1
if 1 7
Id 2 2
rel 5 7
Num 4 4
then 1 8
write 1 9
( 5 5
Id 2 2
: 5 2
Nat 3 5
: 5 2
Nat 3 6
) 5 6
else 1 10
write 1 9
( 5 5
Id 2 2
: 5 2
Nat 3 7
: 5 2
Nat 3 8
) 5 6
end 1 11
. 5 8
3) Таблицы лексем table.txt.
program
var
real
vector
begin
length
if
then
write
else
end
#
Test
r
v
#
3
1
2
3
0
2
0
4
#
1.2
2.4
1.5
1.1
#
;
:
[
]
(
)
<
.
#
:=
#
4) Тетрады tetrads.txt.
DEFMEMORY, v, 3,
SUBS, v, 1, el_v_1
:=, 1.2, , el_v_1
SUBS, v, 2, el_v_2
:=, 2.4, , el_v_2
SUBS, v, 3, el_v_3
:=, 1.5, , el_v_3
NEWID, id1, real,
LENGTH, v, ,id1
:=, id1, , r
NEWID, exp1, integer,
<, r, 1.1, exp1
NEWLABEL, lab1_if1, ,
BF, lab1_if1, exp1 ,
WRITE, r, 0, 2
NEWLABEL, lab2_if1, ,
BRL, lab2_if1, ,
DEFL, lab1_if1, ,
WRITE, r, 0, 4
DEFL, lab2_if1, ,
5) Ассемблерный код progr.asm.
.286
.287
AStack SEGMENT STACK
DW 64 DUP(?)
AStack ENDS
DATA SEGMENT
MINUS DB '-','$'
DOT DB '.','$'
iTmp DW 0
rTmp DD 10.0
rTmp1 DD 0.0
_r_r DD 0
_v_v DD 3 DUP(0.0)
_r_id1 DD 0.0
_i_exp1 DW 0
_i0 DW 3
_i1 DW 1
_r2 DD 1.2
_i3 DW 2
_r4 DD 2.4
_r5 DD 1.5
_r6 DD 1.1
_i7 DW 0
_i8 DW 4
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:AStack
; Процедура печати строки
WriteMsg PROC NEAR
push AX
mov AH,9
int 21h
pop AX
ret
WriteMsg ENDP
; Процедура, выводящая на экран целое десятичное число без знака
; выводимое число в регистре AX
PrnDec PROC NEAR
push AX; сохраняем регистры
push CX
push DX
push -1; сохраняем признак конца числа
mov CX,10; делим на 10
pdl1: xor DX,DX; очистим регистр DX
div CX; делим
push DX; сохраняем цифру
or AX,AX; в остатке 0?
jne pdl1; если нет, прдолжим
mov AH,2h
pdl2: pop DX; восстановим цифру
or DX,DX; если дошли до конца, выходим
jl pdl3
add DL,'0'; преобразуем в цифру