B) Построение инструкций а-преобразвателя

#0 {

STACK  last  first <PROGRAM>

[SP-1]= START

}

#1 {

POP

STACK  last  first ‘{’  last1  first1 <MAIN_BLOCK> ‘}’ “main()”

[SP-4]=-3

[SP-5]=-3

}

#2 {

POP

STACK  last  first ‘;’  last1  first1 <LIST_IDENT_I> “int”

[SP-2]=-3

[SP-3]=-3

}

#3 {

POP

STACK  last  first ‘;’  last1  first1 <LIST_IDENT_F> “float”

[SP-2]=-3

[SP-3]=-3

}

#4 {

POP

STACK  last  first  last1  first1 <LIST_IDENT_I> ‘,’

[SP-1]=-2

[SP-2]=-2

}

#5 {

POP

STACK  last  first  last1  first1 <LIST_IDENT_F> ‘,’

[SP-1]=-2

[SP-2]=-2

}

#6 {

POP

STACK  last  first ‘}’  last1  first1 <BODY> ‘{’

[SP-1]=-3

[SP-2]=-3

}

#7 {

POP

STACK  rslt  1op  last  first  DEST  2op  1op1 {#(+)#}  cell  last2  first2 {new_cell}  rslt1  last1  first1 <R_EQUATION> ‘+’

[SP-2]=-11

[SP-3]=-3

[SP-10]=-5

[SP-4]=-7

[SP-8]=-4

[SP-8]=-8

[SP-7]=-7

}

#8 {

POP

STACK  end_lbl  beg_lbl  last  first  end_lbl1  beg_lbl1  last2  first2 <CONT_HEAD>  last1  first1 <EQUATION> “for(”

[SP-2]=-7

[SP-3]=-2

[SP-6]=-4

[SP-7]=-4

[SP-8]=-4

}

#9 {

POP

STACK  end_lbl  beg_lbl  last  first  last2  first2 <CCONT_HEAD> cond end_lbl1 {#(JMP_DOWN_FALSE)#} lbl {make_lbl} rslt  last1  first1 <CONDITION2>  beg_lbl1 {#(LABEL)#} ‘;’

[SP-8]=-2

[SP-8]=-10

[SP-4]=-11

[SP-5]=-8

[SP-14]=-2

[SP-6]=-5

[SP-2]=-15

}

#10 {

POP

STACK  last  first ‘)’  last1  first1 <CONDITION3> ‘;’

[SP-2]=-3

[SP-3]=-3

}

#11 {

POP

STACK rslt  1op last  first dest  2op 1op1{#(>)#} {new_cell} cell  last1  first1 {new_cell} #CONST <CONSTANT> ‘>’

[SP-4]=-8

[SP-5]=-8

[SP-9]=-5

[SP-1]=-9

[SP-6]=5

[SP-6]=9

}

#12 {

POP

STACK  last  first ‘{’  last1  first1 <DEF_VAR>

[SP-2]=-3

[SP-3]=-3

}

#13 {

POP

STACK  last  first  last2  first2 <CONTINUE> last1  first1 <VAR>

[SP-1]=-5

[SP-2]=-2

[SP-5]=-2

}

#14 {

POP

STACK  last  first  last2  first2 <CONT_VAR> last1  first1 <DEFINE_CONSTANT>

[SP-1]=-5

[SP-2]=-2

[SP-5]=-2

}

#15 {

POP

STACK  last  first  last2  first2 <C_L_I_I>  name  last1  first1 {new_int} #NAME <IDENTIFICATOR>

[SP-1]=-4

[SP-4]=-3

[SP-8]=-2

[SP-3]=-4

}

#16 {

POP

STACK  last  first  last2  first2 <C_L_I_F>  name  last1  first1 {new_float} #NAME <IDENTIFICATOR>

[SP-1]=-4

[SP-4]=-3

[SP-8]=-2

[SP-3]=-4

}

#17 {

POP

STACK  last  first  last1  first1 <BLOCK>

[SP-1]=-2

[SP-2]=-2

}

#18 {

POP

STACK ‘}’  last  first  last2  first2 <CONT_BODY>  last1  first1 <START>

[SP-1]=-5

[SP-2]=-2

[SP-5]=-2

}

#19 {

POP

STACK  last  first ‘;’  last1  first1 <EQUATION>

[SP-1]=-3

[SP-2]=-3

}

#20 {

POP

STACK  last  first  last1  first1 <FOR>

[SP-1]=-2

[SP-2]=-2

}

#21 {

POP

STACK  last  first  dest  source {#(=)#}  rslt  last1  first1 <R_EQUATION> ‘=’  #ID <IDENTIFICATOR>

[SP-4]=-6

[SP-6]=-2

[SP-1]=-8

[SP-5]=-6

}

#22 {

POP

STACK  rslt  last  first  rslt1  1op  last1  first1 <CONT_R_EQUATION>  #ID <IDENTIFICATOR>

[SP-3]=-4

[SP-1]=-4

[SP-4]=-4

[SP-6]=-3

}

#23 {

POP

STACK  rslt  last  first  rslt1  1op  last1  first1 <CONT_R_EQUATION>  #CONST <CONSTANT>

[SP-3]=-4

[SP-1]=-4

[SP-4]=-4

[SP-6]=-3

}

#24 {

POP

STACK  last  first ‘;’  end_lbl1 {#(LABEL)#}  beg_lbl1 {#(JMP_UP)#}  last2  first2 <BLOCK>  end_lbl  beg_lbl  last1  first1 <HEAD> lbl {make_lbl}

[SP-1]=-4

[SP-1]=-10

[SP-3]=-12

[SP-6]=-7

[SP-4]=-4

[SP-9]=-7

}

#25 {

POP

STACK rslt  last  first rslt1  1op  last1  first1 <CONT_COND2> #ID <IDENTIFICATOR>

[SP-3]=-4

[SP-4]=-4

[SP-1]=-4

[SP-3]=-3

}

#26 {

POP

STACK  last  first ‘;’  last1  first1 <EQUATION>

[SP-1]=-3

[SP-2]=-3

}

#27 {

POP

STACK ‘}’  last  first  last1  first1 <BODY>

[SP-1]=-2

[SP-2]=-2

}

#28 {

POP

STACK  last  first  last1  first1 <VAR>

[SP-1]=-2

[SP-2]=-2

}

#29 {

POP

STACK  last  first ‘{’  last1  first1

[SP]=-1

}

#30 {

POP

STACK  last  first

[SP]=-1

}

#31 {

POP

STACK  last  first

[SP]=-1

}

#32 {

POP

STACK  last  first

[SP]=-1

}

#33 {

POP

STACK  last  first

[SP]=-1

}

#34 {

POP

STACK ‘}’  last  first

[SP]=-1

}

#35 {

POP

STACK  rslt  1op  last  first

[SP]=-1

[SP-2]=-1

}

# 36 {

POP

}

Соседние файлы в папке ARVIN
  • #
    01.05.20141.09 Mб8KURS-ARV.DOC
  • #
    01.05.2014776.53 Кб5TRY.BMP
  • #
    01.05.20142.16 Кб4ZZZ.BAK
  • #
    01.05.20141.37 Кб4ZZZ.GRM
  • #
    01.05.201411.11 Кб5ZZZ.TFN
  • #
    01.05.20142.16 Кб4ZZZ.TGR