-------------------------------------------------------------------------- Software Design and Development Fall 1994 COM1205 Karl Lieberherr --------------------------------------------------------------------------- Midterm SOLUTIONS YOUR NAME: Question 1: ================================================== UNKNOWN1 =VarExp UNKNOWN2 =VarExp UNKNOWN3 =DemIdent UNKNOWN4 =AppExp UNKNOWN5 =( UNKNOWN6 =(lambda UNKNOWN7 =PList UNKNOWN8 =(set! UNKNOWN9 =stack UNKNOWN10 =( UNKNOWN11 =rator UNKNOWN12 =a UNKNOWN13 =rator UNKNOWN14 =f UNKNOWN15 =a UNKNOWN16 =f UNKNOWN17 =a UNKNOWN18 =plus UNKNOWN19 =Exp_List UNKNOWN20 =b UNKNOWN21 =3 UNKNOWN22 =100 UNKNOWN23 =10 UNKNOWN24 =lambda UNKNOWN25 =lambda UNKNOWN26 =lambda UNKNOWN27 =(if Question 2: ================================================== UNKNOWN1 = Expression UNKNOWN2 = Free UNKNOWN3 = formal UNKNOWN4 = boundVars UNKNOWN5 = VarExp UNKNOWN6 = VarExp UNKNOWN7 = AppExp UNKNOWN8 = VarExp UNKNOWN9 = this->get_exps()->driver() UNKNOWN10 =while UNKNOWN11 =Nothing UNKNOWN12 =VarExp UNKNOWN13 =contains UNKNOWN14 =AppExp UNKNOWN15 =get_rator UNKNOWN16 =get_rand UNKNOWN17 =get_body UNKNOWN18 =boundVars UNKNOWN19 =this->get_lvalue()->findFreeVars_(return_val,boundVars) UNKNOWN20 =if(this->get_falseExp()!=NULL) (or if (falseExp)) Question 3: ================================================== UNKNOWN1 = SchemeProgram *to* IfExp UNKNOWN2 = IfExp *prefix* (@ cout << this; @) UNKNOWN3 = SchemeProgram *through* -> *,formal,* *to* Variable or UNKNOWN3 = SchemeProgram *via* ProcExp *through* -> *,formal,* *to* Variable UNKNOWN4 = Variable *prefix* (@ cout << this ; @) UNKNOWN5 = ProcExp UNKNOWN6 = ProcExp UNKNOWN7 = ProcExp UNKNOWN8 = AssignExp UNKNOWN9 = AssignExp UNKNOWN10 =SchemeProgram *to* IfExp UNKNOWN11 =IfExp *prefix* (@ this -> set_falseExp(NULL); @)