r |- e1 eval false r |- e2 eval v ------------------------------------------ r |- (e1 and e2) eval false r |- e1 eval true r |- e2 eval v ------------------------------------------ r |- (e1 and e2) eval v
if e1 then e2 else false
AR of AR of the block caller of p p where p is declared ^ ------------------ ^ CL |___|_ | | +-->| | | | ------------------ | | | _|______| SL | | | | ------------------ | | ----- |<-+---+---+---+ | | x | 1 | | | | | | | | -------- | | | | | | | b | true | | | | | | | | -------- | | | | | CL | ------------------ | | | | | | | | | | q I | | | | | ------------------ | | | | |___|_ | | | | | +-->| | | | | | | ------------------ | | | | | | _|__|SL | | | | | | | | | | ------------------ | | | | | ----- | | | | | | x | 2 | | | | | | | ----- | | | | CL | ------------------ | | | | | | | | r I | | | | ------------------ | | | |___|_ | | | | +-->| | | | | | ------------------ | | | | | _|______|SL | | | | | | | | ------------------ | | | | --------- | | | | | b | false | | | | | | --------- | | | CL | ------------------ | | | | | | q II | | | ------------------ | | |___|_ | | | +-->| | | | | ------------------ | | | | _|__________|SL | | | | | | ------------------ | | | ----- | | | | x | 0 | | | | | ----- | | | ------------------ | | | | r II | | ------------------ | |___|_ | | | | | ------------------ | | _|______________|SL | | ------------------ | -------- | | b | true | | | -------- | ------------------ CL = Control Link SL = Static Link