stuck
「stuck」の基本的な意味
「stuck」は、英語の動詞「stick」の過去分詞形であり、主に「動けなくなった」「詰まった」「固定された」などの意味を持つ。また、状況や問題に対して進展がないことを表す際にも用いられる。例えば、「I'm stuck in traffic.」は「交通渋滞で動けなくなっている」という意味になる。「stuck」の語源
「stuck」の語源は、古英語の「stician」であり、「突き刺す」「固定する」などの意味を持つ。中世英語では「stikken」に変化し、現代英語では「stick」となっている。過去分詞形の「stuck」は、この「stick」から派生している。「stuck」の発音・読み方
「stuck」の発音は、/stʌk/である。日本語での読み方は「スタック」となる。発音に注意する点として、子音「s」と「t」が連続しているため、発音しやすいように短く切ることが重要である。「stuck」の活用一覧
「stick」の活用は次の通りである。現在形は「stick」、過去形は「stuck」、過去分詞形も「stuck」である。また、三人称単数現在形は「sticks」、現在分詞形は「sticking」となる。「stuck」を含む英熟語・英語表現
「I am stuck with you」とは
「I am stuck with you」は、「あなたと一緒にいることから逃れられない」という意味である。この表現は、相手との関係が避けられない状況を示す際に使用される。「get stuck」とは
「get stuck」は、「動けなくなる」「詰まる」などの意味を持つ。例えば、「I got stuck in the mud.」は、「泥に足が取られて動けなくなった」という意味になる。「stuck on me」とは
「stuck on me」は、「私に夢中になっている」という意味である。この表現は、相手が自分に強く惹かれていることを示す際に使用される。「still stuck」とは
「still stuck」は、「まだ動けない状態にある」という意味である。この表現は、状況が変わらずに困難な状態が続いていることを示す際に使用される。「stuck」の使い方・例文
1. I'm stuck in a meeting.(会議で動けなくなっている)2. The key is stuck in the lock.(鍵が錠前に詰まってしまった)
3. She's stuck in a dead-end job.(彼女は行き詰まった仕事に就いている)
4. The car got stuck in the snow.(車が雪に埋まって動けなくなった)
5. I'm stuck on this math problem.(この数学の問題で詰まっている)
6. The door is stuck and won't open.(ドアが開かない状態になっている)
7. He's stuck in the past.(彼は過去に囚われている)
8. The train was stuck for hours due to a power outage.(停電のため、電車は何時間も止まっていた)
9. The elevator is stuck between the floors.(エレベーターが階の間で止まってしまった)
10. I'm stuck at the airport because of the storm.(嵐のせいで空港で足止めを食らっている)
スタック
「スタック」とは、堆積・山・大量のことを意味する表現。
「スタック」とは・「スタック」の意味
「スタック」とは、堆積・山などを意味する言葉であるが、使われるシーンによって意味合いが変わってくる。ゲームの分野でも「スタック」という言葉がよく使われている。ネトゲにおいては、「アイテムをまとめておくこと」を「スタック」と表現する。これは、「スタック」に「積み重ねる」という意味があるためだ。FPSでは、同じ場所に固まって集まることを「スタック」と言う。地形などにはまってしまい動けなくなることを「スタック」と表現することもあるが、これは英語の「stuck」からきている。堆積・山などを意味する「スタック」は英語の「stack」、身動きが取れなくなることを意味する「スタック」は英語の「stuck」からきているという違いがある。どちらもカタカナ語では「スタック」となるため、混同されることが多い。車がぬかるみや雪にはまり、進めなくなることを「スタック」と呼ぶのも、英語の「stuck」を用いた表現である。
itや医療などビジネス分野においても、「スタック」という言葉はよく用いられる。it業界においては、最も基本となるデータ構造を「スタック」と呼ぶ。他にはシステムなどにデータを格納したり取り出したりするこを、「スタック」と呼ぶこともある。また、複数のスイッチを共有し、1つの仮想的なスイッチとして動作させる「スタック機能」というものがある。これは、便宜上「スタック機能」と呼ばれているだけで、正式名称はStackWise PlusテクノロジーもしくはStackWiseと言う。医療分野では、医療行為を行っている時、何かしらの問題で医療行為が中断してしまうことを「スタック」と表現する場合がある。
「スタック」の語源・由来
「スタック」は英語の「stack」、もしくは「stuck」に由来する言葉である。「stack」は堆積・山、「stuck」は立ち往生・行き詰まるといった意味がある。どちらもカタカナ語では「スタック」と表現されるため、使う場面には注意しなければならない。「スタック」の熟語・言い回し
スタックするとは
「スタックする」とは、「物をまとめる」「身動きが取れなくなる」ことを表現する言葉である。ゲームでは、「物をまとめる」という意味で、「集めたアイテムを倉庫にスタックする」、「アイテムを種類別にスタックしておく」というように使われる。「身動きが取れなくなる」という意味で使う場合には、「車が雪道にはまってしまいスタックしてしまった」、「ゲームをプレイしている時にバグが発生しキャラがスタックした」などと表現される。
1スタックとは
「1スタック」とは、物を1つにまとめた時の単位として用いられる表現である。例えば、カジノでは20枚のチップをまとめたものを「1スタック」と呼ぶ。2スタックならチップ40枚、3スタックならチップ60枚となる。ゲームにおいては、同時に持てるアイテムを表現する時に「1スタック」という単位が使われる。例えばアイテム欄に特定のアイテムを10個しか入れられない場合には、「1スタック10個まで」と表現することができる。「1スタック」という単位は様々な場面で用いられるが、何個が「1スタック」になるかは場面によって変わる。
フルスタックとは
「フルスタック」とは、it分野でよく用いられる言葉だ。様々な分野の開発業務を行うことができる、幅広い知識やスキルが「フルスタック」である。IT分野に精通し、複数の開発工程を担当できる知識やスキルを持った人材を、「フルスタックエンジニア」や「フルスタック開発者」と呼ぶ。「フルスタックエンジニア」は、サーバーエンジニアやウェブプログラマーなど、本来であれば複数名で行う業務を単独でこなすことができる。
スタックしているとは
「スタックしている」とは、「物事が停滞している状態」や「お手上げ状態でどうにもならないこと」などを意味する表現である。
スタック【stack】
スタック【stuck】
スタック
スタックとは、データ構造の一つであるリストの中で、特に挿入、削除がリストの先頭からしかできないものである。このような構造は、LIFO(後入れ先出し)と呼ばれる。
スタックは、例で言えば、机上に積み上げられた本のような構造をしている。本は上に積み上げられていき、読みたい本は上から順に取っていかなければ取れないという点が、スタックと似ている。
スタックは、情報処理のさまざまな場面に欠かせないデータ構造であるといえる。プログラムがサブルーチンを実行後に呼び出し元に戻る仕組みには、スタックが使われる。サブルーチンを実行する前に、スタックに戻り先を積み上げ(PUSH)、サブルーチンが処理を終わると、戻り先、つまり次にプログラムを実行する番地を取り出す(POP)。文書編集操作の「やり直し」や「元にもどす」などもスタックを利用して実現されているのが一般的である。
スタック
抑留
【英】: pipe sticking
同義語: スタック
掘削作業中に、予期しないところで、ドリル・ストリング、ケーシング、チュービングなどが、井戸の中で動かなくなる事故のことをいう。このような事故は、掘進中、ケーシング降下中、ドリル・ストリングの揚降管中、チュービング降下中などの、坑内作業を行っているときに、以下のような原因により発生する。(1) 浸透性の高い地層に対し、坑内の泥水中圧力が地層圧よりも高いため、ドリル・ストリング、ケーシングなどが坑壁に吸い付けられる。これを差圧抑留(differential pressure sticking)という。(2) 特に傾斜井において、坑壁に形成されたキー・シートに、ドリル・ストリングやケーシングがはまり込んでしまう。(3) 坑壁の不安定により、坑径が狭くなっている部分に、各種ストリングがはまり込んでしまう。(4) 坑壁の崩壊が激しいために、ドリル・ストリングが抑留される。(5) チュービングの場合は、パッカーが外れなくなり、抑留されることがある。これらの抑留の原因は数多くあげられるが、掘削技術者はあらゆる原因を考慮して仕事を進め、抑留事故が発生したらすぐに対応策を立てられるように、いろいろな種類、サイズの採揚器を準備しておかなければならない。 |
スタック
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/01/13 10:21 UTC 版)
この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。(2015年10月) |
スタック(英: stack)は、コンピュータで用いられる基本的なデータ構造のひとつで、データを後入れ先出し(LIFO: Last In First Out; FILO: First In Last Out)の構造で保持するものである。抽象データ型としてのそれを指すこともあれば、その具象を指すこともある。
特にその具象としては、割込みやサブルーチンを支援するために極めて有用であることから、1970年代以降に新しく設計された、ある規模以上のコンピュータは、スタックポインタによるコールスタックをメモリ上に持っていることが多い。
抽象データ型
抽象データ型としてのスタックは、ノード(何らかのデータを持ち、別のノードを指し示すことができる構造)のコンテナ(データを集めて格納する抽象データ型の総称)であり、2つの基本操作プッシュ (push) とポップ (pop) を持つ。Pushは指定されたノードをスタックの先頭(トップ)に追加し、既存のノードはその下にそのまま置いておく。Popはスタックの現在のトップのノードを外してそれを返す。
よく使われる比喩として、食堂にあるバネが仕込まれた台に皿や盆を積み重ねておく様子がある。そのようなスタックでは利用者は1番上(トップ)の皿だけにアクセスすることができ、それ以外の皿は隠されている。新たに皿が追加される(Pushされる)と、その新しい皿がスタックのトップとなり、下にある皿を隠してしまう。皿をスタックから取る(Popする)と、それを使うことができ、2番目の皿がスタックのトップとなる。二つの重要な原則がこの比喩で示されている。第1は後入れ先出し (LIFO: Last In First Out) の原則である。第2はスタックの中身が隠されているという点である。トップの皿だけが見えているため、3番目の皿がどういうものかを見るには1番目と2番目の皿を取り除かなければならない。
他の操作
多くのスタック実装では「Push」と「Pop」以外の操作をサポートしている。スタックの大きさ(長さ)の取得、「現在のスタックのトップのノードを返すが、それをスタックから取り除かない」Peek操作、トップではなくn番目の参照・操作、入れ替え等も実装されることもある。その計算量は実装に依存する。ランダウの記号を使ったオーダー記法で表すと、連結リストではO(n)だが配列による実装ではO(1)、その逆、など色々な場合がある。
実装
スタックが必要とするメモリ容量はスタック長すなわち要素数nに比例するが、連結リストによる実装の場合はノード管理のためのポインタや参照といったデータを格納するための領域も必要とするため、配列による実装と比べて空間効率は劣る。個々の操作が定数時間O(1)で完了する実装は配列や連結リストを使っても簡単に実現できる。
実装の詳細については別に議論する。
関連するデータ構造
FIFO (First In First Out、先入れ先出し) の原則を持つデータ構造または抽象データ型はキューである。スタックとキューの操作を組み合わせて提供するものは両端キュー (deque) と呼ぶ。例えば、探索アルゴリズムでスタックを使うかキューを使うかによって、深さ優先探索(スタック使用)か幅優先探索(キュー使用)になる。
ハードウェア
ハードウェアによるスタックの実装法には、主に次の2つがある。
前者は、たとえばIntel 4004の「3段のスタック」がそのようなものである。後者は多くのコンピュータが持っている。以下これについて述べる。
典型的なスタック
典型的なスタックはコンピュータのメモリ上に固定の基点と可変のサイズを持つ領域である。初期状態ではスタックのサイズはゼロである。「スタックポインタ」(一般にハードウェアのレジスタが使われる)はスタック内で最も後で参照された位置を指している。スタック長がゼロのとき、スタックポインタはスタックの基点を指す。
あらゆるスタックで実施可能な2つの操作は以下の通りである。
- Push操作
- 格納したいデータのサイズのぶんだけスタックポインタをずらし、ずらした後のスタックポインタが指している場所にデータを格納する。
- Pop操作
- スタックポインタが指している現在位置にあるデータを取り出し、スタックポインタをそのデータのサイズのぶんだけ(Pushとは逆方向に)ずらす。
スタック操作の基本原則には様々なバリエーションがある。スタックは初期状態ではメモリ上の固定の位置に配置される。データがスタックに追加されると、スタックポインタはデータ追加に伴うスタックの領域拡張に従って変更される。そのときのスタックの延びていく方向は特に規則は無く、実装によってアドレスの小さくなる方向だったり、大きくなる方向だったりする。
昔のコンピュータで、ヒープ領域をアドレスの小さいほうから大きいほうへ伸ばし、スタックを大きいほうから小さいほうへ伸ばす(そのようにすると、メモリが足りない場合はどちらを伸ばす余裕もなく、完全にメモリを使い切って計算続行不可能となる)という設計にした名残りから、アドレスの大きいほうから小さいほうへ伸びるものが多いが、PA-RISCは逆である。
例えば、あるスタックが1000番地から開始して、アドレスの小さい方向に延びていくとする。その場合、データは1000番地よりも小さい番地に格納され、スタックポインタはそれに伴って小さな番地を格納するようになる。そのスタックからデータをPopすると、スタックポインタに格納されているアドレスは大きくなる。
(初期状態の)スタックポインタはスタックの基点そのものではなく、その少し上か下(スタック成長方向に依存)の限界アドレスを指している場合もある。しかし、スタックポインタは基点を超えていくことはできない。換言すれば、スタックの基点が1000番地でスタックがアドレスの小さい方向(999番地、998番地など)に成長する場合、スタックポインタは決して1000番地を超えてはならない(1001番地や1002番地は不可)。Pop操作によってスタックポインタが基点を超えると「スタック・アンダーフロー」が発生する。逆にPush操作がスタックの最大許容範囲を超えてスタックポインタを操作することになるなら「スタック・オーバーフロー」が発生する。
スタックに強く依存している環境では、追加の操作を備えている場合がある。以下に例をあげる。
- Dup (duplicate)
- トップのアイテムを pop して2回 push する。これによって元のスタックトップのアイテムが2個スタックトップに存在することになる。
- Peek
- トップのアイテムを pop するが、スタックポインタを変更せず、スタックのサイズも変化しない(つまり、アイテムはスタック上に残存する)。Top 操作と呼ぶことも多い。
- Swap または Exchange
- スタックトップの2つのアイテム(つまり1番目と2番目)を入れ替える。
- Rotate
- トップの n 個のアイテムを回転するように入れ替える。例えば、n = 3 で、スタックに 1、2、3 が順に置かれているとき、この順番を 2、3、1 のように変化させる。この操作はバリエーションが多く、一般には left rotate(左回転)とright rotate(右回転)と呼ばれる操作を備えることが多い。
スタックは上に成長するようにイメージされることもあるし、左から右に成長するようにイメージされることもあり、トップという言い方ではなく右端と言ったりもする。このようなイメージはメモリ上のスタックの実際の構造とはあまり関係ない。right rotateと言ったとき、1番目の要素を3番目の位置に置き、2番目を1番目、3番目を2番目の位置に置く。これを2種類のイメージで表すと次のようになる。
apple banana banana ===right rotate==> cucumber cucumber apple
cucumber apple banana ===left rotate==> cucumber apple banana
スタックはコンピュータ内では通常、メモリセルのブロックで構成される。そのブロックの「底」は固定の位置にあり、スタックポインタが「トップ」のセルのアドレスを格納している。「底」とか「トップ」という用語はスタックがアドレスの大きくなる方向に成長するか、小さくなる方向に成長するかに関係なく使われる。
スタックへのアイテムの push により、そのアイテムのサイズのぶんだけスタックポインタがずらされ(増減はメモリ空間内のスタックの成長方向に依存する)、次のセルを指すようにして、新たなトップとなるアイテムをスタック領域にコピーする。詳細な実装に依存するが、push 操作を完了したときのスタックポインタの値はスタック上の次の未使用領域を指しているかもしれないし、現在のトップのアイテムを指しているかもしれない。スタックポインタが現在のトップのアイテムを指している場合、次回の push のときには最初にスタックポインタをずらさなければならない。逆にスタックポインタが次の未使用領域を指しているなら、次回の push のときには最後にスタックポインタをずらすことになる。
スタックの pop 操作は push の逆となる。push とは逆の順番でスタックのトップのアイテムが取り出され、スタックポインタが更新される。
コールスタック
以上のようなスタックは、特にコールスタックに使われる。
具体例
多くのプロセッサはスタックポインタとして使用可能なレジスタを持っている。x86のようなプロセッサは専用のスタックポインタレジスタを持っている。他のPDP-11や68000ファミリなどは、アドレッシングモードによって任意のレジスタをソフトウェア的にスタックポインタとして使用できるようになっているが、普通は割込みやJSR命令が操作するR6レジスタやA7レジスタを使う。RISCの多くはそのように特別扱いされるようなレジスタを持たず、どのレジスタをスタックポインタとして使うかは通常ABIで決めており、ソフトウェアでスタック処理をおこなう。Intel 8087シリーズの数値演算コプロセッサはスタックアーキテクチャである。一部のマイクロコントローラ(例えばいくつかのPIC)は固定サイズのスタックを内蔵しており、その任意の位置に直接アクセスすることはできない。
以上のようなスタックポインタによるスタックではなく、直接ハードウェアで実現したスタックを持つコンピュータもある。
- Computer Cowboys MuP21
- Harris RTX line
- Novix NC4016
なお、以上のようなスタックがあるコンピュータをスタックマシンとするのは間違いである。詳細は後述のスタックマシンについての記述を参照すること。
ソフトウェア
この節では、抽象データ型としてのスタックのソフトウェアによる実装について述べる。
高水準言語では、スタックは配列や線形リストを使って効率的に実装可能である。LISPでは任意のリストに対して push や pop に相当する関数(consがpush、cdrがpopである)を使用可能なので、スタックを実装する必要は無い。
スタック専用のコンテナ(コレクション)型を使わず、動的配列やリストのような他のコンテナ型をスタック代わりに使うことも当然できるが、実装が隠蔽・抽象化されていたり、インデックスによるランダムアクセスや任意位置に対する要素の追加・削除のような一部の操作が制限されていたりする専用のコンテナ型をあえて使ったほうが、コードの意図が明瞭になり、メンテナンス性が向上するなどの利点がある。
ジェネリックプログラミングに対応したオブジェクト指向の静的型付け言語では、任意のデータ型T
を要素とするスタックを定義できるようになっていることも多い。C++ではStandard Template Libraryにstd::stack<T, Container>
が用意されている。std::stack
はテンプレート第2引数に内部実装コンテナを指定することができ、デフォルトでは両端キューstd::deque
が使われるが、動的配列std::vector
または双方向連結リストstd::list
を指定することも可能である[1]。実装が抽象化されていることによって、用途に応じて操作の計算量や空間効率などの特性が異なるコンテナを内部実装に使用したり、後から差し替えたりすることが容易となっている。
応用例
式評価と構文解析
逆ポーランド記法を使用している電卓(Hewlett-Packardの関数電卓など)は、値を保持するためにスタック構造を使う。式は、前置記法、中置記法、後置記法のいずれかで表現される。ある記法から別の記法への変換にはスタックが必要となる。多くのコンパイラは低レベルな言語に翻訳する前の構文解析のためにスタックを使用する。多くのプログラミング言語は文脈自由言語であり、スタックベースの機械で構文解析することができる。ちなみに自然言語は文脈依存言語であり、スタックだけではその意味を解釈することはできない。
例えば、((1 + 2) * 4) + 3 という計算は、交換法則と括弧を優先するという前提で、次のように後置記法(逆ポーランド記法)に変換できる。
1 2 + 4 * 3 +
この式はオペランドスタックを使って左から右に以下のように評価できる。
- オペランド(演算数)に遭遇したら push する。
- 演算子に遭遇したら、オペランドスタックから2つのオペランドを pop して演算を行い、
- その解を push する。
具体的には以下のようになる。「オペランドスタック」は「操作」した後の状態を示している。
入力 | 操作 | オペランドスタック |
---|---|---|
1 | オペランドをPush | 1 |
2 | オペランドをPush | 1, 2 |
+ | 加算 | 3 |
4 | オペランドをPush | 3, 4 |
* | 乗算 | 12 |
3 | オペランドをPush | 12, 3 |
+ | 加算 | 15 |
最終的な演算結果は 15 で、終了時にオペランドスタックのトップに置かれている。
探索問題の解法
探索問題を解くとき、総当り的か最適化されているかに関わらず、スタックを多大に必要とすることが多い。総当り探索の例としては、力まかせ探索やバックトラッキングがある。最適探索の例としては、分枝限定法 (branch and bound) やヒューリスティックによる解法がある。いずれのアルゴリズムでも、発見してはいるが探索していない探索ノードを覚えておくのにスタックが必要となる。スタックを使う以外の手法としては再帰を使う方法があるが、これはコンパイラが生成するコードが内部的に使用するスタックで代替しているだけである。スタックを使った探索は幅広く使われており、木構造の単純な幅優先探索や深さ優先探索から、クロスワードパズルを自動的に解くプログラムやコンピュータチェスゲームでも使われている。ある種の問題はキューなどの別のデータ構造を使って解くこともでき、探索順を変えたいときに有効である。
プログラミング言語処理系の実装
ほとんどのコンパイルされたプログラムは実行時(ランタイム)環境においてコールスタックを使用し、プロシージャ/関数呼び出しに関する情報を格納するのに使っている。そして、呼び出し時のコンテキスト切り替えや呼び出し元への復帰の際に使用して、呼び出しの入れ子を可能としている。そのとき、呼び出される側と呼び出し側の間には引数や返り値をスタックにどう格納するかという規則が存在する。スタックは関数呼び出しの入れ子や再帰呼び出しを実現するための重要な要素となっている。この種のスタックはコンパイラが内部的に使用するもので、プログラマがこれを直接操作することはほとんど無い。
コールスタック内に関数の呼び出し毎に作られるフレームをスタックフレームと言い、それをたどって(トレースして)得られる呼び出しの情報をスタックトレースと言う。
プログラミング言語によっては、プロシージャ内のローカルなデータをスタックに格納する。ローカルなデータの(スタック上の)領域はプロシージャに入ってきたときに割り当てられ、出て行くときに解放される。C言語はこのような手法で実装されている典型例である。データとプロシージャ呼び出しに同じスタックを使うことは重大なセキュリティ問題を引き起こす可能性があり、プログラマはそのようなバグを作りこんで深刻なセキュリティ問題を発生させないように気をつける必要がある。
セキュリティ
たいていの場合、プロシージャ内のローカルなデータとプロシージャ呼び出しに関する情報は共通のスタックに格納されている。つまりプログラムは、プロシージャ呼び出しのリターンアドレスという極めて重要な情報を保持しているスタックに対して、データを出したり入れたりしているのである。データをスタック上の間違った領域に書き込んだり、大きすぎるデータをスタックに書き込んだりして、リターンアドレスが壊されると、プログラムが異常動作することになる(バッファオーバーラン攻撃)。
悪意ある者がこの種の実装を逆手にとって、入力データのサイズをチェックしていないプログラムに大きすぎるデータを入力したりする。そのようなプログラムはデータをスタック上に格納しようとしてリターンアドレスを壊してしまう。攻撃者は実験を繰り返し、リターンアドレスがスタック領域内(特に攻撃者の入力データが書き込まれた領域内)を指すようになる入力データのパターンを見つけ出し、許可されていない操作をするような命令列を入力データに含ませることでセキュリティを破る。こうした攻撃に対してプログラマはスタックの扱いに注意する必要がある。
スタック指向プログラミング言語
いくつかのプログラミング言語はスタック指向である。スタック指向言語は、基本操作(二つの数の加算、一文字表示など)でスタックから引数を取ってくるようになっていて、結果をスタックに返すようになっている言語である。
たいていは複数のスタックを使うよう設計されており、典型的なForthは、引数受け渡しのためのスタックとサブルーチンのリターンアドレスのためのスタックを持つ。PostScriptはリターンスタックとオペランドスタックを持ち、グラフィックス状態スタックと辞書スタックも持っている。日本語プログラミング言語のMindもForthベースである。
スタックマシン
機械語命令の体系がスタック指向プログラミング言語に類似している、すなわち、命令のオペランドがスタックであるマシンをスタックマシンと言う。最も有名なものとしてバロース B5000がある(B5000は、高水準言語(ALGOL)のサポートを目的として、前述のコールスタックもアーキテクチャでサポートしているが、コールスタックをアーキテクチャでサポートしている、という意味では「スタックマシン」の語は使わない)。
またx86等でも、スタックポインタ間接参照によってスタックマシンのように使うことはできるが、普通あまりスタックマシンとはしない。
多くの仮想機械もスタックマシンであり、例えばp-コードマシンやJava仮想マシンなどがある。x87の命令もスタックマシン的である。
これに対し、オペランドがレジスタのマシンをレジスタマシンと言う。多くの実機がレジスタマシンであるため実機に対してこの語が使われることは少ない。仮想機械ではLua 5の仮想機械がレジスタマシンである。
歴史
スタックを使った式評価方法を最初に提案したのはドイツの初期のコンピュータ科学者フリードリッヒ・L・バウアーであり、その業績により1988年、IEEE Computer Societyからコンピュータパイオニア賞を受賞した。
脚注
出典
関連項目
スタック(Stack)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/13 06:57 UTC 版)
「Survivalcraft」の記事における「スタック(Stack)」の解説
同じブロックは一つのスロットにまとめることができる。それぞれ上限量が設定されており、普通のブロックは40、肉や卵などの食品は12。例外としてツルハシや服などの消耗品はスタックできなくなっている。
※この「スタック(Stack)」の解説は、「Survivalcraft」の解説の一部です。
「スタック(Stack)」を含む「Survivalcraft」の記事については、「Survivalcraft」の概要を参照ください。
「スタック」の例文・使い方・用例・文例
- スタックパーマという髪型
- ダブルスタックトレインという,コンテナを二段積みにできる列車
- ウィル・スタックス(ジェイミー・フォックス)は携帯電話会社のCEOだ。
- ある日,スタックスはアニーが車にひかれそうになっているところを助ける。
- スタックスの英雄的行為の映像はたちまち広まり,彼の支持率は上昇する。
- スタックスの政治顧問は,イメージをさらに向上させるために,スタックスはアニーを利用すべきだと考える。
- そこでスタックスはアニーを自分の豪邸に連れて行く。
- アニーはすぐに,スタックスが決して幸せそうに見えないことに気づき,彼を懸命に元気づける。
- スタックスはアニーの明るい笑顔の裏にある寂しさを理解し始める。
- 2人がお互いを理解するようになっていく一方で,スタックスはアニーの両親について重大な情報を知る。
スタックと同じ種類の言葉
- スタックのページへのリンク