title: Is a stack necessary?
body: <p>My limited understanding of the stack/heap is that reference types are put onto the heap (dynamically allocated), and value types are put on the stack.</p>
  
  <p>Theoretically (as in a theoretical machine, compiler, programming language), is the stack a necessity? Couldn't all memory be placed onto the heap? </p>