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!

Author: jordyn

Created: 2021-02-15 Mon 16:09