質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

Q&A

解決済

7回答

3271閲覧

スタックにおける「POP」という名前の由来は? そもそも「POP」というのは、正式には英語でなんというのでしょうか?

mr0237

総合スコア164

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

0グッド

0クリップ

投稿2019/07/12 11:30

データ構造におけるスタックにおいて
スタックからデータを取り出すことを「POP」と呼びますが、そのスタックにおける「POP」という名前の由来は何なんでしょうか?

取り出すというのは英語では「Take out」といいますが、なぜ「POP」という名前になったのでしょうか?

そもそも「POP」というのは、正式には英語でなんというのでしょうか?

回答のほうよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答7

0

POP

まあ、引っ張り出す、という意味合いなんでしょうねえ
正式には、POPといってますねー

投稿2019/07/12 11:48

y_waiwai

総合スコア88163

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

英和辞典より
pop は「自動詞」です。したがって「飛びだす」「急に動く」が本来の意味ですが、コンピューター用語では、LIFO(Last in First out) 後入れ先立しデータ構造から先頭要素を取り出すの意味で「他動詞」として使います。

蛇足
英語版のスタックの解説には、歴史が掲載されていて興味深いです。

  • サブルーチンを考えたのは Konrad Zuse

コールの戻りアドレスをスタックに積むことだと思われます。
チューリングはサブルーチンのcall/returnを、burry/unburry と言っていた。

  • 式の評価にスタックを使うアイデアはドイツとオーストラリアで考案された

ミュンヘン工科大学 Klaus Samelson、Friedrich L. Bauer
サウスウェールズ工科大学 Charles Leonard Hamblin
逆ポーランド記法の評価だと思われます。

英英辞典より 追記(2019-07-14)
英英辞典(Merriam-Webster)を調べると他動詞の用法がありました。(ポンと音を立てる、飛び出す、泡が弾ける、といったイメージのようです)

  • 他動詞

鋭く突く、急に突き出す、ポンと弾けさせる、発射する、音をたてて開ける、錠剤を常用する、など。

  • 自動詞

急に行く、来る(pop up)。鋭い音をたてる。(目が)飛び出す。短銃が撃つ、など。

スタックの例え
スタックのたとえでよく用いられるのが、カフェテリアに備え付けられた、底にばねのついた皿収容器です。皿は上からしか入れられず、取り出すのも上からです。私は見たことがありませんが。

投稿2019/07/12 17:01

編集2019/07/13 21:01
xebme

総合スコア1109

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

押し込んだ(PUSH)物が、ポコンと出てくる(POP)と言うことでしょう。

アセンブラの場合、x86系はPUSH/POPですが、他にPUSH/PULLというCPUもありした。

投稿2019/07/12 15:00

otn

総合スコア86295

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

push は押し込む、pop は飛び出させるです。
↓のイメージですね。

C# Program to Implement Stack with Push and Pop operations

投稿2019/07/12 15:31

Zuishin

総合スコア28673

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

queueの場合でもpush/popという言葉は変わりません。ただ、英単語として「取り出す」という意味があるようではないですし、語源はわかりません。

ついでにメールプロトコルにもPOPと略すものがありますが、多分関係ないです。

投稿2019/07/12 15:22

HogeAnimalLover

総合スコア4853

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pepperleaf

2019/07/14 00:51

Mailの POP --> Post Office Protocol
guest

0

pop up らししいですよ。
積むのは push down ですね。
http://www.cc.kyoto-su.ac.jp/~yamada/ap/stack.html
--- 追記 ---
他の方の回答にもあるようにアセンブラにおける命令に
同様のものがありますが
http://ings.sakura.ne.jp/prog/asm4.html
どちらが本来のものかといわれると、
ちょっと判断に迷いますね。

投稿2019/07/12 11:49

編集2019/07/12 11:54
takasima20

総合スコア7468

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

PUSH/POP はどちらもそのままかと。

と言うより、アセンブラの命令では、そのまま、 Push/Pop ですね。
(実際には、CPUによって、異なる引数が付く)

まあ、Push down, Pop up あたりでしょうか。

[追記]
スタックに積むと言いますが、積まれれば、下のは下がる。(押し込まれる -- push down)
上を除けば、下は上がる。 (持ちあがる -- pop up)
辺りか?

投稿2019/07/12 11:47

編集2019/07/12 12:00
pepperleaf

総合スコア6385

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問