Dlaczego umieszczanie czegoś na stosie nazywa się „push”?

22

Według http://dictionary.reference.com

Pchać

czasownik (używany z obiektem)

  1. naciskać na rzecz (coś) siłą, aby ją odsunąć.

  2. poruszać się (czymś) w określony sposób, wywierając siłę; pchnięcie; dysk: odepchnąć coś na bok; popchnąć drzwi .

  3. odepchnąć przeszkody na bok lub zrobić to: przepchnąć się przez tłum.

  4. powodować przedłużenie lub projekt; nacisk.

  5. naciskać lub nakłaniać do działania lub kursu: jego matka zmusiła go do znalezienia pracy.

To IMO pasuje do kolejek FIFO . Czy jest na to wyjaśnienie?

dok
źródło
2
Cóż ... w Izraelu analogia dotyczyła magazynka z bronią, ponieważ musisz wcisnąć kule ... ale myślę, że bardziej podoba mi się dozownik pez.
GY
@GY - LOL - Przyszedłem tutaj, aby powiedzieć dokładnie to (sprawa Peza). DRAŃ! Ciekawa kultura tam w Izraelu ...
Edward Strange
Chyba tylko na dziś jestem FGITW!
Scott C Wilson
1
To pytanie zostało zadane i udzielono odpowiedzi na stackoverflow - stackoverflow.com/questions/420315/stacks-why-push-and-pop . Push i pop są omawiane.
Bratch
Wymaga tagu „historia”.
Bratch

Odpowiedzi:

47

Zgodnie z legendą oryginalny stos otrzymał swoją nazwę przez analogię do stosów naczyń w stołówce uniwersyteckiej: stawiasz jeden na wierzchu, a (obciążony sprężyną) stos naczyń nieco spada, zabierasz go i wyskakuje trochę w górę. Dlatego „pchanie” otrzymało konotację działania w dół, nawet jeśli tak naprawdę nie dociskasz płyty - po prostu odkładasz ją i grawitacja działa. „Stos zmniejszania” jest wciąż popularnym wyrażeniem, a stosy mają tendencję do zmniejszania się w pamięci (tj. Wraz ze zmniejszaniem adresów pamięci), chociaż wątpliwe jest, czy ma to coś wspólnego ze stosami naczyń, czy nie.

Kilian Foth
źródło
1
Pushdown może pochodzić z Pushdown Automata.
Oded
11
@Oded Jestem pewien, że jest odwrotnie. Automat odpychający jest automatem skończonym powiększonym o stos odpychający.
Konrad Rudolph
I wiesz, że jakiś biedny głupiec dowiaduje się, że ponieważ komputer liczy „w górę”, niższe adresy pamięci znajdują się na dole.
Philip
Miałem wrażenie, że pochodzenie miało coś wspólnego z tymi skokami dokumentów. Wiesz, gwóźdź trzymany pionowo, na który naciskasz kawałki papieru
Ian
44

Pomyśl o dozowniku Pez . To twój model mentalny stosu - ostatni wchodzi, pierwszy wychodzi. Tak więc dodanie przedmiotu do stosu wymaga zepchnięcia istniejących przedmiotów, aby zrobić miejsce.

http://i.stack.imgur.com/VJkYi.jpg

Scott C. Wilson
źródło
2
mmmmmm ... Pez !!!
Steven A. Lowe
1
Chciałem zasugerować model magazynu amunicji, ale dozownik Pez jest znacznie bardziej przyjaznym dla rodziny obrazem umysłu. +1 i chciałbym móc głosować więcej.
KeithS
Kusi mnie do -1 za hello kitty, ale to nie dałoby odpowiedzi i analogii sprawiedliwości. Więc +1 ode mnie.
0xC0000022L
i tak tłumaczysz dziecku „Stack” :)
Chani
StackOverflow miałby miejsce, gdy spróbujesz napełnić go całą paczką Pez, a cała rzecz wyskoczy z palców przed włożeniem, aby rozprzestrzeniała się po całym miejscu.
awe
3

FIFO to kolejka - pierwsza dodana do grupy jest pierwszą obsługiwaną.

LIFO to stos - jak wiązka tac. Zawsze bierzesz ten z wierzchu stosu.

Termin „ push” jest używany podczas dodawania elementu do LIFO / Stack, ponieważ w niektórych stołówkach stos tac znajduje się na sprężynowej powierzchni. W miarę jak więcej przedmiotów jest wypychanych na stos, cały stos tonie niżej.

Kiedy górny / najnowszy element jest usuwany ze stosu, górny jest „wyskakiwany” ze stosu.

mhoran_psprep
źródło
Stos talerzy w stołówce jest często używany do zilustrowania działania struktury danych stosu, ale czy masz jakieś dowody, że stąd pochodzi terminologia?
Caleb
@Caleb, TAOCP Tom 1 (s. 237 w drugim wydaniu) sugeruje, że tak, ale nie podaje cytatu. Poprzednia strona mówi o tym, jak terminy „stos” i „kolejka” stają się „stopniowo standardową terminologią”, więc może to być najwcześniejszy potencjalny odnośnik.
mpdonadio
3

Ilustracje przedstawiające talerze lub tace stołówkowe, dozowniki do pezów i stosy książek pojawiły się później. Z Wikipedii: (z odniesieniami)

„Stos został po raz pierwszy zaproponowany w 1946 roku, w projekcie komputerowym Alana M. Turinga (który używał terminów„ zakopać ”i„ unbury ”) jako sposobu wywoływania i powrotu z podprogramów”. W 1957 r. Pojawiły się dodatkowe prace i patenty innych. Obecne ilustracje stosów, których używamy dzisiaj, mogły spowodować, że pierwotne warunki pochówku i unbury Turinga przekształciły się w popychanie i pop. Może te warunki brzmią lepiej.

Ustalenie, gdzie dokładnie i kiedy to się wydarzyło, jest odpowiedzią na pytanie PO. Być może odpowiedź jest ukryta w jednym z odniesień Wikipedii, takich jak „ Verfahren zur automatischen Verarbeitung von kodierten Daten und Rechenmaschine zur Ausübung des Verfahrens ”.

Bratch
źródło