In Fig. 6.47(a) is the outline of a program, and Fig. 6.47(b) sketches the structure of the generated three-address code, using the backpatching translation of Fig. 6.46. Here, i x through i 8 are the labels of the generated instructions that begin each of the "Code" sections. When we implement this translation, we maintain, for each boolean expression E, two lists of places in the code for E, which we denote by E.true and E.false. The places on list E.true are those places where we eventually put the label of the statement to which control must flow whenever E is true; E.false similarly lists the places where we put the label that control flows to when E is found to be false. Also, we maintain for each statement S, a list of places where we must put the label to which control flows when S is finished. Give the value (one of h through i8) that eventually replaces each place on each of the following lists:(a) Ez.false (b) S2 .next (c) EA .false (d) Si.next (e) E2 .true
Fig. 6.47(a)
Fig. 6.47(b)
Fig. 6.46
Already registered? Login
Not Account? Sign up
Enter your email address to reset your password
Back to Login? Click here