I was wondering why we use the terms ‘push’ and ‘pop’ for adding/removing items from stacks? Is there some physical metaphor that caused those terms to be common?
The only suggestion I have is something like a spring-loaded magazine for a handgun, where rounds are ‘pushed’ into it and can be ‘popped’ out, but that seems a little unlikely.
A second stack trivia question: Why do most CPUs implement the call stack as growing downwards in memory, rather than upwards?
I believe the spring loaded stack of plates is correct, as the source for the term PUSH and POP.
In particular, the East Campus Commons Cafeteria at MIT had spring loaded stacks of plates in the 1957-1967 time frame. The terms PUSH and POP would have been in use by the Tech Model Railroad Club. I think this is the origin.
The Tech Model Railroad Club definitely influenced the design of the Digital Equipment Corporation’s (DEC) PDP-6. The PDP-6 was one of the first machines to have stack oriented instructions in the hardware. The instructions were PUSH, POP, PUSHJ, POPJ.
http://ed-thelen.org/comp-hist/pdp-6.html#Special%20Features