http://www.perlmonks.org?node_id=613250


in reply to Why are "push", "pop", "shift" and "unshift" so named?

While it seems that "push" and "pop" are already in the dictionary of computer terms, my preference is to use "push" and "pull". One computer I worked on had these terms and it was easy to understand (besides they were both 4 letter words). The current terms appear to have been popularized from pdp-10 (-6) usage, as that is how DEC documented them. The "dish stack" in a cafeteria that was spring loaded, usually had two stacks of dishes (the device was about 12 inches by 24 inches and had rollers). In addition the stacker could have been plugged in to heat the plates to a reasonable (non-burning) temperature (why they had two stacks). Nowdays some pharmacy's have spring loaded displays for box packaged things. Unfortunately these don't rotate the stock too well, so if the stock becomes close to depleted, you might get stale product. The whole analogy is to appear to have only ONE item visible to the "consumer".

Stacks as implemented in computer hardware work in various ways. I've seen them grow by increasing addresses, and by decreasing addresses (big-endian/little-endian). Since they rarely diverge from the host hardware, it makes little difference. As far as things go, devices like "stacks", "queues", and "lists" are pretty general, and typically the subject of a first course in programming. What to call the "operators" on these devices is what one might call a "local option". They do vary, but there are a few common names.