典型的なスタックはコンピュータのメモリ上に固定の基点と可変のサイズを持つ領域である。初期状態ではスタックのサイズはゼロである。「スタックポインタ」(一般にハードウェアのレジスタが使われる)はスタック内で最も後で参照された位置を指している。スタック長がゼロのとき、スタックポインタはスタックの基点を指す。スタック操作の基本原則には様々なバリエーションがある。スタックは初期状態ではメモリ上の固定の位置に配置される。データがスタックに追加されると、スタックポインタはデータ追加に伴うスタックの領域拡張に従って変更される。そのときのスタックの延びていく方向は特に規則は無く、実装によってアドレスの小さくなる方向だったり、大きくなる方向だったりする。スタックに強く依存している環境では、追加の操作を備えている場合がある。以下に例をあげる。スタックはコンピュータ内では通常、メモリセルのブロックで構成される。そのブロックの「底」は固定の位置にあり、スタックポインタが「トップ」のセルのアドレスを格納している。「底」とか「トップ」という用語はスタックがアドレスの大きくなる方向に成長するか、小さくなる方向に成長するかに関係なく使われる。コールスタック.以上のようなスタックは、特にコールスタックに使われる。具体例.以上のようなスタックポインタによるスタックではなく、直接ハードウェアで実現したスタックを持つコンピュータもある。なお、以上のようなスタックがあるコンピュータをスタックマシンとするのは間違いである。詳細は後述のスタックマシンについての記述を参照すること。ソフトウェア.この節では、抽象データ型としてのスタックのソフトウェアによる実装について述べる。応用例.式評価と構文解析.この式はスタックを使って左から右に以下のように評価できる。具体的には以下のようになる。「スタック」は「操作」した後の状態を示している。探索問題の解法.プログラミング言語処理系の実装.