Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа3 / Курсовик.doc
Скачиваний:
18
Добавлен:
01.05.2014
Размер:
1.6 Mб
Скачать
    1. Тестирование атрибутного дмп-процессора

В качестве тестового примера возьмем программу из пп. 3.2.7:

int a=3.2;

vector b[3];

void main()

{ b=[7 a 0.8];

if (b[2]==a)

printf (“a=”,a);

}

Атрибут идентификатора ID p р – указатель на строку в таблице переменных. Для наглядности будем обозначать его просто именем переменной. В графе «входная цепочка отображается часть входной цепочки, жирным выделено положение читающей головки. В графе «выход» отображаются новые тетрады выходной цепочки. В графе «элемент» отображается номер правила грамматики, примененного на этом шаге или элемент управляющей таблицы.

Отображать состояние (конфигурацию) ДМП=процессора будем следующими блоками:

стек

вход

элемент

выход

S

int a=3.2;

Decl

void

main

(

)

{

Sop

}

int a=3.2;

Decl1

;

Decl

void

main

(

)

{

Sop

}

int a=3.2;

Typ

1

ID

2

{NVar}

1

2

Decl1’

2

;

Decl

void

int a=3.2;

1

55

57

73

Type

1

ID

2

{NVar}

1

2

Decl1’

2

;

Decl

void

int a=3.2;

ID

2

{NVar}

int

2

Decl1’

2

;

Decl

void

main

...

a=3.2;

{NVar}

int

a

Decl1’

a

;

Decl

void

main

(

=3.2;

Decl1’

a

;

Decl

void

main

(

)

{

Sop

}

=3.2;

выброс

выброс

выдача

60

NVar

a

int

=

Num

2

{GOp}

1

a

2

;

Decl

void

=3.2;

vector b[3];

Num

2

{GOp}

1

a

2

;

Decl

void

main

3.2;

vector b[3];

СF

2

{GOp}

1

a

2

;

Decl

void

main

3.2;

vector b[3];

{GOp}

1

a

3.2

;

Decl

void

main

(

;

vector b[3];

выброс

77

выброс

выдача

;

Decl

void

main

(

)

{

;

vector b[3];

Decl

void

main

(

)

{

vector b[3];

Decl1

;

Decl

void

main

(

)

{

Sop

}

vector b[3];

vector

ID

1

[

Dim

2

]

{NVec}

1

2

Decl’’

1

2

;

vector b[3];

выброс

55

59

выброс

GOp

1

a

3.2

ID

1

[

Dim

2

]

{NVec}

1

2

Decl’’

1

2

;

b[3];

[

Dim

2

]

{NVec}

b

2

Decl’’

b

2

;

[3];

Dim

2

]

{NVec}

b

2

Decl’’

b

2

;

3];

]

{NVec}

b

3

Decl’’

b

3

;

];

void main()

выброс

выброс

75

выброс

{NVec}

b

3

Decl’’

b

3

;

Decl

Void

;void main()

Decl’’

b

3

;

Decl

void

main

(

;void main()

;

Decl

void

main

(

)

;void main()

Decl

void

main

(

)

{

void main()

выдача

63

выброс

56

NVec

b

3

void

main

(

)

{

void main()

main

(

)

{

main()

{b=

(

)

{

Sop

}

() {b= [

)

{

Sop

}

) {b= [

выброс

выброс

выброс

выброс

{

Sop

}

{b= [7

Sop

}

b= [7 а

Op

Sop

}

b= [7 а

NOp

;

Sop

}

b= [7 а

выброс

2

5

17

Exp

;

Sop

}

b= [7 а

Dis

2

Exp’

2

1

;

Sop

}

b= [7 а

Con

3

Dis’

3

2

Exp’

2

1

b= [7 а

Rel

4

Con’

4

3

Dis’

3

2

b= [7 а

33

38

41

44

Sm

5

Rel’

5

4

Con’

4

3

b= [7 а

Ml

6

Sm’

6

5

Rel’

5

4

b= [7 а

Var

6

Sm’

6

5

Rel’

5

4

b= [7 а

ID

7

Var’

7

6

Sm’

6

5

b= [7 а

47

51

66

выброс

Var’

b

6

Sm’

6

5

= [7 а

Sm’

b

5

Rel’

5

4

= [7 а

Rel’

b

4

Con’

4

3

= [7 а

Con’

b

3

Dis’

3

2

= [7 а

69

49

46

43

Dis’

b

2

Exp’

2

1

= [7 а

Exp’

b

1

;

Sop

}

= [7 а

GOp

3

Dis

4

{GOp}

3

b

4

5

Exp’

5

1

;

Sop

}

= [7 а

Dis

4

{GOp}

=

2

4

5

Exp’

5

1

;

Sop

}

[7 а 0.8]

40

35

выброс

38

Con

6

Dis’

6

4

{GOp}

[7 а 0.8]

Rel

7

Con’

7

6

Dis’

6

4

[7 а 0.8]

Sm

8

Rel’

8

7

Con’

7

6

[7 а 0.8]

Ml

9

Sm’

9

8

Rel’

8

7

[7 а 0.8]

41

44

47

51