Pourquoi mettre quelque chose sur la pile s'appelle "push"?


22

Selon http://dictionary.reference.com

pousser

verbe (utilisé avec l'objet)

  1. appuyer sur ou contre (une chose) avec force pour l'éloigner.

  2. se déplacer (quelque chose) d'une manière spécifiée en exerçant une force; pousser; conduire: pour pousser quelque chose de côté; pour ouvrir la porte .

  3. effectuer ou accomplir en repoussant les obstacles: se frayer un chemin dans la foule.

  4. faire étendre ou projeter; poussée.

  5. pour pousser ou inciter à une action ou à un cours: sa mère l'a poussé à trouver un emploi.

Cet IMO s'adapte aux files d'attente FIFO . Y a-t-il une explication à cela?


2
Eh bien ... en Israël, l'analogie était pour un magazine sur les armes à feu, car vous devez POUSSER les balles ... mais je pense que j'aime mieux le distributeur pez.
GY

@GY - LOL - Je suis venu ici pour dire exactement cela (la chose Pez). CONNARD! La culture intéressante là-bas en Israël cependant ...
Edward Strange

Je suppose que si seulement pour aujourd'hui je suis FGITW!
Scott C Wilson

1
Cette question a été posée et répondue sur stackoverflow - stackoverflow.com/questions/420315/stacks-why-push-and-pop . Push et pop sont tous deux discutés.
Bratch

Nécessite une balise "historique".
Bratch

Réponses:


47

Selon la légende, la pile d'origine a reçu son nom par analogie avec les piles de plats dans la cafétéria de l'université: vous en mettez un sur le dessus, et la pile de plats (à ressort) descend un peu, vous en prenez un et il saute un peu. Par conséquent, «pousser» a reçu une connotation de fonctionnement vers le bas, même si vous n'appuyez pas réellement sur la plaque - vous la posez simplement et la gravité fait le travail. "Pile de refoulement" est toujours une expression courante, et les piles ont tendance à croître vers le bas en mémoire (c'est-à-dire avec des adresses mémoire décroissantes), bien qu'il soit douteux que cela ait quelque chose à voir avec les piles de plats ou non.


1
Le pushdown peut provenir des Pushdown Automata.
Odé

11
@Oded Je suis sûr que c'est l'inverse. Un automate pushdown est un automate fini augmenté d'une pile pushdown.
Konrad Rudolph

Et vous savez qu'un pauvre idiot apprend que, parce que le PC compte "en hausse", les adresses de mémoire inférieures sont en bas.
Philip

J'avais l'impression que l'origine était liée à ces pics de documents. Vous savez, un clou tenu verticalement sur lequel vous poussez des bouts de papier
Ian

44

Pensez à un distributeur Pez . C'est votre modèle mental pour une pile - dernier entré, premier sorti. L'ajout d'un élément à une pile nécessite donc de pousser les éléments existants pour faire de la place.

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


2
mmmmmm ... Pez !!!
Steven A. Lowe

1
J'allais suggérer le modèle d'un magazine de munitions, mais le distributeur Pez est une image mentale beaucoup plus familiale. +1 et j'aimerais pouvoir voter davantage.
KeithS

Je suis tenté de -1 pour bonjour minou, mais ça ne ferait pas la réponse et l'analogie justice. Donc +1 de moi.
0xC0000022L

et voici comment vous expliquez "Stack" à un enfant :)
Chani

StackOverflow serait lorsque vous essayez de le remplir avec un paquet entier de Pez, et le tout se détache de vos doigts avant de le mettre de sorte qu'il se propage partout.
admiration

3

FIFO est une file d'attente - le premier ajouté au groupe est le premier servi.

LIFO est une pile - comme un tas de plateaux. Vous prenez toujours celui du haut de la pile.

Le terme push est utilisé lors de l'ajout d'un article au LIFO / Stack, car dans certaines cafétérias, la pile de plateaux se trouve sur une surface à ressort. À mesure que davantage d'éléments sont poussés sur la pile, la pile entière descend plus bas.

Lorsque l'élément supérieur / le plus récent est supprimé de la pile, celui du haut est "sauté" du haut de la pile.


La pile d'assiettes dans une cafétéria est souvent utilisée pour illustrer le fonctionnement d'une structure de données de pile, mais avez-vous des preuves que c'est de là que vient la terminologie?
Caleb

@Caleb, TAOCP Volume 1 (p. 237 dans la deuxième édition) implique qu'il le fait, mais ne donne pas de citation. La page précédente explique comment les termes «pile» et «file d'attente» «deviennent progressivement une terminologie standard», ce qui peut donc être la première référence potentielle.
mpdonadio

3

Les illustrations utilisant des assiettes ou des plateaux de cafétéria, des distributeurs de pez et des piles de livres sont toutes venues plus tard. De Wikipédia: (avec références)

"La pile a été proposée pour la première fois en 1946, dans la conception informatique d'Alan M. Turing (qui a utilisé les termes" enterrer "et" unbury ") comme moyen d'appeler et de revenir des sous-routines." Des travaux supplémentaires et des brevets par d'autres ont suivi en 1957. Les illustrations actuelles des piles que nous utilisons aujourd'hui ont peut-être fait évoluer les termes originaux de Turing et Unbury de Turing en push and pop. Peut-être que ces termes sonnent mieux.

Trouver exactement où ou quand cela s'est produit est la réponse à la question du PO. Peut-être que la réponse est enterrée dans l'une des références Wikipedia comme " Verfahren zur automatischen Verarbeitung von kodierten Daten und Rechenmaschine zur Ausübung des Verfahrens ."

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.