RPL (プログラミング言語)
IF文は条件式を実行した後、スタックの底辺から条件式の実行結果を取り出し、その数値が真(1)ならば、THEN文が実行される。上のコードではELSE文はないが、ELSE文がありその数値が偽(0)であれば、ELSE文が実行される。
IF文はcondition(条件式)を評価するとその結果(0:偽あるいは1:真)をスタックの底辺に残す。そして、その条件式の結果を得るためにスタックの底辺を検証する。この動作を利用すると、RPLはForth形式のIF文をオプションでサポートすることができる。つまりIF文の前に評価される条件式を書くことができる。IF文の条件式を空にすることによって、IF文は条件式実行の間にスタックの変更を行わない。そして、THENを実行する前にスタックの底辺にある既存の結果(IF文の前に書いた条件の結果のこと。0:偽あるいは1:真)を取り出して使う。
RPLのスタックはインタプリタ上に実装されたソフトウェア的なものであり、CPUのスタックではない。スタックの底辺がスタックレベル1であり、電卓上では"1:"と表示される。スタックレベル番号が大きいほどスタックの上になる。スタックの出し入れ (POP/PUSH)は基本的にスタックの底辺から行われる。
RPLは文中でオブジェクト(数値、数式、文字列、条件式、プログラムブロックなど)に遭遇すると何も考えずにスタックにオブジェクトを入れることが動作の基本である。コマンドに遭遇したときはコマンドを実行する。条件式、数式、プログラムブロックのような実行できるオブジェクトは条件文などのコマンドが実行する場合と、EVALコマンドで意識的に実行することがある。