Stack Frame
Call a function, push a box onto the stack. Inside the box: your locals, the return address, the arguments. Function returns, the box pops off, memory reclaimed for free — no allocator involved.
call f() call g() from inside f()
┌──────┐ ┌──────┐
│ f │ │ g │ ← new frame on top
└──────┘ ├──────┤
│ f │
└──────┘