スタック
格納したいデータのサイズのぶんだけスタックポインタをずらし、ずらした後のスタックポインタが指している場所にデータを格納する。
抽象データ型としてのスタックは、ノード(何らかのデータを持ち、別のノードを指し示すことができる構造)のコンテナ(データを集めて格納する抽象データ型の総称)であり、2つの基本操作プッシュ (push) とポップ (pop) を持つ。Pushは指定されたノードをスタックの先頭(トップ)に追加し、既存のノードはその下にそのまま置いておく。Popはスタックの現在のトップのノードを外してそれを返す。
よく使われる比喩として、食堂にあるバネが仕込まれた台に皿や盆を積み重ねておく様子がある。そのようなスタックでは利用者は一番上(トップ)の皿だけにアクセスすることができ、それ以外の皿は隠されている。新たに皿が追加される(Pushされる)と、その新しい皿がスタックのトップとなり、下にある皿を隠してしまう。皿をスタックから取る(Popする)と、それを使うことができ、二番目の皿がスタックのトップとなる。二つの重要な原則がこの比喩で示されている。第一は後入れ先出し (LIFO: Last In First Out) の原則である。第二はスタックの中身が隠されているという点である。トップの皿だけが見えているため、三番目の皿がどういうものかを見るには一番目と二番目の皿を取り除かなければならない。