Lecture 9B: Explicit-Control Evaluator
https://youtu.be/Z8-qWEEwTCk
text ยง 5.4
whoa lookit that hat!!
we've looked at the magic of building new languages
/ \ | escher digital query | | pict logic | \ / L I S P
q: "what is lisp good for?"
a: "nothing in particular."
lisp is good at constructing the right language for the
problem at hand
so what's lisp based on?
the metacircular evaluator
well what does that mean?
"for our final piece of magic, we're going to make all the
magic go away"
( woooOOOOoooOOOOooOOOO :)
we can build it on the register machine
we already have all the ingredients
i <3 the happy lisp user
the machine has seven registers:
- exp
- env
- fun
- argl
- continue
- val
- unev
the evaluator does a case analysis on the types of expressions
THE EVAL/APPLY CYCLE
–> break
this is the first time ive seen a prepped blackboard
LMAOOOO the execution unit!!! im dyingggg
this is hella cool
shouts out to our primitive operator!! slay queen!!
–> break
THE EVAL/APPLY CYCLE
no accumulated state–when an expression is reduced, there is nothing
on the stack even though it might be in the middle of a function
–> break
look at a recursive procedure (in execution! not just definition)
tail recursion comes from apply being very careful about what it needs
next time
ok let's stop!