Details for Friday Morning



Morning Lecture

  What is an interpreter, compiler? 
  
    ;; interpreter : exp -> value
    ;; compiler : exp[scheme] -> exp[low-level language]

  If we also add lists of definitions, we need 

    ;; interpreter : exp list-of-defs -> value
   

Morning Lab:

   Implement the Scheme evaluator
   Add cond0 to the interpreted expression language: 
   exp = 
     (cond0
       (exp exp)
       (else exp))

   (cond0 (0 exp1) (else exp2)) = exp1
   (cond0 (n exp1) (else exp2)) = exp2    if n is not 0