Pass 1: Use Syntactic Derivation to Generate Semantic Rules
X := Y
Derivation Syntax Rules Semantic Rules
s1 R3: s1 -> i2:=e3 code(s1) = code(e3)
COPY AX,M(e3)
COPY M(i2),AX
i2 := e3 R1: i2 -> X M(i2) = X
X := e3 R2: e3 -> i4 M(e3) = M(i4)
code(e3) = //nothing//
X := i4 R1: i4 -> Y M(i4) = Y
X := Y
Pass 2: Now use Semantic Rules to Generate Code
code(s1) = code (e3) BY R3
COPY AX,M(e3)
COPY M(i2), AX
code(s1) = code (e3) BY R1
COPY AX,M(e3)
COPY X, AX
code(s1) = //nothing// BY R2
COPY AX,M(i4)
COPY X, AX
code(s1) = COPY AX,Y BY R1
COPY X, AX