Many programming language runtime environments use stacks as their primary storage structure (e.g. see JVM bytecode to runtime example).
Quickly recalling I see following advantages:
- Simple structure (pop/push), trivial to implement
- Most processors are anyway optimized for stack operations, so it is very fast
- Less problems with memory fragmentation, it is always about moving memory-pointer up and down for allocation and freeing complete blocks of memory by resetting the pointer to the last entry offset.
Is the list complete or did I miss something? Are there programming language runtime environments which are not using stacks for storage at all?
Just decided to include a link to one of the most insightful developers alive (and active), the architect of hotspot JVM:
http://www.azulsystems.com/blog/cliff-click/2010-04-21-un-bear-able