ホーム 研究内容 FreeBSD HP電卓 今日のgoo Links

--ホーム--
研究内容
FreeBSD
HP電卓
--Links--
BSD
Security
Hardware
NetHack
HP電卓
HP電卓

スタック

RPNを理解するのにスタック(stack)の概念を理解することは重要なことです.そこで,スタックに付いてここでは説明します.

LIFOバッファー

スタックはLIFOバッファーだと言えます.いきなりわけのわからないことを書きましたが,このLIFOについて説明します.LIFOとは,Last In First Outの略で,「後に入れたものが先に出てくる入れ物」ということです.

まだわかりにくいので,今度は絵を書いてみました.

スタックの概念図

この絵で,バネ付きの入れ物がスタックです.一番左の絵(a)はスタックが空の状態です.ここに「1」と書かれた箱を入れようとしています.その次にある絵(b)は,スタックに「1」と書かれた箱を一つ入れた状態です.さらに「2」と書かれた箱を入れた状態が(c)です.そして,このスタックから物を取り出す時(d)を見ると,一番上のものから順番に取り出していきます.すなわち,「2」という箱が取り出されます.

箱の動きに注目すると,最後に入れた箱が一番最初に取り出されます.すなわちLast In First Outになっているわけです.このスタックは,今日のCPUではごく当たり前に使われています(昔のメインフレームには,スタックの概念の無いものもありました).プログラムが効率よく書けるのは,このスタックのおかげなのです.

この「最後にいれた物が先(あるいは,最初にいれた物が後)」という格納庫であるスタックに付いて理解しておくと,RPN電卓の挙動を理解しやすくなります.


リーガル Contact 名大岩鉱 名大地球 名大年測
Copyright KATO Takenori, 1997, 1998, 199, 2000. All rights reserved.