实现编译

int a,b=5,c=4;

int d,e;

a=5;

a=a+b*c+100;

d=a+b;

 

 产生式如下

 

Statement->st{st}    //声明变量

st->int st1{,st1} ;

st1->i{=i};

 

 

Body->S{S}           //主体赋值表达式

S->i=E;

E->T{+T}

T->i{*T}

Code->{ Statement} Body   //

 

将代码" int a , b = 5 , c = 4 ; int d , e ; a = 5 ; a = a + b * c + 100 ; d = a + b ; ; ";

编译为"variable:a ; variable:b ; b=5; variable:c ; c=4; variable:d ; variable:e ; a=5; T0=b*c; T1=a+T0; T2=T1+100; a=T2; T3=a+b; d=T3; "

 

Code

 

 

 

 

 

 

 


 

 

 

 

posted on 2008-12-13 23:02  feathersky  阅读(475)  评论(0编辑  收藏  举报