Exam 2 

Previously done:  One E&C problem.

Evening parts  October 27, 7:00-9:30 PM

Coverage:
   Lectures 8-26
   HW 7-16
   Reading assignments through session 25
   
   Written part:  Closed book and notes. 
   Computer part: The usual references are allowed.
   
Possible topics:
	programming with lists (and nested lists)
	grammars and derivations
	s-lists
	procedural abstraction including list-recur, sn-list-recur, bt-recur, or a new recursion pattern
	curried procedures
	define, set!, set-cdr!, set-car!, and vector-set! (in code, and in your interpreted language)
	persistent data and creating procedures that behave like objects
	case-lambda 
	free and bound occurrences of variables
	lexical address (lexical depth and lexical position)
	know the difference between syntactic extension and procedure definition
	define-syntax (and the difference between syntactic extension and procedure definition)
	abstract data types: interface, representation, implementation
	representation-independent interfaces
	define-datatype
	parse and unparse
	environment and closure diagrams (on earlier in-class part of the exam.  I may give you my solution to that problem and ask a question about it)
	environment ADT and our various representations/implementations
	make simple modifications to your interpreter:  Add something new to the interpreted language.
	memoization   
    multiple-value returns  
    CPS - both continuation representations
	interpreter with letrec and named let.  Know the three main approaches to letrec implementation that we discussed in class.
	interpreter with define and set!